authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-28 04:49:57-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-28 15:10:22-04:00
logf5a1aaf2fc4f6987ce56c27bf19fb825addeff0b
tree759870c0749b4897c11fecef9cebe6e0a0a0ff06
parentd29ea656b0a555ddcbf7c142a1d8c8096402f92b

x86_64: implement strict float `@reduce(.Min)`


2 files changed, 2426 insertions(+), 123 deletions(-)

src/arch/x86_64/CodeGen.zig+2425-123
......@@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23892389}
23902390
23912391fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2392 @setEvalBranchQuota(27_100);
2392 @setEvalBranchQuota(27_800);
23932393 const pt = cg.pt;
23942394 const zcu = pt.zcu;
23952395 const ip = &zcu.intern_pool;
......@@ -117437,11 +117437,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
117437117437 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
117438117438 },
117439117439 .reduce => |air_tag| if (use_old) try cg.airReduce(inst) else fallback: {
117440 const nan = std.math.nan(f16);
117440117441 const reduce = air_datas[@intFromEnum(inst)].reduce;
117441117442 const res_ty = cg.typeOfIndex(inst);
117442117443 switch (reduce.operation) {
117443 .And, .Or, .Xor => {},
117444 .Min, .Max => if (cg.floatBits(res_ty)) |_| break :fallback try cg.airReduce(inst),
117444 .And, .Or, .Xor, .Min => {},
117445 .Max => if (cg.floatBits(res_ty)) |_| break :fallback try cg.airReduce(inst),
117445117446 .Add, .Mul => {},
117446117447 }
117447117448 var ops = try cg.tempsFromOperands(inst, .{reduce.operand});
......@@ -130164,7 +130165,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130164130165 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130165130166 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
130166130167 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130167
130168130168 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130169130169 .unused,
130170130170 .unused,
......@@ -130207,7 +130207,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130207130207 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
130208130208 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130209130209 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
130210
130211130210 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130212130211 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130213130212 .unused,
......@@ -130570,6 +130569,2311 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130570130569 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
130571130570 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
130572130571 } },
130572 }, .{
130573 .required_features = .{ .f16c, null, null, null },
130574 .dst_constraints = .{ .{ .float = .word }, .any },
130575 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
130576 .patterns = &.{
130577 .{ .src = .{ .mem, .none, .none } },
130578 .{ .src = .{ .to_sse, .none, .none } },
130579 },
130580 .extra_temps = .{
130581 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130582 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130583 .unused,
130584 .unused,
130585 .unused,
130586 .unused,
130587 .unused,
130588 .unused,
130589 .unused,
130590 .unused,
130591 .unused,
130592 },
130593 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130594 .each = .{ .once = &.{
130595 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
130596 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130597 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130598 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130599 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130600 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130601 } },
130602 }, .{
130603 .required_features = .{ .f16c, null, null, null },
130604 .dst_constraints = .{ .{ .float = .word }, .any },
130605 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
130606 .patterns = &.{
130607 .{ .src = .{ .mem, .none, .none } },
130608 .{ .src = .{ .to_sse, .none, .none } },
130609 },
130610 .extra_temps = .{
130611 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130612 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130613 .unused,
130614 .unused,
130615 .unused,
130616 .unused,
130617 .unused,
130618 .unused,
130619 .unused,
130620 .unused,
130621 .unused,
130622 },
130623 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130624 .each = .{ .once = &.{
130625 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
130626 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130627 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130628 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130629 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130630 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130631 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130632 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130633 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130634 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130635 } },
130636 }, .{
130637 .required_features = .{ .f16c, null, null, null },
130638 .dst_constraints = .{ .{ .float = .word }, .any },
130639 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
130640 .patterns = &.{
130641 .{ .src = .{ .mem, .none, .none } },
130642 .{ .src = .{ .to_sse, .none, .none } },
130643 },
130644 .extra_temps = .{
130645 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130646 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130647 .unused,
130648 .unused,
130649 .unused,
130650 .unused,
130651 .unused,
130652 .unused,
130653 .unused,
130654 .unused,
130655 .unused,
130656 },
130657 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130658 .each = .{ .once = &.{
130659 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
130660 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130661 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130662 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130663 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130664 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130665 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130666 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130667 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130668 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130669 } },
130670 }, .{
130671 .required_features = .{ .f16c, null, null, null },
130672 .dst_constraints = .{ .{ .float = .word }, .any },
130673 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
130674 .patterns = &.{
130675 .{ .src = .{ .to_sse, .none, .none } },
130676 },
130677 .extra_temps = .{
130678 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130679 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130680 .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
130681 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130682 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130683 .unused,
130684 .unused,
130685 .unused,
130686 .unused,
130687 .unused,
130688 .unused,
130689 },
130690 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130691 .each = .{ .once = &.{
130692 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130693 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
130694 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130695 .{ ._, .v_ps, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
130696 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
130697 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130698 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130699 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130700 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130701 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
130702 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130703 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130704 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130705 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
130706 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130707 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130708 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130709 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130710 } },
130711 }, .{
130712 .required_features = .{ .f16c, null, null, null },
130713 .dst_constraints = .{ .{ .float = .word }, .any },
130714 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
130715 .patterns = &.{
130716 .{ .src = .{ .mem, .none, .none } },
130717 .{ .src = .{ .to_sse, .none, .none } },
130718 },
130719 .extra_temps = .{
130720 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130721 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130722 .unused,
130723 .unused,
130724 .unused,
130725 .unused,
130726 .unused,
130727 .unused,
130728 .unused,
130729 .unused,
130730 .unused,
130731 },
130732 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130733 .each = .{ .once = &.{
130734 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
130735 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
130736 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130737 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130738 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130739 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130740 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130741 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130742 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130743 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130744 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130745 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130746 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130747 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130748 } },
130749 }, .{
130750 .required_features = .{ .f16c, null, null, null },
130751 .dst_constraints = .{ .{ .float = .word }, .any },
130752 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
130753 .patterns = &.{
130754 .{ .src = .{ .to_sse, .none, .none } },
130755 },
130756 .extra_temps = .{
130757 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130758 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130759 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
130760 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130761 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130762 .unused,
130763 .unused,
130764 .unused,
130765 .unused,
130766 .unused,
130767 .unused,
130768 },
130769 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130770 .each = .{ .once = &.{
130771 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130772 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
130773 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130774 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130775 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130776 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
130777 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
130778 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
130779 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
130780 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
130781 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130782 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130783 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130784 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130785 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
130786 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130787 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130788 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130789 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
130790 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130791 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130792 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130793 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130794 } },
130795 }, .{
130796 .required_features = .{ .f16c, null, null, null },
130797 .dst_constraints = .{ .{ .float = .word }, .any },
130798 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
130799 .patterns = &.{
130800 .{ .src = .{ .to_sse, .none, .none } },
130801 },
130802 .extra_temps = .{
130803 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130804 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130805 .unused,
130806 .unused,
130807 .unused,
130808 .unused,
130809 .unused,
130810 .unused,
130811 .unused,
130812 .unused,
130813 .unused,
130814 },
130815 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130816 .each = .{ .once = &.{
130817 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
130818 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
130819 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
130820 .{ ._, .v_ps, .min, .tmp1y, .dst0y, .tmp0y, ._ },
130821 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
130822 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
130823 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
130824 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130825 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130826 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130827 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130828 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130829 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130830 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130831 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130832 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130833 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130834 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130835 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130836 } },
130837 }, .{
130838 .required_features = .{ .avx512f, null, null, null },
130839 .dst_constraints = .{ .{ .float = .word }, .any },
130840 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
130841 .patterns = &.{
130842 .{ .src = .{ .to_mem, .none, .none } },
130843 },
130844 .extra_temps = .{
130845 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130846 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130847 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
130848 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130849 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130850 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130851 .unused,
130852 .unused,
130853 .unused,
130854 .unused,
130855 .unused,
130856 },
130857 .dst_temps = .{ .{ .rc = .sse }, .unused },
130858 .each = .{ .once = &.{
130859 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130860 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
130861 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
130862 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130863 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
130864 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
130865 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130866 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
130867 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
130868 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
130869 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
130870 .{ ._, .v_ps, .min, .tmp5y, .tmp3y, .tmp4y, ._ },
130871 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
130872 .{ ._, .v_ps, .blendv, .tmp3y, .tmp3y, .tmp5y, .tmp4y },
130873 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
130874 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
130875 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
130876 .{ ._, .v_ps, .min, .tmp5y, .dst0y, .tmp4y, ._ },
130877 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
130878 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp5y, .tmp4y },
130879 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
130880 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
130881 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
130882 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130883 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130884 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130885 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130886 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
130887 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130888 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130889 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130890 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
130891 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130892 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130893 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130894 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130895 } },
130896 }, .{
130897 .required_features = .{ .avx512f, null, null, null },
130898 .dst_constraints = .{ .{ .float = .word }, .any },
130899 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
130900 .patterns = &.{
130901 .{ .src = .{ .to_mem, .none, .none } },
130902 },
130903 .extra_temps = .{
130904 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130905 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130906 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130907 .unused,
130908 .unused,
130909 .unused,
130910 .unused,
130911 .unused,
130912 .unused,
130913 .unused,
130914 .unused,
130915 },
130916 .dst_temps = .{ .{ .rc = .sse }, .unused },
130917 .each = .{ .once = &.{
130918 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
130919 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
130920 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
130921 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
130922 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
130923 .{ ._, .v_ps, .min, .tmp2y, .tmp0y, .tmp1y, ._ },
130924 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
130925 .{ ._, .v_ps, .blendv, .tmp0y, .tmp0y, .tmp2y, .tmp1y },
130926 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
130927 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
130928 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
130929 .{ ._, .v_ps, .min, .tmp2y, .dst0y, .tmp1y, ._ },
130930 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
130931 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
130932 .{ ._, .v_ps, .min, .tmp1y, .dst0y, .tmp0y, ._ },
130933 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
130934 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
130935 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
130936 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130937 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130938 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130939 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130940 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130941 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130942 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130943 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130944 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130945 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130946 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130947 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130948 } },
130949 }, .{
130950 .required_features = .{ .f16c, null, null, null },
130951 .dst_constraints = .{ .{ .float = .word }, .any },
130952 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
130953 .patterns = &.{
130954 .{ .src = .{ .to_mem, .none, .none } },
130955 },
130956 .extra_temps = .{
130957 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130958 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130959 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130960 .unused,
130961 .unused,
130962 .unused,
130963 .unused,
130964 .unused,
130965 .unused,
130966 .unused,
130967 .unused,
130968 },
130969 .dst_temps = .{ .{ .rc = .sse }, .unused },
130970 .clobbers = .{ .eflags = true },
130971 .each = .{ .once = &.{
130972 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
130973 .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
130974 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
130975 .{ ._, .v_ps, .min, .tmp2y, .dst0y, .tmp1y, ._ },
130976 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
130977 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
130978 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
130979 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130980 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
130981 .{ ._, .v_ps, .min, .tmp2x, .dst0x, .tmp1x, ._ },
130982 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
130983 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
130984 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
130985 .{ ._, .v_ps, .min, .tmp2x, .dst0x, .tmp1x, ._ },
130986 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
130987 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
130988 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
130989 .{ ._, .v_ss, .min, .tmp2x, .dst0x, .tmp1x, ._ },
130990 .{ ._, .v_ss, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
130991 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
130992 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130993 } },
130994 }, .{
130995 .required_features = .{ .avx512f, null, null, null },
130996 .dst_constraints = .{ .{ .float = .word }, .any },
130997 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
130998 .patterns = &.{
130999 .{ .src = .{ .to_mem, .none, .none } },
131000 },
131001 .extra_temps = .{
131002 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131003 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131004 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131005 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131006 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131007 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131008 .unused,
131009 .unused,
131010 .unused,
131011 .unused,
131012 .unused,
131013 },
131014 .dst_temps = .{ .{ .rc = .sse }, .unused },
131015 .clobbers = .{ .eflags = true },
131016 .each = .{ .once = &.{
131017 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131018 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131019 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
131020 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131021 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
131022 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
131023 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131024 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
131025 .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ },
131026 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
131027 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
131028 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
131029 .{ ._, .v_ps, .min, .tmp5y, .tmp3y, .tmp4y, ._ },
131030 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
131031 .{ ._, .v_ps, .blendv, .tmp3y, .tmp3y, .tmp5y, .tmp4y },
131032 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
131033 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
131034 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
131035 .{ ._, .v_ps, .min, .tmp5y, .dst0y, .tmp4y, ._ },
131036 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
131037 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp5y, .tmp4y },
131038 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131039 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131040 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131041 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
131042 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131043 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131044 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131045 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131046 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131047 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131048 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131049 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131050 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131051 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
131052 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131053 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131054 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131055 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131056 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131057 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131058 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131059 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
131060 } },
131061 }, .{
131062 .required_features = .{ .f16c, null, null, null },
131063 .dst_constraints = .{ .{ .float = .word }, .any },
131064 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
131065 .patterns = &.{
131066 .{ .src = .{ .to_mem, .none, .none } },
131067 },
131068 .extra_temps = .{
131069 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131070 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131071 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131072 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131073 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131074 .unused,
131075 .unused,
131076 .unused,
131077 .unused,
131078 .unused,
131079 .unused,
131080 },
131081 .dst_temps = .{ .{ .rc = .sse }, .unused },
131082 .clobbers = .{ .eflags = true },
131083 .each = .{ .once = &.{
131084 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131085 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131086 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131087 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
131088 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131089 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
131090 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131091 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
131092 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
131093 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131094 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131095 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131096 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
131097 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131098 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131099 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131100 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131101 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131102 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131103 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131104 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131105 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131106 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
131107 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131108 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131109 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131110 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131111 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131112 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131113 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131114 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
131115 } },
131116 }, .{
131117 .required_features = .{ .avx, null, null, null },
131118 .dst_constraints = .{ .{ .float = .word }, .any },
131119 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
131120 .patterns = &.{
131121 .{ .src = .{ .to_mem, .none, .none } },
131122 },
131123 .call_frame = .{ .alignment = .@"16" },
131124 .extra_temps = .{
131125 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131126 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
131127 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
131128 .unused,
131129 .unused,
131130 .unused,
131131 .unused,
131132 .unused,
131133 .unused,
131134 .unused,
131135 .unused,
131136 },
131137 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
131138 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
131139 .each = .{ .once = &.{
131140 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
131141 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
131142 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) },
131143 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
131144 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
131145 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
131146 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
131147 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131148 } },
131149 }, .{
131150 .required_features = .{ .sse2, null, null, null },
131151 .dst_constraints = .{ .{ .float = .word }, .any },
131152 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
131153 .patterns = &.{
131154 .{ .src = .{ .to_mem, .none, .none } },
131155 },
131156 .call_frame = .{ .alignment = .@"16" },
131157 .extra_temps = .{
131158 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131159 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
131160 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
131161 .unused,
131162 .unused,
131163 .unused,
131164 .unused,
131165 .unused,
131166 .unused,
131167 .unused,
131168 .unused,
131169 },
131170 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
131171 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
131172 .each = .{ .once = &.{
131173 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
131174 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
131175 .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ },
131176 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
131177 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
131178 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
131179 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
131180 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131181 } },
131182 }, .{
131183 .required_features = .{ .sse, null, null, null },
131184 .dst_constraints = .{ .{ .float = .word }, .any },
131185 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
131186 .patterns = &.{
131187 .{ .src = .{ .to_mem, .none, .none } },
131188 },
131189 .call_frame = .{ .alignment = .@"16" },
131190 .extra_temps = .{
131191 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131192 .{ .type = .f16, .kind = .{ .reg = .ax } },
131193 .{ .type = .f32, .kind = .mem },
131194 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
131195 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
131196 .unused,
131197 .unused,
131198 .unused,
131199 .unused,
131200 .unused,
131201 .unused,
131202 },
131203 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
131204 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
131205 .each = .{ .once = &.{
131206 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
131207 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
131208 .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
131209 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
131210 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
131211 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
131212 .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ },
131213 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
131214 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
131215 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131216 } },
131217 }, .{
131218 .required_features = .{ .avx, null, null, null },
131219 .dst_constraints = .{ .{ .float = .dword }, .any },
131220 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
131221 .patterns = &.{
131222 .{ .src = .{ .to_sse, .none, .none } },
131223 },
131224 .extra_temps = .{
131225 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131226 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131227 .unused,
131228 .unused,
131229 .unused,
131230 .unused,
131231 .unused,
131232 .unused,
131233 .unused,
131234 .unused,
131235 .unused,
131236 },
131237 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131238 .each = .{ .once = &.{
131239 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
131240 .{ ._, .v_ss, .min, .tmp1x, .src0x, .tmp0x, ._ },
131241 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131242 .{ ._, .v_ps, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
131243 } },
131244 }, .{
131245 .required_features = .{ .sse4_1, null, null, null },
131246 .dst_constraints = .{ .{ .float = .dword }, .any },
131247 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
131248 .patterns = &.{
131249 .{ .src = .{ .to_mut_sse, .none, .none } },
131250 },
131251 .extra_temps = .{
131252 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131253 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131254 .unused,
131255 .unused,
131256 .unused,
131257 .unused,
131258 .unused,
131259 .unused,
131260 .unused,
131261 .unused,
131262 .unused,
131263 },
131264 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131265 .each = .{ .once = &.{
131266 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
131267 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
131268 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131269 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131270 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131271 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
131272 } },
131273 }, .{
131274 .required_features = .{ .sse, null, null, null },
131275 .dst_constraints = .{ .{ .float = .dword }, .any },
131276 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
131277 .patterns = &.{
131278 .{ .src = .{ .to_mut_sse, .none, .none } },
131279 },
131280 .extra_temps = .{
131281 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131282 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131283 .unused,
131284 .unused,
131285 .unused,
131286 .unused,
131287 .unused,
131288 .unused,
131289 .unused,
131290 .unused,
131291 .unused,
131292 },
131293 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131294 .each = .{ .once = &.{
131295 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
131296 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
131297 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131298 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131299 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131300 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
131301 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
131302 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
131303 } },
131304 }, .{
131305 .required_features = .{ .avx, null, null, null },
131306 .dst_constraints = .{ .{ .float = .dword }, .any },
131307 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131308 .patterns = &.{
131309 .{ .src = .{ .to_sse, .none, .none } },
131310 },
131311 .extra_temps = .{
131312 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131313 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131314 .unused,
131315 .unused,
131316 .unused,
131317 .unused,
131318 .unused,
131319 .unused,
131320 .unused,
131321 .unused,
131322 .unused,
131323 },
131324 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131325 .each = .{ .once = &.{
131326 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
131327 .{ ._, .v_ss, .min, .tmp1x, .src0x, .tmp0x, ._ },
131328 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131329 .{ ._, .v_ps, .blendv, .tmp0x, .src0x, .tmp1x, .tmp0x },
131330 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
131331 .{ ._, .v_ss, .min, .tmp1x, .tmp0x, .dst0x, ._ },
131332 .{ ._, .v_ss, .cmp, .dst0x, .dst0x, .dst0x, .vp(.ord) },
131333 .{ ._, .v_ps, .blendv, .dst0x, .tmp0x, .tmp1x, .dst0x },
131334 } },
131335 }, .{
131336 .required_features = .{ .sse4_1, null, null, null },
131337 .dst_constraints = .{ .{ .float = .dword }, .any },
131338 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131339 .patterns = &.{
131340 .{ .src = .{ .to_mut_sse, .none, .none } },
131341 },
131342 .extra_temps = .{
131343 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131344 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131345 .unused,
131346 .unused,
131347 .unused,
131348 .unused,
131349 .unused,
131350 .unused,
131351 .unused,
131352 .unused,
131353 .unused,
131354 },
131355 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131356 .each = .{ .once = &.{
131357 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
131358 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
131359 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131360 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131361 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131362 .{ ._, ._ps, .blendv, .tmp1x, .src0x, .tmp0x, ._ },
131363 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
131364 .{ ._, ._ps, .mova, .tmp0x, .tmp1x, ._, ._ },
131365 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
131366 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131367 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131368 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
131369 } },
131370 }, .{
131371 .required_features = .{ .sse, null, null, null },
131372 .dst_constraints = .{ .{ .float = .dword }, .any },
131373 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131374 .patterns = &.{
131375 .{ .src = .{ .to_mut_sse, .none, .none } },
131376 },
131377 .extra_temps = .{
131378 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131379 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131380 .unused,
131381 .unused,
131382 .unused,
131383 .unused,
131384 .unused,
131385 .unused,
131386 .unused,
131387 .unused,
131388 .unused,
131389 },
131390 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131391 .each = .{ .once = &.{
131392 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
131393 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
131394 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131395 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131396 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131397 .{ ._, ._ps, .@"and", .tmp1x, .tmp0x, ._, ._ },
131398 .{ ._, ._ps, .andn, .tmp0x, .dst0x, ._, ._ },
131399 .{ ._, ._ps, .@"or", .tmp0x, .tmp1x, ._, ._ },
131400 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
131401 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131402 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131403 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131404 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
131405 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
131406 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
131407 } },
131408 }, .{
131409 .required_features = .{ .avx, null, null, null },
131410 .dst_constraints = .{ .{ .float = .dword }, .any },
131411 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131412 .patterns = &.{
131413 .{ .src = .{ .to_sse, .none, .none } },
131414 },
131415 .extra_temps = .{
131416 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131417 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131418 .unused,
131419 .unused,
131420 .unused,
131421 .unused,
131422 .unused,
131423 .unused,
131424 .unused,
131425 .unused,
131426 .unused,
131427 },
131428 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131429 .each = .{ .once = &.{
131430 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
131431 .{ ._, .v_ps, .min, .tmp1x, .src0x, .tmp0x, ._ },
131432 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131433 .{ ._, .v_ps, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
131434 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
131435 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131436 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131437 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131438 } },
131439 }, .{
131440 .required_features = .{ .sse4_1, null, null, null },
131441 .dst_constraints = .{ .{ .float = .dword }, .any },
131442 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131443 .patterns = &.{
131444 .{ .src = .{ .to_mut_sse, .none, .none } },
131445 },
131446 .extra_temps = .{
131447 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131448 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131449 .unused,
131450 .unused,
131451 .unused,
131452 .unused,
131453 .unused,
131454 .unused,
131455 .unused,
131456 .unused,
131457 .unused,
131458 },
131459 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131460 .each = .{ .once = &.{
131461 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
131462 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
131463 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131464 .{ ._, ._ps, .min, .tmp1x, .tmp0x, ._, ._ },
131465 .{ ._, ._ps, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131466 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
131467 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
131468 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
131469 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131470 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131471 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131472 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
131473 } },
131474 }, .{
131475 .required_features = .{ .sse, null, null, null },
131476 .dst_constraints = .{ .{ .float = .dword }, .any },
131477 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131478 .patterns = &.{
131479 .{ .src = .{ .to_mut_sse, .none, .none } },
131480 },
131481 .extra_temps = .{
131482 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131483 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131484 .unused,
131485 .unused,
131486 .unused,
131487 .unused,
131488 .unused,
131489 .unused,
131490 .unused,
131491 .unused,
131492 .unused,
131493 },
131494 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131495 .each = .{ .once = &.{
131496 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
131497 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
131498 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131499 .{ ._, ._ps, .min, .tmp1x, .tmp0x, ._, ._ },
131500 .{ ._, ._ps, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131501 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
131502 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
131503 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
131504 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
131505 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
131506 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
131507 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131508 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131509 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
131510 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
131511 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
131512 } },
131513 }, .{
131514 .required_features = .{ .avx, null, null, null },
131515 .dst_constraints = .{ .{ .float = .dword }, .any },
131516 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
131517 .patterns = &.{
131518 .{ .src = .{ .to_sse, .none, .none } },
131519 },
131520 .extra_temps = .{
131521 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131522 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131523 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131524 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131525 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131526 .unused,
131527 .unused,
131528 .unused,
131529 .unused,
131530 .unused,
131531 .unused,
131532 },
131533 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131534 .each = .{ .once = &.{
131535 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131536 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
131537 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131538 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131539 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131540 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131541 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131542 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131543 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
131544 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131545 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131546 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131547 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131548 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131549 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131550 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131551 } },
131552 }, .{
131553 .required_features = .{ .avx, null, null, null },
131554 .dst_constraints = .{ .{ .float = .dword }, .any },
131555 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
131556 .patterns = &.{
131557 .{ .src = .{ .to_sse, .none, .none } },
131558 },
131559 .extra_temps = .{
131560 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131561 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131562 .unused,
131563 .unused,
131564 .unused,
131565 .unused,
131566 .unused,
131567 .unused,
131568 .unused,
131569 .unused,
131570 .unused,
131571 },
131572 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131573 .each = .{ .once = &.{
131574 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
131575 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131576 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131577 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131578 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
131579 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131580 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131581 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131582 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
131583 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131584 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131585 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131586 } },
131587 }, .{
131588 .required_features = .{ .avx512f, null, null, null },
131589 .dst_constraints = .{ .{ .float = .dword }, .any },
131590 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
131591 .patterns = &.{
131592 .{ .src = .{ .to_mem, .none, .none } },
131593 },
131594 .extra_temps = .{
131595 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131596 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131597 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131598 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131599 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131600 .unused,
131601 .unused,
131602 .unused,
131603 .unused,
131604 .unused,
131605 .unused,
131606 },
131607 .dst_temps = .{ .{ .rc = .sse }, .unused },
131608 .each = .{ .once = &.{
131609 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131610 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131611 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
131612 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131613 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
131614 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
131615 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131616 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
131617 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131618 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131619 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131620 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131621 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131622 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131623 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131624 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
131625 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131626 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131627 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131628 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131629 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131630 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131631 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131632 } },
131633 }, .{
131634 .required_features = .{ .avx512f, null, null, null },
131635 .dst_constraints = .{ .{ .float = .dword }, .any },
131636 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
131637 .patterns = &.{
131638 .{ .src = .{ .to_mem, .none, .none } },
131639 },
131640 .extra_temps = .{
131641 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131642 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131643 .unused,
131644 .unused,
131645 .unused,
131646 .unused,
131647 .unused,
131648 .unused,
131649 .unused,
131650 .unused,
131651 .unused,
131652 },
131653 .dst_temps = .{ .{ .rc = .sse }, .unused },
131654 .each = .{ .once = &.{
131655 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
131656 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
131657 .{ ._, .v_ps, .min, .tmp1y, .dst0y, .tmp0y, ._ },
131658 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
131659 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
131660 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
131661 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131662 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131663 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131664 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
131665 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131666 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131667 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131668 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
131669 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131670 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131671 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131672 } },
131673 }, .{
131674 .required_features = .{ .avx, null, null, null },
131675 .dst_constraints = .{ .{ .float = .dword }, .any },
131676 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
131677 .patterns = &.{
131678 .{ .src = .{ .to_mem, .none, .none } },
131679 },
131680 .extra_temps = .{
131681 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131682 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131683 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131684 .unused,
131685 .unused,
131686 .unused,
131687 .unused,
131688 .unused,
131689 .unused,
131690 .unused,
131691 .unused,
131692 },
131693 .dst_temps = .{ .{ .rc = .sse }, .unused },
131694 .clobbers = .{ .eflags = true },
131695 .each = .{ .once = &.{
131696 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
131697 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
131698 .{ .@"0:", .v_ps, .mova, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
131699 .{ ._, .v_ps, .min, .tmp2y, .dst0y, .tmp1y, ._ },
131700 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
131701 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
131702 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
131703 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131704 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
131705 .{ ._, .v_ps, .min, .tmp2x, .dst0x, .tmp1x, ._ },
131706 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
131707 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
131708 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
131709 .{ ._, .v_ps, .min, .tmp2x, .dst0x, .tmp1x, ._ },
131710 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
131711 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
131712 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
131713 .{ ._, .v_ss, .min, .tmp2x, .dst0x, .tmp1x, ._ },
131714 .{ ._, .v_ss, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
131715 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
131716 } },
131717 }, .{
131718 .required_features = .{ .sse4_1, null, null, null },
131719 .dst_constraints = .{ .{ .float = .dword }, .any },
131720 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131721 .patterns = &.{
131722 .{ .src = .{ .to_mem, .none, .none } },
131723 },
131724 .extra_temps = .{
131725 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131726 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131727 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131728 .unused,
131729 .unused,
131730 .unused,
131731 .unused,
131732 .unused,
131733 .unused,
131734 .unused,
131735 .unused,
131736 },
131737 .dst_temps = .{ .{ .rc = .sse }, .unused },
131738 .clobbers = .{ .eflags = true },
131739 .each = .{ .once = &.{
131740 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
131741 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
131742 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
131743 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131744 .{ ._, ._ps, .min, .tmp2x, .tmp1x, ._, ._ },
131745 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
131746 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
131747 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131748 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131749 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
131750 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
131751 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131752 .{ ._, ._ps, .min, .tmp2x, .tmp1x, ._, ._ },
131753 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
131754 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
131755 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
131756 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
131757 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131758 .{ ._, ._ss, .min, .tmp2x, .tmp1x, ._, ._ },
131759 .{ ._, ._ss, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
131760 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
131761 } },
131762 }, .{
131763 .required_features = .{ .sse, null, null, null },
131764 .dst_constraints = .{ .{ .float = .dword }, .any },
131765 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131766 .patterns = &.{
131767 .{ .src = .{ .to_mem, .none, .none } },
131768 },
131769 .extra_temps = .{
131770 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131771 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131772 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131773 .unused,
131774 .unused,
131775 .unused,
131776 .unused,
131777 .unused,
131778 .unused,
131779 .unused,
131780 .unused,
131781 },
131782 .dst_temps = .{ .{ .rc = .sse }, .unused },
131783 .clobbers = .{ .eflags = true },
131784 .each = .{ .once = &.{
131785 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
131786 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
131787 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
131788 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131789 .{ ._, ._ps, .min, .tmp2x, .tmp1x, ._, ._ },
131790 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
131791 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
131792 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
131793 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
131794 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131795 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131796 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
131797 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
131798 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131799 .{ ._, ._ps, .min, .tmp2x, .tmp1x, ._, ._ },
131800 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
131801 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
131802 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
131803 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
131804 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
131805 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
131806 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131807 .{ ._, ._ss, .min, .tmp2x, .tmp1x, ._, ._ },
131808 .{ ._, ._ss, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
131809 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
131810 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
131811 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
131812 } },
131813 }, .{
131814 .required_features = .{ .avx512f, null, null, null },
131815 .dst_constraints = .{ .{ .float = .dword }, .any },
131816 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
131817 .patterns = &.{
131818 .{ .src = .{ .to_mem, .none, .none } },
131819 },
131820 .extra_temps = .{
131821 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131822 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131823 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131824 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131825 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131826 .unused,
131827 .unused,
131828 .unused,
131829 .unused,
131830 .unused,
131831 .unused,
131832 },
131833 .dst_temps = .{ .{ .rc = .sse }, .unused },
131834 .clobbers = .{ .eflags = true },
131835 .each = .{ .once = &.{
131836 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131837 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131838 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
131839 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131840 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
131841 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
131842 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131843 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
131844 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131845 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131846 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131847 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
131848 .{ .@"0:", .v_ps, .mova, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
131849 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131850 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131851 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131852 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
131853 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131854 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131855 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131856 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131857 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131858 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
131859 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131860 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131861 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131862 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131863 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131864 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131865 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131866 } },
131867 }, .{
131868 .required_features = .{ .avx, null, null, null },
131869 .dst_constraints = .{ .{ .float = .dword }, .any },
131870 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
131871 .patterns = &.{
131872 .{ .src = .{ .to_mem, .none, .none } },
131873 },
131874 .extra_temps = .{
131875 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131876 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131877 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131878 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131879 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131880 .unused,
131881 .unused,
131882 .unused,
131883 .unused,
131884 .unused,
131885 .unused,
131886 },
131887 .dst_temps = .{ .{ .rc = .sse }, .unused },
131888 .clobbers = .{ .eflags = true },
131889 .each = .{ .once = &.{
131890 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131891 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131892 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131893 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
131894 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131895 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
131896 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131897 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131898 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131899 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131900 .{ .@"0:", .v_ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
131901 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131902 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131903 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131904 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131905 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131906 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
131907 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131908 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131909 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131910 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131911 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131912 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131913 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131914 } },
131915 }, .{
131916 .required_features = .{ .sse4_1, null, null, null },
131917 .dst_constraints = .{ .{ .float = .dword }, .any },
131918 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131919 .patterns = &.{
131920 .{ .src = .{ .to_mem, .none, .none } },
131921 },
131922 .extra_temps = .{
131923 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131924 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131925 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131926 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131927 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131928 .unused,
131929 .unused,
131930 .unused,
131931 .unused,
131932 .unused,
131933 .unused,
131934 },
131935 .dst_temps = .{ .{ .rc = .sse }, .unused },
131936 .clobbers = .{ .eflags = true },
131937 .each = .{ .once = &.{
131938 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131939 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
131940 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131941 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
131942 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
131943 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
131944 .{ .@"0:", ._ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
131945 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
131946 .{ ._, ._ps, .min, .tmp4x, .tmp3x, ._, ._ },
131947 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
131948 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
131949 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131950 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131951 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
131952 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
131953 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
131954 .{ ._, ._ps, .min, .tmp4x, .tmp3x, ._, ._ },
131955 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
131956 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
131957 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
131958 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
131959 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
131960 .{ ._, ._ss, .min, .tmp4x, .tmp3x, ._, ._ },
131961 .{ ._, ._ss, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
131962 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
131963 } },
131964 }, .{
131965 .required_features = .{ .sse, null, null, null },
131966 .dst_constraints = .{ .{ .float = .dword }, .any },
131967 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131968 .patterns = &.{
131969 .{ .src = .{ .to_mem, .none, .none } },
131970 },
131971 .extra_temps = .{
131972 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131973 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131974 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131975 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131976 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131977 .unused,
131978 .unused,
131979 .unused,
131980 .unused,
131981 .unused,
131982 .unused,
131983 },
131984 .dst_temps = .{ .{ .rc = .sse }, .unused },
131985 .clobbers = .{ .eflags = true },
131986 .each = .{ .once = &.{
131987 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131988 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
131989 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131990 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
131991 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
131992 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
131993 .{ .@"0:", ._ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
131994 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
131995 .{ ._, ._ps, .min, .tmp4x, .tmp3x, ._, ._ },
131996 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
131997 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
131998 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
131999 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
132000 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132001 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132002 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
132003 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
132004 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
132005 .{ ._, ._ps, .min, .tmp4x, .tmp3x, ._, ._ },
132006 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
132007 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
132008 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
132009 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
132010 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
132011 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
132012 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
132013 .{ ._, ._ss, .min, .tmp4x, .tmp3x, ._, ._ },
132014 .{ ._, ._ss, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
132015 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
132016 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
132017 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
132018 } },
132019 }, .{
132020 .required_features = .{ .avx, null, null, null },
132021 .dst_constraints = .{ .{ .float = .qword }, .any },
132022 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132023 .patterns = &.{
132024 .{ .src = .{ .to_sse, .none, .none } },
132025 },
132026 .extra_temps = .{
132027 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132028 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132029 .unused,
132030 .unused,
132031 .unused,
132032 .unused,
132033 .unused,
132034 .unused,
132035 .unused,
132036 .unused,
132037 .unused,
132038 },
132039 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
132040 .each = .{ .once = &.{
132041 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
132042 .{ ._, .v_sd, .min, .tmp1x, .src0x, .tmp0x, ._ },
132043 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132044 .{ ._, .v_pd, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
132045 } },
132046 }, .{
132047 .required_features = .{ .sse4_1, null, null, null },
132048 .dst_constraints = .{ .{ .float = .qword }, .any },
132049 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132050 .patterns = &.{
132051 .{ .src = .{ .to_mut_sse, .none, .none } },
132052 },
132053 .extra_temps = .{
132054 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
132055 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132056 .unused,
132057 .unused,
132058 .unused,
132059 .unused,
132060 .unused,
132061 .unused,
132062 .unused,
132063 .unused,
132064 .unused,
132065 },
132066 .dst_temps = .{ .{ .ref = .src0 }, .unused },
132067 .each = .{ .once = &.{
132068 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
132069 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
132070 .{ ._, ._pd, .mova, .tmp1x, .src0x, ._, ._ },
132071 .{ ._, ._sd, .min, .tmp1x, .tmp0x, ._, ._ },
132072 .{ ._, ._sd, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
132073 .{ ._, ._pd, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
132074 } },
132075 }, .{
132076 .required_features = .{ .sse2, null, null, null },
132077 .dst_constraints = .{ .{ .float = .qword }, .any },
132078 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132079 .patterns = &.{
132080 .{ .src = .{ .to_mut_sse, .none, .none } },
132081 },
132082 .extra_temps = .{
132083 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132084 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132085 .unused,
132086 .unused,
132087 .unused,
132088 .unused,
132089 .unused,
132090 .unused,
132091 .unused,
132092 .unused,
132093 .unused,
132094 },
132095 .dst_temps = .{ .{ .ref = .src0 }, .unused },
132096 .each = .{ .once = &.{
132097 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
132098 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
132099 .{ ._, ._pd, .mova, .tmp1x, .src0x, ._, ._ },
132100 .{ ._, ._sd, .min, .tmp1x, .tmp0x, ._, ._ },
132101 .{ ._, ._sd, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
132102 .{ ._, ._pd, .@"and", .dst0x, .tmp0x, ._, ._ },
132103 .{ ._, ._pd, .andn, .tmp0x, .tmp1x, ._, ._ },
132104 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
132105 } },
132106 }, .{
132107 .required_features = .{ .avx, null, null, null },
132108 .dst_constraints = .{ .{ .float = .qword }, .any },
132109 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
132110 .patterns = &.{
132111 .{ .src = .{ .to_sse, .none, .none } },
132112 },
132113 .extra_temps = .{
132114 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132115 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132116 .unused,
132117 .unused,
132118 .unused,
132119 .unused,
132120 .unused,
132121 .unused,
132122 .unused,
132123 .unused,
132124 .unused,
132125 },
132126 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
132127 .each = .{ .once = &.{
132128 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
132129 .{ ._, .v_sd, .min, .tmp1x, .src0x, .tmp0x, ._ },
132130 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132131 .{ ._, .v_pd, .blendv, .tmp0x, .src0x, .tmp1x, .tmp0x },
132132 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
132133 .{ ._, .v_sd, .min, .tmp1x, .tmp0x, .dst0x, ._ },
132134 .{ ._, .v_sd, .cmp, .dst0x, .dst0x, .dst0x, .vp(.ord) },
132135 .{ ._, .v_pd, .blendv, .dst0x, .tmp0x, .tmp1x, .dst0x },
132136 } },
132137 }, .{
132138 .required_features = .{ .avx, null, null, null },
132139 .dst_constraints = .{ .{ .float = .qword }, .any },
132140 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
132141 .patterns = &.{
132142 .{ .src = .{ .to_sse, .none, .none } },
132143 },
132144 .extra_temps = .{
132145 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132146 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132147 .unused,
132148 .unused,
132149 .unused,
132150 .unused,
132151 .unused,
132152 .unused,
132153 .unused,
132154 .unused,
132155 .unused,
132156 },
132157 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
132158 .each = .{ .once = &.{
132159 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
132160 .{ ._, .v_pd, .min, .tmp1x, .src0x, .tmp0x, ._ },
132161 .{ ._, .v_pd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132162 .{ ._, .v_pd, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
132163 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
132164 .{ ._, .v_sd, .min, .tmp1x, .dst0x, .tmp0x, ._ },
132165 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132166 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
132167 } },
132168 }, .{
132169 .required_features = .{ .avx512f, null, null, null },
132170 .dst_constraints = .{ .{ .float = .qword }, .any },
132171 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
132172 .patterns = &.{
132173 .{ .src = .{ .to_mem, .none, .none } },
132174 },
132175 .extra_temps = .{
132176 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
132177 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132178 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132179 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
132180 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
132181 .unused,
132182 .unused,
132183 .unused,
132184 .unused,
132185 .unused,
132186 .unused,
132187 },
132188 .dst_temps = .{ .{ .rc = .sse }, .unused },
132189 .each = .{ .once = &.{
132190 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132191 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
132192 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
132193 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132194 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
132195 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
132196 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132197 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
132198 .{ ._, .v_pd, .min, .tmp4y, .dst0y, .tmp3y, ._ },
132199 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
132200 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
132201 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132202 .{ ._, .v_pd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132203 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132204 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132205 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
132206 .{ ._, .v_sd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132207 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132208 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132209 } },
132210 }, .{
132211 .required_features = .{ .avx512f, null, null, null },
132212 .dst_constraints = .{ .{ .float = .qword }, .any },
132213 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
132214 .patterns = &.{
132215 .{ .src = .{ .to_mem, .none, .none } },
132216 },
132217 .extra_temps = .{
132218 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132219 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132220 .unused,
132221 .unused,
132222 .unused,
132223 .unused,
132224 .unused,
132225 .unused,
132226 .unused,
132227 .unused,
132228 .unused,
132229 },
132230 .dst_temps = .{ .{ .rc = .sse }, .unused },
132231 .each = .{ .once = &.{
132232 .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ },
132233 .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
132234 .{ ._, .v_pd, .min, .tmp1y, .dst0y, .tmp0y, ._ },
132235 .{ ._, .v_pd, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
132236 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
132237 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
132238 .{ ._, .v_pd, .min, .tmp1x, .dst0x, .tmp0x, ._ },
132239 .{ ._, .v_pd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132240 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
132241 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
132242 .{ ._, .v_sd, .min, .tmp1x, .dst0x, .tmp0x, ._ },
132243 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132244 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
132245 } },
132246 }, .{
132247 .required_features = .{ .avx, null, null, null },
132248 .dst_constraints = .{ .{ .float = .qword }, .any },
132249 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
132250 .patterns = &.{
132251 .{ .src = .{ .to_mem, .none, .none } },
132252 },
132253 .extra_temps = .{
132254 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132255 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132256 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132257 .unused,
132258 .unused,
132259 .unused,
132260 .unused,
132261 .unused,
132262 .unused,
132263 .unused,
132264 .unused,
132265 },
132266 .dst_temps = .{ .{ .rc = .sse }, .unused },
132267 .clobbers = .{ .eflags = true },
132268 .each = .{ .once = &.{
132269 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
132270 .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
132271 .{ .@"0:", .v_pd, .mova, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
132272 .{ ._, .v_pd, .min, .tmp2y, .dst0y, .tmp1y, ._ },
132273 .{ ._, .v_pd, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
132274 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
132275 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
132276 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132277 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
132278 .{ ._, .v_pd, .min, .tmp2x, .dst0x, .tmp1x, ._ },
132279 .{ ._, .v_pd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
132280 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
132281 .{ ._, .v_pd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
132282 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
132283 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
132284 .{ ._, .v_sd, .min, .tmp2x, .dst0x, .tmp1x, ._ },
132285 .{ ._, .v_sd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
132286 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
132287 } },
132288 }, .{
132289 .required_features = .{ .sse4_1, null, null, null },
132290 .dst_constraints = .{ .{ .float = .qword }, .any },
132291 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132292 .patterns = &.{
132293 .{ .src = .{ .to_mem, .none, .none } },
132294 },
132295 .extra_temps = .{
132296 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132297 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132298 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132299 .unused,
132300 .unused,
132301 .unused,
132302 .unused,
132303 .unused,
132304 .unused,
132305 .unused,
132306 .unused,
132307 },
132308 .dst_temps = .{ .{ .rc = .sse }, .unused },
132309 .clobbers = .{ .eflags = true },
132310 .each = .{ .once = &.{
132311 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132312 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132313 .{ .@"0:", ._pd, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132314 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
132315 .{ ._, ._pd, .min, .tmp2x, .tmp1x, ._, ._ },
132316 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
132317 .{ ._, ._pd, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
132318 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132319 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132320 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
132321 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
132322 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
132323 .{ ._, ._sd, .min, .tmp2x, .tmp1x, ._, ._ },
132324 .{ ._, ._sd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
132325 .{ ._, ._pd, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
132326 } },
132327 }, .{
132328 .required_features = .{ .sse2, null, null, null },
132329 .dst_constraints = .{ .{ .float = .qword }, .any },
132330 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132331 .patterns = &.{
132332 .{ .src = .{ .to_mem, .none, .none } },
132333 },
132334 .extra_temps = .{
132335 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132336 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132337 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132338 .unused,
132339 .unused,
132340 .unused,
132341 .unused,
132342 .unused,
132343 .unused,
132344 .unused,
132345 .unused,
132346 },
132347 .dst_temps = .{ .{ .rc = .sse }, .unused },
132348 .clobbers = .{ .eflags = true },
132349 .each = .{ .once = &.{
132350 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132351 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132352 .{ .@"0:", ._pd, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132353 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
132354 .{ ._, ._pd, .min, .tmp2x, .tmp1x, ._, ._ },
132355 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
132356 .{ ._, ._pd, .@"and", .dst0x, .tmp1x, ._, ._ },
132357 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
132358 .{ ._, ._pd, .@"or", .dst0x, .tmp1x, ._, ._ },
132359 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132360 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132361 .{ ._, ._pd, .xor, .tmp1x, .tmp1x, ._, ._ },
132362 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
132363 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
132364 .{ ._, ._sd, .min, .tmp2x, .tmp1x, ._, ._ },
132365 .{ ._, ._sd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
132366 .{ ._, ._pd, .@"and", .dst0x, .tmp1x, ._, ._ },
132367 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
132368 .{ ._, ._pd, .@"or", .dst0x, .tmp1x, ._, ._ },
132369 } },
132370 }, .{
132371 .required_features = .{ .avx512f, null, null, null },
132372 .dst_constraints = .{ .{ .float = .qword }, .any },
132373 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
132374 .patterns = &.{
132375 .{ .src = .{ .to_mem, .none, .none } },
132376 },
132377 .extra_temps = .{
132378 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132379 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132380 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132381 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
132382 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
132383 .unused,
132384 .unused,
132385 .unused,
132386 .unused,
132387 .unused,
132388 .unused,
132389 },
132390 .dst_temps = .{ .{ .rc = .sse }, .unused },
132391 .clobbers = .{ .eflags = true },
132392 .each = .{ .once = &.{
132393 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132394 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
132395 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
132396 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132397 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
132398 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
132399 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132400 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
132401 .{ ._, .v_pd, .min, .tmp4y, .dst0y, .tmp3y, ._ },
132402 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
132403 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
132404 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
132405 .{ .@"0:", .v_pd, .mova, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
132406 .{ ._, .v_pd, .min, .tmp4y, .dst0y, .tmp3y, ._ },
132407 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
132408 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
132409 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
132410 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132411 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132412 .{ ._, .v_pd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132413 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132414 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132415 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
132416 .{ ._, .v_sd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132417 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132418 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132419 } },
132420 }, .{
132421 .required_features = .{ .avx, null, null, null },
132422 .dst_constraints = .{ .{ .float = .qword }, .any },
132423 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
132424 .patterns = &.{
132425 .{ .src = .{ .to_mem, .none, .none } },
132426 },
132427 .extra_temps = .{
132428 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132429 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132430 .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132431 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132432 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132433 .unused,
132434 .unused,
132435 .unused,
132436 .unused,
132437 .unused,
132438 .unused,
132439 },
132440 .dst_temps = .{ .{ .rc = .sse }, .unused },
132441 .clobbers = .{ .eflags = true },
132442 .each = .{ .once = &.{
132443 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132444 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
132445 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132446 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
132447 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132448 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
132449 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132450 .{ ._, .v_pd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132451 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132452 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132453 .{ .@"0:", .v_pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
132454 .{ ._, .v_pd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132455 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132456 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132457 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132458 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132459 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
132460 .{ ._, .v_sd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132461 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132462 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132463 } },
132464 }, .{
132465 .required_features = .{ .sse4_1, null, null, null },
132466 .dst_constraints = .{ .{ .float = .qword }, .any },
132467 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132468 .patterns = &.{
132469 .{ .src = .{ .to_mem, .none, .none } },
132470 },
132471 .extra_temps = .{
132472 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132473 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132474 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132475 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132476 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132477 .unused,
132478 .unused,
132479 .unused,
132480 .unused,
132481 .unused,
132482 .unused,
132483 },
132484 .dst_temps = .{ .{ .rc = .sse }, .unused },
132485 .clobbers = .{ .eflags = true },
132486 .each = .{ .once = &.{
132487 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132488 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
132489 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132490 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
132491 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
132492 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
132493 .{ .@"0:", ._pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
132494 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
132495 .{ ._, ._pd, .min, .tmp4x, .tmp3x, ._, ._ },
132496 .{ ._, ._pd, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
132497 .{ ._, ._pd, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
132498 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132499 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132500 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
132501 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
132502 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
132503 .{ ._, ._sd, .min, .tmp4x, .tmp3x, ._, ._ },
132504 .{ ._, ._sd, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
132505 .{ ._, ._pd, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
132506 } },
132507 }, .{
132508 .required_features = .{ .sse2, null, null, null },
132509 .dst_constraints = .{ .{ .float = .qword }, .any },
132510 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132511 .patterns = &.{
132512 .{ .src = .{ .to_mem, .none, .none } },
132513 },
132514 .extra_temps = .{
132515 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132516 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132517 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132518 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132519 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132520 .unused,
132521 .unused,
132522 .unused,
132523 .unused,
132524 .unused,
132525 .unused,
132526 },
132527 .dst_temps = .{ .{ .rc = .sse }, .unused },
132528 .clobbers = .{ .eflags = true },
132529 .each = .{ .once = &.{
132530 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132531 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
132532 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132533 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
132534 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
132535 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
132536 .{ .@"0:", ._pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
132537 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
132538 .{ ._, ._pd, .min, .tmp4x, .tmp3x, ._, ._ },
132539 .{ ._, ._pd, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
132540 .{ ._, ._pd, .@"and", .dst0x, .tmp3x, ._, ._ },
132541 .{ ._, ._pd, .andn, .tmp3x, .tmp4x, ._, ._ },
132542 .{ ._, ._pd, .@"or", .dst0x, .tmp3x, ._, ._ },
132543 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132544 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132545 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
132546 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
132547 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
132548 .{ ._, ._sd, .min, .tmp4x, .tmp3x, ._, ._ },
132549 .{ ._, ._sd, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
132550 .{ ._, ._pd, .@"and", .dst0x, .tmp3x, ._, ._ },
132551 .{ ._, ._pd, .andn, .tmp3x, .tmp4x, ._, ._ },
132552 .{ ._, ._pd, .@"or", .dst0x, .tmp3x, ._, ._ },
132553 } },
132554 }, .{
132555 .required_features = .{ .x87, .cmov, null, null },
132556 .dst_constraints = .{ .{ .float = .qword }, .any },
132557 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
132558 .patterns = &.{
132559 .{ .src = .{ .to_mem, .none, .none } },
132560 },
132561 .extra_temps = .{
132562 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132563 .{ .type = .f64, .kind = .{ .reg = .st7 } },
132564 .{ .type = .f64, .kind = .{ .reg = .st6 } },
132565 .unused,
132566 .unused,
132567 .unused,
132568 .unused,
132569 .unused,
132570 .unused,
132571 .unused,
132572 .unused,
132573 },
132574 .dst_temps = .{ .mem, .unused },
132575 .clobbers = .{ .eflags = true },
132576 .each = .{ .once = &.{
132577 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
132578 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
132579 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
132580 .{ ._, .f_, .ucomi, .tmp2t, .tmp2t, ._, ._ },
132581 .{ ._, .f_u, .cmov, .tmp2t, .tmp1t, ._, ._ },
132582 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
132583 .{ ._, .f_nb, .cmov, .tmp2t, .tmp1t, ._, ._ },
132584 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
132585 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
132586 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132587 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
132588 } },
132589 }, .{
132590 .required_features = .{ .sahf, .x87, null, null },
132591 .dst_constraints = .{ .{ .float = .qword }, .any },
132592 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
132593 .patterns = &.{
132594 .{ .src = .{ .to_mem, .none, .none } },
132595 },
132596 .extra_temps = .{
132597 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132598 .{ .type = .f64, .kind = .{ .reg = .st7 } },
132599 .{ .type = .f64, .kind = .{ .reg = .st6 } },
132600 .{ .type = .u16, .kind = .{ .reg = .ax } },
132601 .unused,
132602 .unused,
132603 .unused,
132604 .unused,
132605 .unused,
132606 .unused,
132607 .unused,
132608 },
132609 .dst_temps = .{ .mem, .unused },
132610 .clobbers = .{ .eflags = true },
132611 .each = .{ .once = &.{
132612 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
132613 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
132614 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
132615 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
132616 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132617 .{ ._, ._, .sahf, ._, ._, ._, ._ },
132618 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
132619 .{ ._, .f_, .xam, ._, ._, ._, ._ },
132620 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132621 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
132622 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132623 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
132624 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
132625 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
132626 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132627 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
132628 } },
132629 }, .{
132630 .required_features = .{ .x87, null, null, null },
132631 .dst_constraints = .{ .{ .float = .qword }, .any },
132632 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
132633 .patterns = &.{
132634 .{ .src = .{ .to_mem, .none, .none } },
132635 },
132636 .extra_temps = .{
132637 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132638 .{ .type = .f64, .kind = .{ .reg = .st7 } },
132639 .{ .type = .f64, .kind = .{ .reg = .st6 } },
132640 .{ .type = .u16, .kind = .{ .reg = .ax } },
132641 .unused,
132642 .unused,
132643 .unused,
132644 .unused,
132645 .unused,
132646 .unused,
132647 .unused,
132648 },
132649 .dst_temps = .{ .mem, .unused },
132650 .clobbers = .{ .eflags = true },
132651 .each = .{ .once = &.{
132652 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
132653 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
132654 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
132655 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
132656 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132657 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
132658 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132659 .{ ._, .f_, .xam, ._, ._, ._, ._ },
132660 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132661 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
132662 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132663 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
132664 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
132665 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
132666 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132667 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
132668 } },
132669 }, .{
132670 .required_features = .{ .x87, .cmov, null, null },
132671 .dst_constraints = .{ .{ .float = .tbyte }, .any },
132672 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
132673 .patterns = &.{
132674 .{ .src = .{ .to_mem, .none, .none } },
132675 },
132676 .extra_temps = .{
132677 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132678 .{ .type = .f80, .kind = .{ .reg = .st7 } },
132679 .{ .type = .f80, .kind = .{ .reg = .st6 } },
132680 .unused,
132681 .unused,
132682 .unused,
132683 .unused,
132684 .unused,
132685 .unused,
132686 .unused,
132687 .unused,
132688 },
132689 .dst_temps = .{ .{ .rc = .x87 }, .unused },
132690 .clobbers = .{ .eflags = true },
132691 .each = .{ .once = &.{
132692 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132693 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
132694 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
132695 .{ ._, .f_, .ucomi, .tmp2t, .tmp2t, ._, ._ },
132696 .{ ._, .f_u, .cmov, .tmp2t, .tmp1t, ._, ._ },
132697 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
132698 .{ ._, .f_nb, .cmov, .tmp2t, .tmp1t, ._, ._ },
132699 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
132700 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132701 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132702 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
132703 } },
132704 }, .{
132705 .required_features = .{ .sahf, .x87, null, null },
132706 .dst_constraints = .{ .{ .float = .tbyte }, .any },
132707 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
132708 .patterns = &.{
132709 .{ .src = .{ .to_mem, .none, .none } },
132710 },
132711 .extra_temps = .{
132712 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132713 .{ .type = .f80, .kind = .{ .reg = .st7 } },
132714 .{ .type = .f80, .kind = .{ .reg = .st6 } },
132715 .{ .type = .u16, .kind = .{ .reg = .ax } },
132716 .unused,
132717 .unused,
132718 .unused,
132719 .unused,
132720 .unused,
132721 .unused,
132722 .unused,
132723 },
132724 .dst_temps = .{ .{ .rc = .x87 }, .unused },
132725 .clobbers = .{ .eflags = true },
132726 .each = .{ .once = &.{
132727 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132728 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
132729 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
132730 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
132731 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132732 .{ ._, ._, .sahf, ._, ._, ._, ._ },
132733 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
132734 .{ ._, .f_, .xam, ._, ._, ._, ._ },
132735 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132736 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
132737 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132738 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
132739 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
132740 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132741 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132742 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
132743 } },
132744 }, .{
132745 .required_features = .{ .x87, null, null, null },
132746 .dst_constraints = .{ .{ .float = .tbyte }, .any },
132747 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
132748 .patterns = &.{
132749 .{ .src = .{ .to_mem, .none, .none } },
132750 },
132751 .extra_temps = .{
132752 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132753 .{ .type = .f80, .kind = .{ .reg = .st7 } },
132754 .{ .type = .f80, .kind = .{ .reg = .st6 } },
132755 .{ .type = .u16, .kind = .{ .reg = .ax } },
132756 .unused,
132757 .unused,
132758 .unused,
132759 .unused,
132760 .unused,
132761 .unused,
132762 .unused,
132763 },
132764 .dst_temps = .{ .{ .rc = .x87 }, .unused },
132765 .clobbers = .{ .eflags = true },
132766 .each = .{ .once = &.{
132767 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132768 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
132769 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
132770 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
132771 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132772 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
132773 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132774 .{ ._, .f_, .xam, ._, ._, ._, ._ },
132775 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132776 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
132777 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132778 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
132779 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
132780 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132781 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132782 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
132783 } },
132784 }, .{
132785 .required_features = .{ .avx, null, null, null },
132786 .dst_constraints = .{ .{ .float = .xword }, .any },
132787 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
132788 .patterns = &.{
132789 .{ .src = .{ .to_mem, .none, .none } },
132790 },
132791 .call_frame = .{ .alignment = .@"16" },
132792 .extra_temps = .{
132793 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132794 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
132795 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
132796 .unused,
132797 .unused,
132798 .unused,
132799 .unused,
132800 .unused,
132801 .unused,
132802 .unused,
132803 .unused,
132804 },
132805 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
132806 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
132807 .each = .{ .once = &.{
132808 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132809 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132810 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132811 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
132812 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132813 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132814 } },
132815 }, .{
132816 .required_features = .{ .sse2, null, null, null },
132817 .dst_constraints = .{ .{ .float = .xword }, .any },
132818 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
132819 .patterns = &.{
132820 .{ .src = .{ .to_mem, .none, .none } },
132821 },
132822 .call_frame = .{ .alignment = .@"16" },
132823 .extra_temps = .{
132824 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132825 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
132826 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
132827 .unused,
132828 .unused,
132829 .unused,
132830 .unused,
132831 .unused,
132832 .unused,
132833 .unused,
132834 .unused,
132835 },
132836 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
132837 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
132838 .each = .{ .once = &.{
132839 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132840 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132841 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132842 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
132843 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132844 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132845 } },
132846 }, .{
132847 .required_features = .{ .sse, null, null, null },
132848 .dst_constraints = .{ .{ .float = .xword }, .any },
132849 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
132850 .patterns = &.{
132851 .{ .src = .{ .to_mem, .none, .none } },
132852 },
132853 .call_frame = .{ .alignment = .@"16" },
132854 .extra_temps = .{
132855 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132856 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
132857 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
132858 .unused,
132859 .unused,
132860 .unused,
132861 .unused,
132862 .unused,
132863 .unused,
132864 .unused,
132865 .unused,
132866 },
132867 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
132868 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
132869 .each = .{ .once = &.{
132870 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132871 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132872 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132873 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
132874 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132875 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132876 } },
130573132877 } },
130574132878 .Max => comptime &.{ .{
130575132879 .required_features = .{ .avx, null, null, null },
......@@ -137981,7 +140285,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
137981140285 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137982140286 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137983140287 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137984
137985140288 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137986140289 .unused,
137987140290 .unused,
......@@ -138024,7 +140327,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
138024140327 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
138025140328 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
138026140329 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138027
138028140330 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
138029140331 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
138030140332 .unused,
......@@ -146819,7 +149121,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
146819149121 .{ .src = .{ .to_mem, .none, .none } },
146820149122 },
146821149123 .extra_temps = .{
146822 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
146823149124 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
146824149125 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
146825149126 .unused,
......@@ -146830,26 +149131,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
146830149131 .unused,
146831149132 .unused,
146832149133 .unused,
149134 .unused,
146833149135 },
146834149136 .dst_temps = .{ .{ .rc = .sse }, .unused },
146835149137 .each = .{ .once = &.{
146836 .{ ._, .v_ps, .mova, .tmp1y, .memd(.src0y, 32), ._, ._ },
149138 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
146837149139 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
146838 .{ ._, .v_f128, .extract, .tmp2x, .tmp1y, .ui(1), ._ },
149140 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
149141 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
146839149142 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
146840 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
146841 .{ ._, .v_ps, .min, .tmp1y, .tmp1y, .tmp2y, ._ },
146842 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
149143 .{ ._, .v_ps, .min, .tmp0y, .tmp0y, .tmp1y, ._ },
149144 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
146843149145 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
146844 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
146845 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp2y, ._ },
149146 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
146846149147 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp1y, ._ },
146847 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
146848 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp1x, ._ },
146849 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
146850 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp1x, ._ },
146851 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
146852 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp1x, ._ },
149148 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp0y, ._ },
149149 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
149150 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
149151 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
149152 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
149153 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
149154 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
146853149155 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
146854149156 } },
146855149157 }, .{
......@@ -147218,8 +149520,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147218149520 .each = .{ .once = &.{
147219149521 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
147220149522 .{ ._, .v_ps, .min, .dst0x, .src0x, .tmp0x, ._ },
147221 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
147222 .{ ._, .v_ss, .min, .dst0x, .src0x, .tmp0x, ._ },
149523 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
149524 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
147223149525 } },
147224149526 }, .{
147225149527 .required_features = .{ .sse, null, null, null },
......@@ -147275,7 +149577,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147275149577 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
147276149578 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
147277149579 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
147278 .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
149580 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
147279149581 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
147280149582 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
147281149583 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
......@@ -147291,7 +149593,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147291149593 .{ .src = .{ .to_sse, .none, .none } },
147292149594 },
147293149595 .extra_temps = .{
147294 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
147295149596 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
147296149597 .unused,
147297149598 .unused,
......@@ -147302,15 +149603,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147302149603 .unused,
147303149604 .unused,
147304149605 .unused,
149606 .unused,
147305149607 },
147306149608 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147307149609 .each = .{ .once = &.{
147308 .{ ._, .v_f128, .extract, .tmp1x, .src0y, .ui(1), ._ },
147309 .{ ._, .v_ps, .min, .dst0x, .src0x, .tmp1x, ._ },
147310 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
147311 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp1x, ._ },
147312 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
147313 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp1x, ._ },
149610 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
149611 .{ ._, .v_ps, .min, .dst0x, .src0x, .tmp0x, ._ },
149612 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
149613 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
149614 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
149615 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
147314149616 } },
147315149617 }, .{
147316149618 .required_features = .{ .avx512f, null, null, null },
......@@ -147690,7 +149992,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147690149992 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
147691149993 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
147692149994 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
147693 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
149995 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
147694149996 .unused,
147695149997 .unused,
147696149998 .unused,
......@@ -147723,7 +150025,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147723150025 .{ .src = .{ .to_mem, .none, .none } },
147724150026 },
147725150027 .extra_temps = .{
147726 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
150028 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
147727150029 .unused,
147728150030 .unused,
147729150031 .unused,
......@@ -147754,7 +150056,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147754150056 },
147755150057 .extra_temps = .{
147756150058 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
147757 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
150059 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
147758150060 .unused,
147759150061 .unused,
147760150062 .unused,
......@@ -147776,7 +150078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147776150078 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
147777150079 .{ ._, .v_pd, .min, .dst0x, .dst0x, .tmp1x, ._ },
147778150080 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
147779 .{ ._, .v_pd, .min, .dst0x, .dst0x, .tmp1x, ._ },
150081 .{ ._, .v_sd, .min, .dst0x, .dst0x, .tmp1x, ._ },
147780150082 } },
147781150083 }, .{
147782150084 .required_features = .{ .sse2, null, null, null },
......@@ -147887,7 +150189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147887150189 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
147888150190 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
147889150191 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
147890 .{ ._, .v_pd, .min, .dst0x, .dst0x, .tmp3x, ._ },
150192 .{ ._, .v_sd, .min, .dst0x, .dst0x, .tmp3x, ._ },
147891150193 } },
147892150194 }, .{
147893150195 .required_features = .{ .sse2, null, null, null },
......@@ -147923,7 +150225,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
147923150225 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
147924150226 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
147925150227 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
147926 .{ ._, ._pd, .min, .dst0x, .tmp3x, ._, ._ },
150228 .{ ._, ._sd, .min, .dst0x, .tmp3x, ._, ._ },
147927150229 } },
147928150230 }, .{
147929150231 .required_features = .{ .x87, .cmov, null, null },
......@@ -148511,7 +150813,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
148511150813 .{ .src = .{ .to_mem, .none, .none } },
148512150814 },
148513150815 .extra_temps = .{
148514 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
148515150816 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
148516150817 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
148517150818 .unused,
......@@ -148522,26 +150823,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
148522150823 .unused,
148523150824 .unused,
148524150825 .unused,
150826 .unused,
148525150827 },
148526150828 .dst_temps = .{ .{ .rc = .sse }, .unused },
148527150829 .each = .{ .once = &.{
148528 .{ ._, .v_ps, .mova, .tmp1y, .memd(.src0y, 32), ._, ._ },
150830 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
148529150831 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
148530 .{ ._, .v_f128, .extract, .tmp2x, .tmp1y, .ui(1), ._ },
150832 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
150833 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
148531150834 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
148532 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
148533 .{ ._, .v_ps, .max, .tmp1y, .tmp1y, .tmp2y, ._ },
148534 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
150835 .{ ._, .v_ps, .max, .tmp0y, .tmp0y, .tmp1y, ._ },
150836 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
148535150837 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
148536 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
148537 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp2y, ._ },
150838 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
148538150839 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp1y, ._ },
148539 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
148540 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp1x, ._ },
148541 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
148542 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp1x, ._ },
148543 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
148544 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp1x, ._ },
150840 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp0y, ._ },
150841 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
150842 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
150843 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
150844 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
150845 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
150846 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
148545150847 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
148546150848 } },
148547150849 }, .{
......@@ -148910,8 +151212,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
148910151212 .each = .{ .once = &.{
148911151213 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
148912151214 .{ ._, .v_ps, .max, .dst0x, .src0x, .tmp0x, ._ },
148913 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
148914 .{ ._, .v_ss, .max, .dst0x, .src0x, .tmp0x, ._ },
151215 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151216 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
148915151217 } },
148916151218 }, .{
148917151219 .required_features = .{ .sse, null, null, null },
......@@ -148967,7 +151269,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
148967151269 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148968151270 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
148969151271 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
148970 .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
151272 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
148971151273 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
148972151274 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
148973151275 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
......@@ -148983,7 +151285,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
148983151285 .{ .src = .{ .to_sse, .none, .none } },
148984151286 },
148985151287 .extra_temps = .{
148986 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
148987151288 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
148988151289 .unused,
148989151290 .unused,
......@@ -148994,15 +151295,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
148994151295 .unused,
148995151296 .unused,
148996151297 .unused,
151298 .unused,
148997151299 },
148998151300 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148999151301 .each = .{ .once = &.{
149000 .{ ._, .v_f128, .extract, .tmp1x, .src0y, .ui(1), ._ },
149001 .{ ._, .v_ps, .max, .dst0x, .src0x, .tmp1x, ._ },
149002 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
149003 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp1x, ._ },
149004 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
149005 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp1x, ._ },
151302 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
151303 .{ ._, .v_ps, .max, .dst0x, .src0x, .tmp0x, ._ },
151304 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
151305 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
151306 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151307 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
149006151308 } },
149007151309 }, .{
149008151310 .required_features = .{ .avx512f, null, null, null },
......@@ -149382,7 +151684,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
149382151684 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
149383151685 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
149384151686 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
149385 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151687 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
149386151688 .unused,
149387151689 .unused,
149388151690 .unused,
......@@ -149415,7 +151717,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
149415151717 .{ .src = .{ .to_mem, .none, .none } },
149416151718 },
149417151719 .extra_temps = .{
149418 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151720 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
149419151721 .unused,
149420151722 .unused,
149421151723 .unused,
......@@ -149446,7 +151748,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
149446151748 },
149447151749 .extra_temps = .{
149448151750 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149449 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151751 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
149450151752 .unused,
149451151753 .unused,
149452151754 .unused,
......@@ -149468,7 +151770,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
149468151770 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
149469151771 .{ ._, .v_pd, .max, .dst0x, .dst0x, .tmp1x, ._ },
149470151772 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
149471 .{ ._, .v_pd, .max, .dst0x, .dst0x, .tmp1x, ._ },
151773 .{ ._, .v_sd, .max, .dst0x, .dst0x, .tmp1x, ._ },
149472151774 } },
149473151775 }, .{
149474151776 .required_features = .{ .sse2, null, null, null },
......@@ -149579,7 +151881,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
149579151881 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
149580151882 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149581151883 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
149582 .{ ._, .v_pd, .max, .dst0x, .dst0x, .tmp3x, ._ },
151884 .{ ._, .v_sd, .max, .dst0x, .dst0x, .tmp3x, ._ },
149583151885 } },
149584151886 }, .{
149585151887 .required_features = .{ .sse2, null, null, null },
......@@ -149615,7 +151917,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
149615151917 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149616151918 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
149617151919 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
149618 .{ ._, ._pd, .max, .dst0x, .tmp3x, ._, ._ },
151920 .{ ._, ._sd, .max, .dst0x, .tmp3x, ._, ._ },
149619151921 } },
149620151922 }, .{
149621151923 .required_features = .{ .x87, .cmov, null, null },
......@@ -150381,7 +152683,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
150381152683 .{ .src = .{ .to_mem, .none, .none } },
150382152684 },
150383152685 .extra_temps = .{
150384 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150385152686 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
150386152687 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
150387152688 .unused,
......@@ -150392,26 +152693,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
150392152693 .unused,
150393152694 .unused,
150394152695 .unused,
152696 .unused,
150395152697 },
150396152698 .dst_temps = .{ .{ .rc = .sse }, .unused },
150397152699 .each = .{ .once = &.{
150398 .{ ._, .v_ps, .mova, .tmp1y, .memd(.src0y, 32), ._, ._ },
152700 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
150399152701 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
150400 .{ ._, .v_f128, .extract, .tmp2x, .tmp1y, .ui(1), ._ },
152702 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
152703 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
150401152704 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
150402 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
150403 .{ ._, .v_ps, .add, .tmp1y, .tmp1y, .tmp2y, ._ },
150404 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
152705 .{ ._, .v_ps, .add, .tmp0y, .tmp0y, .tmp1y, ._ },
152706 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
150405152707 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
150406 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
150407 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
152708 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
150408152709 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp1y, ._ },
150409 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
150410 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
150411 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
150412 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
150413 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
150414 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
152710 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ },
152711 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
152712 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
152713 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
152714 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
152715 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
152716 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
150415152717 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
150416152718 } },
150417152719 }, .{
......@@ -150938,8 +153240,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
150938153240 .each = .{ .once = &.{
150939153241 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
150940153242 .{ ._, .v_ps, .add, .dst0x, .src0x, .tmp0x, ._ },
150941 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
150942 .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ },
153243 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
153244 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
150943153245 } },
150944153246 }, .{
150945153247 .required_features = .{ .sse3, .fast_hops, null, null },
......@@ -151050,7 +153352,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
151050153352 .{ .src = .{ .to_sse, .none, .none } },
151051153353 },
151052153354 .extra_temps = .{
151053 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
151054153355 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151055153356 .unused,
151056153357 .unused,
......@@ -151061,13 +153362,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
151061153362 .unused,
151062153363 .unused,
151063153364 .unused,
153365 .unused,
151064153366 },
151065153367 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151066153368 .each = .{ .once = &.{
151067153369 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
151068153370 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
151069 .{ ._, .v_f128, .extract, .tmp1x, .src0y, .ui(1), ._ },
151070 .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp1x, ._ },
153371 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
153372 .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ },
151071153373 } },
151072153374 }, .{
151073153375 .required_features = .{ .avx, null, null, null },
......@@ -151077,7 +153379,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
151077153379 .{ .src = .{ .to_sse, .none, .none } },
151078153380 },
151079153381 .extra_temps = .{
151080 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
151081153382 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151082153383 .unused,
151083153384 .unused,
......@@ -151088,15 +153389,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
151088153389 .unused,
151089153390 .unused,
151090153391 .unused,
153392 .unused,
151091153393 },
151092153394 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151093153395 .each = .{ .once = &.{
151094 .{ ._, .v_f128, .extract, .tmp1x, .src0y, .ui(1), ._ },
151095 .{ ._, .v_ps, .add, .dst0x, .src0x, .tmp1x, ._ },
151096 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
151097 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
151098 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
151099 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
153396 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
153397 .{ ._, .v_ps, .add, .dst0x, .src0x, .tmp0x, ._ },
153398 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
153399 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
153400 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
153401 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
151100153402 } },
151101153403 }, .{
151102153404 .required_features = .{ .avx512f, null, null, null },
......@@ -151787,7 +154089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
151787154089 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
151788154090 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ },
151789154091 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
151790 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ },
154092 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp1x, ._ },
151791154093 } },
151792154094 }, .{
151793154095 .required_features = .{ .sse3, .fast_hops, null, null },
......@@ -151957,7 +154259,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
151957154259 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
151958154260 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
151959154261 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
151960 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ },
154262 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ },
151961154263 } },
151962154264 }, .{
151963154265 .required_features = .{ .sse3, .fast_hops, null, null },
......@@ -152023,7 +154325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
152023154325 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152024154326 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
152025154327 .{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ },
152026 .{ ._, ._pd, .add, .dst0x, .tmp2x, ._, ._ },
154328 .{ ._, ._sd, .add, .dst0x, .tmp2x, ._, ._ },
152027154329 } },
152028154330 }, .{
152029154331 .required_features = .{ .x87, null, null, null },
......@@ -152462,7 +154764,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
152462154764 .{ .src = .{ .to_mem, .none, .none } },
152463154765 },
152464154766 .extra_temps = .{
152465 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
152466154767 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
152467154768 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
152468154769 .unused,
......@@ -152473,26 +154774,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
152473154774 .unused,
152474154775 .unused,
152475154776 .unused,
154777 .unused,
152476154778 },
152477154779 .dst_temps = .{ .{ .rc = .sse }, .unused },
152478154780 .each = .{ .once = &.{
152479 .{ ._, .v_ps, .mova, .tmp1y, .memd(.src0y, 32), ._, ._ },
154781 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
152480154782 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
152481 .{ ._, .v_f128, .extract, .tmp2x, .tmp1y, .ui(1), ._ },
154783 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
154784 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
152482154785 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
152483 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
152484 .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .tmp2y, ._ },
152485 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
154786 .{ ._, .v_ps, .mul, .tmp0y, .tmp0y, .tmp1y, ._ },
154787 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
152486154788 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
152487 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
152488 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp2y, ._ },
154789 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
152489154790 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp1y, ._ },
152490 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
152491 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
152492 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
152493 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
152494 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
152495 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
154791 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ },
154792 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
154793 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
154794 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
154795 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
154796 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
154797 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
152496154798 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
152497154799 } },
152498154800 }, .{
......@@ -152861,8 +155163,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
152861155163 .each = .{ .once = &.{
152862155164 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
152863155165 .{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp0x, ._ },
152864 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
152865 .{ ._, .v_ss, .mul, .dst0x, .src0x, .tmp0x, ._ },
155166 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
155167 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
152866155168 } },
152867155169 }, .{
152868155170 .required_features = .{ .sse, null, null, null },
......@@ -152918,7 +155220,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
152918155220 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152919155221 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
152920155222 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152921 .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
155223 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
152922155224 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
152923155225 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
152924155226 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
......@@ -152934,7 +155236,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
152934155236 .{ .src = .{ .to_sse, .none, .none } },
152935155237 },
152936155238 .extra_temps = .{
152937 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
152938155239 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
152939155240 .unused,
152940155241 .unused,
......@@ -152945,15 +155246,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
152945155246 .unused,
152946155247 .unused,
152947155248 .unused,
155249 .unused,
152948155250 },
152949155251 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152950155252 .each = .{ .once = &.{
152951 .{ ._, .v_f128, .extract, .tmp1x, .src0y, .ui(1), ._ },
152952 .{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp1x, ._ },
152953 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
152954 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
152955 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
152956 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
155253 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
155254 .{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp0x, ._ },
155255 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
155256 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
155257 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
155258 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
152957155259 } },
152958155260 }, .{
152959155261 .required_features = .{ .avx512f, null, null, null },
......@@ -153419,7 +155721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
153419155721 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
153420155722 .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp1x, ._ },
153421155723 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
153422 .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp1x, ._ },
155724 .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp1x, ._ },
153423155725 } },
153424155726 }, .{
153425155727 .required_features = .{ .sse2, null, null, null },
......@@ -153530,7 +155832,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
153530155832 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
153531155833 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153532155834 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
153533 .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ },
155835 .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp3x, ._ },
153534155836 } },
153535155837 }, .{
153536155838 .required_features = .{ .sse2, null, null, null },
......@@ -153566,7 +155868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
153566155868 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153567155869 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
153568155870 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
153569 .{ ._, ._pd, .mul, .dst0x, .tmp3x, ._, ._ },
155871 .{ ._, ._sd, .mul, .dst0x, .tmp3x, ._, ._ },
153570155872 } },
153571155873 }, .{
153572155874 .required_features = .{ .x87, null, null, null },
test/behavior/x86_64/unary.zig+1
......@@ -5100,6 +5100,7 @@ inline fn reduceMin(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child
51005100test reduceMin {
51015101 const test_reduce_min = unary(reduceMin, .{});
51025102 try test_reduce_min.testIntVectors();
5103 try test_reduce_min.testFloatVectors();
51035104}
51045105
51055106inline fn reduceMax(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {