| ... | @@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2389 | } | 2389 | } |
| 2390 | | 2390 | |
| 2391 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | 2391 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2392 | @setEvalBranchQuota(23_800); | 2392 | @setEvalBranchQuota(23_900); |
| 2393 | const pt = cg.pt; | 2393 | const pt = cg.pt; |
| 2394 | const zcu = pt.zcu; | 2394 | const zcu = pt.zcu; |
| 2395 | const ip = &zcu.intern_pool; | 2395 | const ip = &zcu.intern_pool; |
| ... | @@ -117442,7 +117442,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -117442,7 +117442,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117442 | switch (reduce.operation) { | 117442 | switch (reduce.operation) { |
| 117443 | .And, .Or, .Xor => {}, | 117443 | .And, .Or, .Xor => {}, |
| 117444 | .Min, .Max => break :fallback try cg.airReduce(inst), | 117444 | .Min, .Max => break :fallback try cg.airReduce(inst), |
| 117445 | .Add, .Mul => if (cg.floatBits(res_ty)) |_| break :fallback try cg.airReduce(inst), | 117445 | .Add => {}, |
| | 117446 | .Mul => if (cg.floatBits(res_ty)) |_| break :fallback try cg.airReduce(inst), |
| 117446 | } | 117447 | } |
| 117447 | var ops = try cg.tempsFromOperands(inst, .{reduce.operand}); | 117448 | var ops = try cg.tempsFromOperands(inst, .{reduce.operand}); |
| 117448 | var res: [1]Temp = undefined; | 117449 | var res: [1]Temp = undefined; |
| ... | @@ -126545,6 +126546,852 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -126545,6 +126546,852 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126545 | .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ }, | 126546 | .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ }, |
| 126546 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 126547 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 126547 | } }, | 126548 | } }, |
| | 126549 | }, .{ |
| | 126550 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| | 126551 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126552 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any }, |
| | 126553 | .patterns = &.{ |
| | 126554 | .{ .src = .{ .mem, .none, .none } }, |
| | 126555 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 126556 | }, |
| | 126557 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 126558 | .each = .{ .once = &.{ |
| | 126559 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 126560 | .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| | 126561 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 126562 | } }, |
| | 126563 | }, .{ |
| | 126564 | .required_features = .{ .f16c, null, null, null }, |
| | 126565 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126566 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any }, |
| | 126567 | .patterns = &.{ |
| | 126568 | .{ .src = .{ .mem, .none, .none } }, |
| | 126569 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 126570 | }, |
| | 126571 | .extra_temps = .{ |
| | 126572 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126573 | .unused, |
| | 126574 | .unused, |
| | 126575 | .unused, |
| | 126576 | .unused, |
| | 126577 | .unused, |
| | 126578 | .unused, |
| | 126579 | .unused, |
| | 126580 | .unused, |
| | 126581 | .unused, |
| | 126582 | .unused, |
| | 126583 | }, |
| | 126584 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 126585 | .each = .{ .once = &.{ |
| | 126586 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 126587 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 126588 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 126589 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 126590 | } }, |
| | 126591 | }, .{ |
| | 126592 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| | 126593 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126594 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 126595 | .patterns = &.{ |
| | 126596 | .{ .src = .{ .mem, .none, .none } }, |
| | 126597 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 126598 | }, |
| | 126599 | .extra_temps = .{ |
| | 126600 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126601 | .unused, |
| | 126602 | .unused, |
| | 126603 | .unused, |
| | 126604 | .unused, |
| | 126605 | .unused, |
| | 126606 | .unused, |
| | 126607 | .unused, |
| | 126608 | .unused, |
| | 126609 | .unused, |
| | 126610 | .unused, |
| | 126611 | }, |
| | 126612 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 126613 | .each = .{ .once = &.{ |
| | 126614 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 126615 | .{ ._, .vh_ps, .add, .tmp0x, .dst0x, .dst0x, ._ }, |
| | 126616 | .{ ._, .v_ps, .shuf, .dst0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 126617 | .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| | 126618 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 126619 | } }, |
| | 126620 | }, .{ |
| | 126621 | .required_features = .{ .f16c, null, null, null }, |
| | 126622 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126623 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 126624 | .patterns = &.{ |
| | 126625 | .{ .src = .{ .mem, .none, .none } }, |
| | 126626 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 126627 | }, |
| | 126628 | .extra_temps = .{ |
| | 126629 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126630 | .unused, |
| | 126631 | .unused, |
| | 126632 | .unused, |
| | 126633 | .unused, |
| | 126634 | .unused, |
| | 126635 | .unused, |
| | 126636 | .unused, |
| | 126637 | .unused, |
| | 126638 | .unused, |
| | 126639 | .unused, |
| | 126640 | }, |
| | 126641 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 126642 | .each = .{ .once = &.{ |
| | 126643 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 126644 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 126645 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 126646 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 126647 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 126648 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 126649 | } }, |
| | 126650 | }, .{ |
| | 126651 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| | 126652 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126653 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 126654 | .patterns = &.{ |
| | 126655 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 126656 | }, |
| | 126657 | .extra_temps = .{ |
| | 126658 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 126659 | .{ .type = .f16, .kind = .{ .rc = .sse } }, |
| | 126660 | .unused, |
| | 126661 | .unused, |
| | 126662 | .unused, |
| | 126663 | .unused, |
| | 126664 | .unused, |
| | 126665 | .unused, |
| | 126666 | .unused, |
| | 126667 | .unused, |
| | 126668 | .unused, |
| | 126669 | }, |
| | 126670 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 126671 | .clobbers = .{ .eflags = true }, |
| | 126672 | .each = .{ .once = &.{ |
| | 126673 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| | 126674 | .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ }, |
| | 126675 | .{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) }, |
| | 126676 | .{ .@"0:", .vp_w, .insr, .dst0x, .dst0x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(1) }, |
| | 126677 | .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ }, |
| | 126678 | .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| | 126679 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 126680 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 126681 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 126682 | } }, |
| | 126683 | }, .{ |
| | 126684 | .required_features = .{ .f16c, null, null, null }, |
| | 126685 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126686 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 126687 | .patterns = &.{ |
| | 126688 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 126689 | }, |
| | 126690 | .extra_temps = .{ |
| | 126691 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 126692 | .{ .type = .f16, .kind = .{ .rc = .sse } }, |
| | 126693 | .unused, |
| | 126694 | .unused, |
| | 126695 | .unused, |
| | 126696 | .unused, |
| | 126697 | .unused, |
| | 126698 | .unused, |
| | 126699 | .unused, |
| | 126700 | .unused, |
| | 126701 | .unused, |
| | 126702 | }, |
| | 126703 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 126704 | .clobbers = .{ .eflags = true }, |
| | 126705 | .each = .{ .once = &.{ |
| | 126706 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| | 126707 | .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ }, |
| | 126708 | .{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) }, |
| | 126709 | .{ .@"0:", .vp_w, .insr, .dst0x, .dst0x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(1) }, |
| | 126710 | .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ }, |
| | 126711 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 126712 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 126713 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 126714 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 126715 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 126716 | } }, |
| | 126717 | }, .{ |
| | 126718 | .required_features = .{ .avx, null, null, null }, |
| | 126719 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126720 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 126721 | .patterns = &.{ |
| | 126722 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 126723 | }, |
| | 126724 | .call_frame = .{ .alignment = .@"16" }, |
| | 126725 | .extra_temps = .{ |
| | 126726 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 126727 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 126728 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, |
| | 126729 | .unused, |
| | 126730 | .unused, |
| | 126731 | .unused, |
| | 126732 | .unused, |
| | 126733 | .unused, |
| | 126734 | .unused, |
| | 126735 | .unused, |
| | 126736 | .unused, |
| | 126737 | }, |
| | 126738 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 126739 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 126740 | .each = .{ .once = &.{ |
| | 126741 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| | 126742 | .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ }, |
| | 126743 | .{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) }, |
| | 126744 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 126745 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 126746 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 126747 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 126748 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 126749 | } }, |
| | 126750 | }, .{ |
| | 126751 | .required_features = .{ .sse2, null, null, null }, |
| | 126752 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126753 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 126754 | .patterns = &.{ |
| | 126755 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 126756 | }, |
| | 126757 | .call_frame = .{ .alignment = .@"16" }, |
| | 126758 | .extra_temps = .{ |
| | 126759 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 126760 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 126761 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, |
| | 126762 | .unused, |
| | 126763 | .unused, |
| | 126764 | .unused, |
| | 126765 | .unused, |
| | 126766 | .unused, |
| | 126767 | .unused, |
| | 126768 | .unused, |
| | 126769 | .unused, |
| | 126770 | }, |
| | 126771 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 126772 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 126773 | .each = .{ .once = &.{ |
| | 126774 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| | 126775 | .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ }, |
| | 126776 | .{ ._, .p_w, .insr, .dst0x, .mem(.src0w), .ui(0), ._ }, |
| | 126777 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 126778 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 126779 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 126780 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 126781 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 126782 | } }, |
| | 126783 | }, .{ |
| | 126784 | .required_features = .{ .sse, null, null, null }, |
| | 126785 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 126786 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 126787 | .patterns = &.{ |
| | 126788 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 126789 | }, |
| | 126790 | .call_frame = .{ .alignment = .@"16" }, |
| | 126791 | .extra_temps = .{ |
| | 126792 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 126793 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| | 126794 | .{ .type = .f32, .kind = .mem }, |
| | 126795 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 126796 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, |
| | 126797 | .unused, |
| | 126798 | .unused, |
| | 126799 | .unused, |
| | 126800 | .unused, |
| | 126801 | .unused, |
| | 126802 | .unused, |
| | 126803 | }, |
| | 126804 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 126805 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 126806 | .each = .{ .once = &.{ |
| | 126807 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| | 126808 | .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ }, |
| | 126809 | .{ ._, ._, .movzx, .tmp1d, .mem(.src0w), ._, ._ }, |
| | 126810 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| | 126811 | .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ }, |
| | 126812 | .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| | 126813 | .{ ._, ._ss, .mov, .tmp3x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 126814 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 126815 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 126816 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 126817 | } }, |
| | 126818 | }, .{ |
| | 126819 | .required_features = .{ .avx, .fast_hops, null, null }, |
| | 126820 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 126821 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| | 126822 | .patterns = &.{ |
| | 126823 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 126824 | }, |
| | 126825 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 126826 | .each = .{ .once = &.{ |
| | 126827 | .{ ._, .vh_ps, .add, .dst0x, .src0x, .src0x, ._ }, |
| | 126828 | } }, |
| | 126829 | }, .{ |
| | 126830 | .required_features = .{ .avx, null, null, null }, |
| | 126831 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 126832 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| | 126833 | .patterns = &.{ |
| | 126834 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 126835 | }, |
| | 126836 | .extra_temps = .{ |
| | 126837 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126838 | .unused, |
| | 126839 | .unused, |
| | 126840 | .unused, |
| | 126841 | .unused, |
| | 126842 | .unused, |
| | 126843 | .unused, |
| | 126844 | .unused, |
| | 126845 | .unused, |
| | 126846 | .unused, |
| | 126847 | .unused, |
| | 126848 | }, |
| | 126849 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 126850 | .each = .{ .once = &.{ |
| | 126851 | .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) }, |
| | 126852 | .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| | 126853 | } }, |
| | 126854 | }, .{ |
| | 126855 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| | 126856 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 126857 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| | 126858 | .patterns = &.{ |
| | 126859 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 126860 | }, |
| | 126861 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 126862 | .each = .{ .once = &.{ |
| | 126863 | .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ }, |
| | 126864 | } }, |
| | 126865 | }, .{ |
| | 126866 | .required_features = .{ .sse, null, null, null }, |
| | 126867 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 126868 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| | 126869 | .patterns = &.{ |
| | 126870 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 126871 | }, |
| | 126872 | .extra_temps = .{ |
| | 126873 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126874 | .unused, |
| | 126875 | .unused, |
| | 126876 | .unused, |
| | 126877 | .unused, |
| | 126878 | .unused, |
| | 126879 | .unused, |
| | 126880 | .unused, |
| | 126881 | .unused, |
| | 126882 | .unused, |
| | 126883 | .unused, |
| | 126884 | }, |
| | 126885 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 126886 | .each = .{ .once = &.{ |
| | 126887 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| | 126888 | .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ }, |
| | 126889 | .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ }, |
| | 126890 | } }, |
| | 126891 | }, .{ |
| | 126892 | .required_features = .{ .avx, .fast_hops, null, null }, |
| | 126893 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 126894 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 126895 | .patterns = &.{ |
| | 126896 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 126897 | }, |
| | 126898 | .extra_temps = .{ |
| | 126899 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126900 | .unused, |
| | 126901 | .unused, |
| | 126902 | .unused, |
| | 126903 | .unused, |
| | 126904 | .unused, |
| | 126905 | .unused, |
| | 126906 | .unused, |
| | 126907 | .unused, |
| | 126908 | .unused, |
| | 126909 | .unused, |
| | 126910 | }, |
| | 126911 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 126912 | .each = .{ .once = &.{ |
| | 126913 | .{ ._, .vh_ps, .add, .tmp0x, .src0x, .src0x, ._ }, |
| | 126914 | .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ }, |
| | 126915 | .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| | 126916 | } }, |
| | 126917 | }, .{ |
| | 126918 | .required_features = .{ .avx, null, null, null }, |
| | 126919 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 126920 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 126921 | .patterns = &.{ |
| | 126922 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 126923 | }, |
| | 126924 | .extra_temps = .{ |
| | 126925 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126926 | .unused, |
| | 126927 | .unused, |
| | 126928 | .unused, |
| | 126929 | .unused, |
| | 126930 | .unused, |
| | 126931 | .unused, |
| | 126932 | .unused, |
| | 126933 | .unused, |
| | 126934 | .unused, |
| | 126935 | .unused, |
| | 126936 | }, |
| | 126937 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 126938 | .each = .{ .once = &.{ |
| | 126939 | .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ }, |
| | 126940 | .{ ._, .v_ps, .add, .tmp0x, .src0x, .tmp0x, ._ }, |
| | 126941 | .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01_01_01_01) }, |
| | 126942 | .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| | 126943 | } }, |
| | 126944 | }, .{ |
| | 126945 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| | 126946 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 126947 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 126948 | .patterns = &.{ |
| | 126949 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 126950 | }, |
| | 126951 | .extra_temps = .{ |
| | 126952 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126953 | .unused, |
| | 126954 | .unused, |
| | 126955 | .unused, |
| | 126956 | .unused, |
| | 126957 | .unused, |
| | 126958 | .unused, |
| | 126959 | .unused, |
| | 126960 | .unused, |
| | 126961 | .unused, |
| | 126962 | .unused, |
| | 126963 | }, |
| | 126964 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 126965 | .each = .{ .once = &.{ |
| | 126966 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 126967 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| | 126968 | .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ }, |
| | 126969 | .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ }, |
| | 126970 | } }, |
| | 126971 | }, .{ |
| | 126972 | .required_features = .{ .sse, null, null, null }, |
| | 126973 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 126974 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 126975 | .patterns = &.{ |
| | 126976 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 126977 | }, |
| | 126978 | .extra_temps = .{ |
| | 126979 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 126980 | .unused, |
| | 126981 | .unused, |
| | 126982 | .unused, |
| | 126983 | .unused, |
| | 126984 | .unused, |
| | 126985 | .unused, |
| | 126986 | .unused, |
| | 126987 | .unused, |
| | 126988 | .unused, |
| | 126989 | .unused, |
| | 126990 | }, |
| | 126991 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 126992 | .each = .{ .once = &.{ |
| | 126993 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 126994 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| | 126995 | .{ ._, ._ss, .add, .tmp0x, .src0x, ._, ._ }, |
| | 126996 | .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| | 126997 | .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ }, |
| | 126998 | } }, |
| | 126999 | }, .{ |
| | 127000 | .required_features = .{ .avx, null, null, null }, |
| | 127001 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 127002 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| | 127003 | .patterns = &.{ |
| | 127004 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127005 | }, |
| | 127006 | .extra_temps = .{ |
| | 127007 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127008 | .unused, |
| | 127009 | .unused, |
| | 127010 | .unused, |
| | 127011 | .unused, |
| | 127012 | .unused, |
| | 127013 | .unused, |
| | 127014 | .unused, |
| | 127015 | .unused, |
| | 127016 | .unused, |
| | 127017 | .unused, |
| | 127018 | }, |
| | 127019 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 127020 | .clobbers = .{ .eflags = true }, |
| | 127021 | .each = .{ .once = &.{ |
| | 127022 | .{ ._, ._, .mov, .tmp0p, .sia(4, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127023 | .{ ._, .v_ss, .mov, .dst0x, .mem(.src0d), ._, ._ }, |
| | 127024 | .{ .@"0:", .v_ss, .add, .dst0x, .dst0x, .memia(.src0d, .tmp0, .add_unaligned_size), ._ }, |
| | 127025 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 127026 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127027 | } }, |
| | 127028 | }, .{ |
| | 127029 | .required_features = .{ .sse, null, null, null }, |
| | 127030 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 127031 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| | 127032 | .patterns = &.{ |
| | 127033 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127034 | }, |
| | 127035 | .extra_temps = .{ |
| | 127036 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127037 | .unused, |
| | 127038 | .unused, |
| | 127039 | .unused, |
| | 127040 | .unused, |
| | 127041 | .unused, |
| | 127042 | .unused, |
| | 127043 | .unused, |
| | 127044 | .unused, |
| | 127045 | .unused, |
| | 127046 | .unused, |
| | 127047 | }, |
| | 127048 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 127049 | .clobbers = .{ .eflags = true }, |
| | 127050 | .each = .{ .once = &.{ |
| | 127051 | .{ ._, ._, .mov, .tmp0p, .sia(4, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127052 | .{ ._, ._ss, .mov, .dst0x, .mem(.src0d), ._, ._ }, |
| | 127053 | .{ .@"0:", ._ss, .add, .dst0x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 127054 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 127055 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127056 | } }, |
| | 127057 | }, .{ |
| | 127058 | .required_features = .{ .avx, .fast_hops, null, null }, |
| | 127059 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127060 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 127061 | .patterns = &.{ |
| | 127062 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 127063 | }, |
| | 127064 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 127065 | .each = .{ .once = &.{ |
| | 127066 | .{ ._, .vh_pd, .add, .dst0x, .src0x, .src0x, ._ }, |
| | 127067 | } }, |
| | 127068 | }, .{ |
| | 127069 | .required_features = .{ .avx, null, null, null }, |
| | 127070 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127071 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 127072 | .patterns = &.{ |
| | 127073 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 127074 | }, |
| | 127075 | .extra_temps = .{ |
| | 127076 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 127077 | .unused, |
| | 127078 | .unused, |
| | 127079 | .unused, |
| | 127080 | .unused, |
| | 127081 | .unused, |
| | 127082 | .unused, |
| | 127083 | .unused, |
| | 127084 | .unused, |
| | 127085 | .unused, |
| | 127086 | .unused, |
| | 127087 | }, |
| | 127088 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 127089 | .each = .{ .once = &.{ |
| | 127090 | .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ }, |
| | 127091 | .{ ._, .v_sd, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| | 127092 | } }, |
| | 127093 | }, .{ |
| | 127094 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| | 127095 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127096 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 127097 | .patterns = &.{ |
| | 127098 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 127099 | }, |
| | 127100 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 127101 | .each = .{ .once = &.{ |
| | 127102 | .{ ._, .h_pd, .add, .dst0x, .src0x, ._, ._ }, |
| | 127103 | } }, |
| | 127104 | }, .{ |
| | 127105 | .required_features = .{ .sse2, null, null, null }, |
| | 127106 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127107 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 127108 | .patterns = &.{ |
| | 127109 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 127110 | }, |
| | 127111 | .extra_temps = .{ |
| | 127112 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 127113 | .unused, |
| | 127114 | .unused, |
| | 127115 | .unused, |
| | 127116 | .unused, |
| | 127117 | .unused, |
| | 127118 | .unused, |
| | 127119 | .unused, |
| | 127120 | .unused, |
| | 127121 | .unused, |
| | 127122 | .unused, |
| | 127123 | }, |
| | 127124 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 127125 | .each = .{ .once = &.{ |
| | 127126 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 127127 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| | 127128 | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, |
| | 127129 | } }, |
| | 127130 | }, .{ |
| | 127131 | .required_features = .{ .avx, .fast_hops, null, null }, |
| | 127132 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127133 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 127134 | .patterns = &.{ |
| | 127135 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 127136 | }, |
| | 127137 | .extra_temps = .{ |
| | 127138 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 127139 | .unused, |
| | 127140 | .unused, |
| | 127141 | .unused, |
| | 127142 | .unused, |
| | 127143 | .unused, |
| | 127144 | .unused, |
| | 127145 | .unused, |
| | 127146 | .unused, |
| | 127147 | .unused, |
| | 127148 | .unused, |
| | 127149 | }, |
| | 127150 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 127151 | .each = .{ .once = &.{ |
| | 127152 | .{ ._, .vh_pd, .add, .tmp0x, .src0x, .src0x, ._ }, |
| | 127153 | .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| | 127154 | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| | 127155 | } }, |
| | 127156 | }, .{ |
| | 127157 | .required_features = .{ .avx, null, null, null }, |
| | 127158 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127159 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 127160 | .patterns = &.{ |
| | 127161 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 127162 | }, |
| | 127163 | .extra_temps = .{ |
| | 127164 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 127165 | .unused, |
| | 127166 | .unused, |
| | 127167 | .unused, |
| | 127168 | .unused, |
| | 127169 | .unused, |
| | 127170 | .unused, |
| | 127171 | .unused, |
| | 127172 | .unused, |
| | 127173 | .unused, |
| | 127174 | .unused, |
| | 127175 | }, |
| | 127176 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 127177 | .each = .{ .once = &.{ |
| | 127178 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| | 127179 | .{ ._, .v_pd, .add, .tmp0x, .src0x, .tmp0x, ._ }, |
| | 127180 | .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ }, |
| | 127181 | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| | 127182 | } }, |
| | 127183 | }, .{ |
| | 127184 | .required_features = .{ .avx, null, null, null }, |
| | 127185 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127186 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 127187 | .patterns = &.{ |
| | 127188 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127189 | }, |
| | 127190 | .extra_temps = .{ |
| | 127191 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127192 | .unused, |
| | 127193 | .unused, |
| | 127194 | .unused, |
| | 127195 | .unused, |
| | 127196 | .unused, |
| | 127197 | .unused, |
| | 127198 | .unused, |
| | 127199 | .unused, |
| | 127200 | .unused, |
| | 127201 | .unused, |
| | 127202 | }, |
| | 127203 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 127204 | .clobbers = .{ .eflags = true }, |
| | 127205 | .each = .{ .once = &.{ |
| | 127206 | .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127207 | .{ ._, .v_sd, .mov, .dst0x, .mem(.src0q), ._, ._ }, |
| | 127208 | .{ .@"0:", .v_sd, .add, .dst0x, .dst0x, .memia(.src0q, .tmp0, .add_unaligned_size), ._ }, |
| | 127209 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 127210 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127211 | } }, |
| | 127212 | }, .{ |
| | 127213 | .required_features = .{ .sse2, null, null, null }, |
| | 127214 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127215 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 127216 | .patterns = &.{ |
| | 127217 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127218 | }, |
| | 127219 | .extra_temps = .{ |
| | 127220 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127221 | .unused, |
| | 127222 | .unused, |
| | 127223 | .unused, |
| | 127224 | .unused, |
| | 127225 | .unused, |
| | 127226 | .unused, |
| | 127227 | .unused, |
| | 127228 | .unused, |
| | 127229 | .unused, |
| | 127230 | .unused, |
| | 127231 | }, |
| | 127232 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 127233 | .clobbers = .{ .eflags = true }, |
| | 127234 | .each = .{ .once = &.{ |
| | 127235 | .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127236 | .{ ._, ._sd, .mov, .dst0x, .mem(.src0q), ._, ._ }, |
| | 127237 | .{ .@"0:", ._sd, .add, .dst0x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 127238 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 127239 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127240 | } }, |
| | 127241 | }, .{ |
| | 127242 | .required_features = .{ .x87, null, null, null }, |
| | 127243 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 127244 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 127245 | .patterns = &.{ |
| | 127246 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127247 | }, |
| | 127248 | .extra_temps = .{ |
| | 127249 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127250 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 127251 | .unused, |
| | 127252 | .unused, |
| | 127253 | .unused, |
| | 127254 | .unused, |
| | 127255 | .unused, |
| | 127256 | .unused, |
| | 127257 | .unused, |
| | 127258 | .unused, |
| | 127259 | .unused, |
| | 127260 | }, |
| | 127261 | .dst_temps = .{ .mem, .unused }, |
| | 127262 | .clobbers = .{ .eflags = true }, |
| | 127263 | .each = .{ .once = &.{ |
| | 127264 | .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127265 | .{ ._, .f_, .ld, .mem(.src0q), ._, ._, ._ }, |
| | 127266 | .{ .@"0:", .f_, .add, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 127267 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 127268 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127269 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| | 127270 | } }, |
| | 127271 | }, .{ |
| | 127272 | .required_features = .{ .x87, null, null, null }, |
| | 127273 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| | 127274 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .tbyte } }, .any, .any }, |
| | 127275 | .patterns = &.{ |
| | 127276 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127277 | }, |
| | 127278 | .extra_temps = .{ |
| | 127279 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127280 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 127281 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 127282 | .unused, |
| | 127283 | .unused, |
| | 127284 | .unused, |
| | 127285 | .unused, |
| | 127286 | .unused, |
| | 127287 | .unused, |
| | 127288 | .unused, |
| | 127289 | .unused, |
| | 127290 | }, |
| | 127291 | .dst_temps = .{ .mem, .unused }, |
| | 127292 | .clobbers = .{ .eflags = true }, |
| | 127293 | .each = .{ .once = &.{ |
| | 127294 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127295 | .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ }, |
| | 127296 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 127297 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| | 127298 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 127299 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127300 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| | 127301 | } }, |
| | 127302 | }, .{ |
| | 127303 | .required_features = .{ .avx, null, null, null }, |
| | 127304 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| | 127305 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 127306 | .patterns = &.{ |
| | 127307 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127308 | }, |
| | 127309 | .call_frame = .{ .alignment = .@"16" }, |
| | 127310 | .extra_temps = .{ |
| | 127311 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127312 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 127313 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| | 127314 | .unused, |
| | 127315 | .unused, |
| | 127316 | .unused, |
| | 127317 | .unused, |
| | 127318 | .unused, |
| | 127319 | .unused, |
| | 127320 | .unused, |
| | 127321 | .unused, |
| | 127322 | }, |
| | 127323 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 127324 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 127325 | .each = .{ .once = &.{ |
| | 127326 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127327 | .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, |
| | 127328 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 127329 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 127330 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 127331 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127332 | } }, |
| | 127333 | }, .{ |
| | 127334 | .required_features = .{ .sse2, null, null, null }, |
| | 127335 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| | 127336 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 127337 | .patterns = &.{ |
| | 127338 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127339 | }, |
| | 127340 | .call_frame = .{ .alignment = .@"16" }, |
| | 127341 | .extra_temps = .{ |
| | 127342 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127343 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 127344 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| | 127345 | .unused, |
| | 127346 | .unused, |
| | 127347 | .unused, |
| | 127348 | .unused, |
| | 127349 | .unused, |
| | 127350 | .unused, |
| | 127351 | .unused, |
| | 127352 | .unused, |
| | 127353 | }, |
| | 127354 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 127355 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 127356 | .each = .{ .once = &.{ |
| | 127357 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127358 | .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, |
| | 127359 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 127360 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 127361 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 127362 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127363 | } }, |
| | 127364 | }, .{ |
| | 127365 | .required_features = .{ .sse, null, null, null }, |
| | 127366 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| | 127367 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 127368 | .patterns = &.{ |
| | 127369 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 127370 | }, |
| | 127371 | .call_frame = .{ .alignment = .@"16" }, |
| | 127372 | .extra_temps = .{ |
| | 127373 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 127374 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 127375 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| | 127376 | .unused, |
| | 127377 | .unused, |
| | 127378 | .unused, |
| | 127379 | .unused, |
| | 127380 | .unused, |
| | 127381 | .unused, |
| | 127382 | .unused, |
| | 127383 | .unused, |
| | 127384 | }, |
| | 127385 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 127386 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 127387 | .each = .{ .once = &.{ |
| | 127388 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| | 127389 | .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ }, |
| | 127390 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 127391 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 127392 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 127393 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 127394 | } }, |
| 126548 | } }, | 127395 | } }, |
| 126549 | .Mul => comptime &.{ .{ | 127396 | .Mul => comptime &.{ .{ |
| 126550 | .required_features = .{ .avx, null, null, null }, | 127397 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -131596,7 +132443,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131596,7 +132443,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131596 | .{ .src = .{ .to_mem, .none, .none } }, | 132443 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131597 | }, | 132444 | }, |
| 131598 | .extra_temps = .{ | 132445 | .extra_temps = .{ |
| 131599 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 132446 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131600 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 132447 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 131601 | .unused, | 132448 | .unused, |
| 131602 | .unused, | 132449 | .unused, |
| ... | @@ -131611,10 +132458,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131611,10 +132458,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131611 | .dst_temps = .{ .mem, .unused }, | 132458 | .dst_temps = .{ .mem, .unused }, |
| 131612 | .clobbers = .{ .eflags = true }, | 132459 | .clobbers = .{ .eflags = true }, |
| 131613 | .each = .{ .once = &.{ | 132460 | .each = .{ .once = &.{ |
| 131614 | .{ ._, ._, .mov, .tmp0p, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, | 132461 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 131615 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, | 132462 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, |
| 131616 | .{ .@"0:", .f_, .add, .memi(.src0q, .tmp0), ._, ._, ._ }, | 132463 | .{ .@"0:", .f_, .add, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 131617 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, | 132464 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 131618 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 132465 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131619 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 132466 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 131620 | } }, | 132467 | } }, |
| ... | @@ -131626,7 +132473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131626,7 +132473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131626 | .{ .src = .{ .to_mem, .none, .none } }, | 132473 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131627 | }, | 132474 | }, |
| 131628 | .extra_temps = .{ | 132475 | .extra_temps = .{ |
| 131629 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 132476 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131630 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | 132477 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 131631 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 132478 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 131632 | .unused, | 132479 | .unused, |
| ... | @@ -131641,11 +132488,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131641,11 +132488,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131641 | .dst_temps = .{ .mem, .unused }, | 132488 | .dst_temps = .{ .mem, .unused }, |
| 131642 | .clobbers = .{ .eflags = true }, | 132489 | .clobbers = .{ .eflags = true }, |
| 131643 | .each = .{ .once = &.{ | 132490 | .each = .{ .once = &.{ |
| 131644 | .{ ._, ._, .mov, .tmp0p, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, | 132491 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131645 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, | 132492 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, |
| 131646 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, | 132493 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, |
| 131647 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, | 132494 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 131648 | .{ ._, ._, .sub, .tmp0p, .si(16), ._, ._ }, | 132495 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131649 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 132496 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131650 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 132497 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 131651 | } }, | 132498 | } }, |
| ... | @@ -133139,7 +133986,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -133139,7 +133986,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133139 | .{ .src = .{ .to_mem, .none, .none } }, | 133986 | .{ .src = .{ .to_mem, .none, .none } }, |
| 133140 | }, | 133987 | }, |
| 133141 | .extra_temps = .{ | 133988 | .extra_temps = .{ |
| 133142 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 133989 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 133143 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 133990 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 133144 | .unused, | 133991 | .unused, |
| 133145 | .unused, | 133992 | .unused, |
| ... | @@ -133154,10 +134001,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -133154,10 +134001,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133154 | .dst_temps = .{ .mem, .unused }, | 134001 | .dst_temps = .{ .mem, .unused }, |
| 133155 | .clobbers = .{ .eflags = true }, | 134002 | .clobbers = .{ .eflags = true }, |
| 133156 | .each = .{ .once = &.{ | 134003 | .each = .{ .once = &.{ |
| 133157 | .{ ._, ._, .mov, .tmp0p, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, | 134004 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 133158 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, | 134005 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, |
| 133159 | .{ .@"0:", .f_, .mul, .memi(.src0q, .tmp0), ._, ._, ._ }, | 134006 | .{ .@"0:", .f_, .mul, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 133160 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, | 134007 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 133161 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 134008 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 133162 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 134009 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 133163 | } }, | 134010 | } }, |
| ... | @@ -133169,7 +134016,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -133169,7 +134016,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133169 | .{ .src = .{ .to_mem, .none, .none } }, | 134016 | .{ .src = .{ .to_mem, .none, .none } }, |
| 133170 | }, | 134017 | }, |
| 133171 | .extra_temps = .{ | 134018 | .extra_temps = .{ |
| 133172 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 134019 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 133173 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | 134020 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 133174 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 134021 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 133175 | .unused, | 134022 | .unused, |
| ... | @@ -133184,11 +134031,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -133184,11 +134031,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133184 | .dst_temps = .{ .mem, .unused }, | 134031 | .dst_temps = .{ .mem, .unused }, |
| 133185 | .clobbers = .{ .eflags = true }, | 134032 | .clobbers = .{ .eflags = true }, |
| 133186 | .each = .{ .once = &.{ | 134033 | .each = .{ .once = &.{ |
| 133187 | .{ ._, ._, .mov, .tmp0p, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, | 134034 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 133188 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, | 134035 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, |
| 133189 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, | 134036 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, |
| 133190 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, | 134037 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, |
| 133191 | .{ ._, ._, .sub, .tmp0p, .si(16), ._, ._ }, | 134038 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 133192 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 134039 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 133193 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 134040 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 133194 | } }, | 134041 | } }, |