| ... | @@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2389 | } | 2389 | } |
| 2390 | | 2390 | |
| 2391 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | 2391 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2392 | @setEvalBranchQuota(23_600); | 2392 | @setEvalBranchQuota(23_800); |
| 2393 | const pt = cg.pt; | 2393 | const pt = cg.pt; |
| 2394 | const zcu = pt.zcu; | 2394 | const zcu = pt.zcu; |
| 2395 | const ip = &zcu.intern_pool; | 2395 | const ip = &zcu.intern_pool; |
| ... | @@ -68441,7 +68441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68441,7 +68441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68441 | .{ .src = .{ .to_sse, .none, .none } }, | 68441 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68442 | }, | 68442 | }, |
| 68443 | .extra_temps = .{ | 68443 | .extra_temps = .{ |
| 68444 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 68444 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68445 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 68445 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68446 | .unused, | 68446 | .unused, |
| 68447 | .unused, | 68447 | .unused, |
| ... | @@ -68465,7 +68465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68465,7 +68465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68465 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 68465 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68466 | }, | 68466 | }, |
| 68467 | .extra_temps = .{ | 68467 | .extra_temps = .{ |
| 68468 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 68468 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68469 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 68469 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68470 | .unused, | 68470 | .unused, |
| 68471 | .unused, | 68471 | .unused, |
| ... | @@ -68489,7 +68489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68489,7 +68489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68489 | .{ .src = .{ .to_sse, .none, .none } }, | 68489 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68490 | }, | 68490 | }, |
| 68491 | .extra_temps = .{ | 68491 | .extra_temps = .{ |
| 68492 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68492 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68493 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 68493 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68494 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68494 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68495 | .unused, | 68495 | .unused, |
| ... | @@ -68517,7 +68517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68517,7 +68517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68517 | .{ .src = .{ .to_sse, .none, .none } }, | 68517 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68518 | }, | 68518 | }, |
| 68519 | .extra_temps = .{ | 68519 | .extra_temps = .{ |
| 68520 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68520 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68521 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 68521 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68522 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68522 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68523 | .unused, | 68523 | .unused, |
| ... | @@ -68546,7 +68546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68546,7 +68546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68546 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 68546 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68547 | }, | 68547 | }, |
| 68548 | .extra_temps = .{ | 68548 | .extra_temps = .{ |
| 68549 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68549 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68550 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68550 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68551 | .unused, | 68551 | .unused, |
| 68552 | .unused, | 68552 | .unused, |
| ... | @@ -68575,7 +68575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68575,7 +68575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68575 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 68575 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68576 | }, | 68576 | }, |
| 68577 | .extra_temps = .{ | 68577 | .extra_temps = .{ |
| 68578 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68578 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68579 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68579 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68580 | .unused, | 68580 | .unused, |
| 68581 | .unused, | 68581 | .unused, |
| ... | @@ -68642,7 +68642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68642,7 +68642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68642 | .{ .src = .{ .to_sse, .none, .none } }, | 68642 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68643 | }, | 68643 | }, |
| 68644 | .extra_temps = .{ | 68644 | .extra_temps = .{ |
| 68645 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 68645 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68646 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 68646 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68647 | .unused, | 68647 | .unused, |
| 68648 | .unused, | 68648 | .unused, |
| ... | @@ -68668,7 +68668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68668,7 +68668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68668 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 68668 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68669 | }, | 68669 | }, |
| 68670 | .extra_temps = .{ | 68670 | .extra_temps = .{ |
| 68671 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 68671 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68672 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 68672 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68673 | .unused, | 68673 | .unused, |
| 68674 | .unused, | 68674 | .unused, |
| ... | @@ -68694,7 +68694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68694,7 +68694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68694 | .{ .src = .{ .to_sse, .none, .none } }, | 68694 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68695 | }, | 68695 | }, |
| 68696 | .extra_temps = .{ | 68696 | .extra_temps = .{ |
| 68697 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68697 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68698 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 68698 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68699 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68699 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68700 | .unused, | 68700 | .unused, |
| ... | @@ -68724,7 +68724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68724,7 +68724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68724 | .{ .src = .{ .to_sse, .none, .none } }, | 68724 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68725 | }, | 68725 | }, |
| 68726 | .extra_temps = .{ | 68726 | .extra_temps = .{ |
| 68727 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68727 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68728 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 68728 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68729 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68729 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68730 | .unused, | 68730 | .unused, |
| ... | @@ -68755,7 +68755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68755,7 +68755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68755 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 68755 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68756 | }, | 68756 | }, |
| 68757 | .extra_temps = .{ | 68757 | .extra_temps = .{ |
| 68758 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68758 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68759 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68759 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68760 | .unused, | 68760 | .unused, |
| 68761 | .unused, | 68761 | .unused, |
| ... | @@ -68786,7 +68786,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68786,7 +68786,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68786 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 68786 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68787 | }, | 68787 | }, |
| 68788 | .extra_temps = .{ | 68788 | .extra_temps = .{ |
| 68789 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68789 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68790 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68790 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68791 | .unused, | 68791 | .unused, |
| 68792 | .unused, | 68792 | .unused, |
| ... | @@ -68856,7 +68856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68856,7 +68856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68856 | .{ .src = .{ .to_sse, .none, .none } }, | 68856 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68857 | }, | 68857 | }, |
| 68858 | .extra_temps = .{ | 68858 | .extra_temps = .{ |
| 68859 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 68859 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68860 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 68860 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68861 | .unused, | 68861 | .unused, |
| 68862 | .unused, | 68862 | .unused, |
| ... | @@ -68882,7 +68882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68882,7 +68882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68882 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 68882 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68883 | }, | 68883 | }, |
| 68884 | .extra_temps = .{ | 68884 | .extra_temps = .{ |
| 68885 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 68885 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68886 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 68886 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68887 | .unused, | 68887 | .unused, |
| 68888 | .unused, | 68888 | .unused, |
| ... | @@ -68908,7 +68908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68908,7 +68908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68908 | .{ .src = .{ .to_sse, .none, .none } }, | 68908 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68909 | }, | 68909 | }, |
| 68910 | .extra_temps = .{ | 68910 | .extra_temps = .{ |
| 68911 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68911 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68912 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 68912 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68913 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68913 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68914 | .unused, | 68914 | .unused, |
| ... | @@ -68938,7 +68938,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68938,7 +68938,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68938 | .{ .src = .{ .to_sse, .none, .none } }, | 68938 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68939 | }, | 68939 | }, |
| 68940 | .extra_temps = .{ | 68940 | .extra_temps = .{ |
| 68941 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68941 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68942 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 68942 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68943 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68943 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68944 | .unused, | 68944 | .unused, |
| ... | @@ -68969,7 +68969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -68969,7 +68969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68969 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 68969 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68970 | }, | 68970 | }, |
| 68971 | .extra_temps = .{ | 68971 | .extra_temps = .{ |
| 68972 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 68972 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68973 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 68973 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68974 | .unused, | 68974 | .unused, |
| 68975 | .unused, | 68975 | .unused, |
| ... | @@ -69000,7 +69000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69000,7 +69000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69000 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69000 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69001 | }, | 69001 | }, |
| 69002 | .extra_temps = .{ | 69002 | .extra_temps = .{ |
| 69003 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 69003 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69004 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 69004 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69005 | .unused, | 69005 | .unused, |
| 69006 | .unused, | 69006 | .unused, |
| ... | @@ -69070,7 +69070,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69070,7 +69070,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69070 | .{ .src = .{ .to_sse, .none, .none } }, | 69070 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69071 | }, | 69071 | }, |
| 69072 | .extra_temps = .{ | 69072 | .extra_temps = .{ |
| 69073 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69073 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69074 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, | 69074 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69075 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69075 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69076 | .unused, | 69076 | .unused, |
| ... | @@ -69096,7 +69096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69096,7 +69096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69096 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69096 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69097 | }, | 69097 | }, |
| 69098 | .extra_temps = .{ | 69098 | .extra_temps = .{ |
| 69099 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69099 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69100 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, | 69100 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69101 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69101 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69102 | .unused, | 69102 | .unused, |
| ... | @@ -69122,7 +69122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69122,7 +69122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69122 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69122 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69123 | }, | 69123 | }, |
| 69124 | .extra_temps = .{ | 69124 | .extra_temps = .{ |
| 69125 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69125 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69126 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69126 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69127 | .unused, | 69127 | .unused, |
| 69128 | .unused, | 69128 | .unused, |
| ... | @@ -69149,7 +69149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69149,7 +69149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69149 | }, | 69149 | }, |
| 69150 | .extra_temps = .{ | 69150 | .extra_temps = .{ |
| 69151 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, | 69151 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, |
| 69152 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 69152 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69153 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 69153 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69154 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 69154 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69155 | .unused, | 69155 | .unused, |
| ... | @@ -69178,7 +69178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69178,7 +69178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69178 | }, | 69178 | }, |
| 69179 | .extra_temps = .{ | 69179 | .extra_temps = .{ |
| 69180 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, | 69180 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, |
| 69181 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 69181 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69182 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 69182 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69183 | .unused, | 69183 | .unused, |
| 69184 | .unused, | 69184 | .unused, |
| ... | @@ -69247,7 +69247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69247,7 +69247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69247 | .{ .src = .{ .to_sse, .none, .none } }, | 69247 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69248 | }, | 69248 | }, |
| 69249 | .extra_temps = .{ | 69249 | .extra_temps = .{ |
| 69250 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69250 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69251 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, | 69251 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69252 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69252 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69253 | .unused, | 69253 | .unused, |
| ... | @@ -69274,7 +69274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69274,7 +69274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69274 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69274 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69275 | }, | 69275 | }, |
| 69276 | .extra_temps = .{ | 69276 | .extra_temps = .{ |
| 69277 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69277 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69278 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, | 69278 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69279 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69279 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69280 | .unused, | 69280 | .unused, |
| ... | @@ -69301,7 +69301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69301,7 +69301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69301 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69301 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69302 | }, | 69302 | }, |
| 69303 | .extra_temps = .{ | 69303 | .extra_temps = .{ |
| 69304 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69304 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69305 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69305 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69306 | .unused, | 69306 | .unused, |
| 69307 | .unused, | 69307 | .unused, |
| ... | @@ -69329,7 +69329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69329,7 +69329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69329 | }, | 69329 | }, |
| 69330 | .extra_temps = .{ | 69330 | .extra_temps = .{ |
| 69331 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, | 69331 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, |
| 69332 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 69332 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69333 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 69333 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69334 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 69334 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69335 | .unused, | 69335 | .unused, |
| ... | @@ -69360,7 +69360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69360,7 +69360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69360 | }, | 69360 | }, |
| 69361 | .extra_temps = .{ | 69361 | .extra_temps = .{ |
| 69362 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, | 69362 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, |
| 69363 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 69363 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69364 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 69364 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69365 | .unused, | 69365 | .unused, |
| 69366 | .unused, | 69366 | .unused, |
| ... | @@ -69432,7 +69432,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69432,7 +69432,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69432 | .{ .src = .{ .to_sse, .none, .none } }, | 69432 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69433 | }, | 69433 | }, |
| 69434 | .extra_temps = .{ | 69434 | .extra_temps = .{ |
| 69435 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69435 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69436 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, | 69436 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69437 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69437 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69438 | .unused, | 69438 | .unused, |
| ... | @@ -69459,7 +69459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69459,7 +69459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69459 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69459 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69460 | }, | 69460 | }, |
| 69461 | .extra_temps = .{ | 69461 | .extra_temps = .{ |
| 69462 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69462 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69463 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, | 69463 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69464 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69464 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69465 | .unused, | 69465 | .unused, |
| ... | @@ -69486,7 +69486,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69486,7 +69486,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69486 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69486 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69487 | }, | 69487 | }, |
| 69488 | .extra_temps = .{ | 69488 | .extra_temps = .{ |
| 69489 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69489 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69490 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69490 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69491 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 69491 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69492 | .unused, | 69492 | .unused, |
| ... | @@ -69515,7 +69515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69515,7 +69515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69515 | }, | 69515 | }, |
| 69516 | .extra_temps = .{ | 69516 | .extra_temps = .{ |
| 69517 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, | 69517 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, |
| 69518 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 69518 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69519 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 69519 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69520 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 69520 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69521 | .unused, | 69521 | .unused, |
| ... | @@ -69546,7 +69546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69546,7 +69546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69546 | }, | 69546 | }, |
| 69547 | .extra_temps = .{ | 69547 | .extra_temps = .{ |
| 69548 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, | 69548 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, |
| 69549 | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, | 69549 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69550 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 69550 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69551 | .unused, | 69551 | .unused, |
| 69552 | .unused, | 69552 | .unused, |
| ... | @@ -69618,7 +69618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69618,7 +69618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69618 | .{ .src = .{ .to_sse, .none, .none } }, | 69618 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69619 | }, | 69619 | }, |
| 69620 | .extra_temps = .{ | 69620 | .extra_temps = .{ |
| 69621 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69621 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69622 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, | 69622 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69623 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69623 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69624 | .unused, | 69624 | .unused, |
| ... | @@ -69644,7 +69644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69644,7 +69644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69644 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69644 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69645 | }, | 69645 | }, |
| 69646 | .extra_temps = .{ | 69646 | .extra_temps = .{ |
| 69647 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69647 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69648 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, | 69648 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69650 | .unused, | 69650 | .unused, |
| ... | @@ -69670,7 +69670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69670,7 +69670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69670 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69670 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69671 | }, | 69671 | }, |
| 69672 | .extra_temps = .{ | 69672 | .extra_temps = .{ |
| 69673 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69673 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69674 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69674 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69675 | .unused, | 69675 | .unused, |
| 69676 | .unused, | 69676 | .unused, |
| ... | @@ -69698,7 +69698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69698,7 +69698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69698 | }, | 69698 | }, |
| 69699 | .extra_temps = .{ | 69699 | .extra_temps = .{ |
| 69700 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, | 69700 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, |
| 69701 | .{ .type = .vector_32_u8, .kind = .reverse_bits_mem }, | 69701 | .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69702 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 69702 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69703 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, | 69703 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 69704 | .unused, | 69704 | .unused, |
| ... | @@ -69768,7 +69768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69768,7 +69768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69768 | .{ .src = .{ .to_sse, .none, .none } }, | 69768 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69769 | }, | 69769 | }, |
| 69770 | .extra_temps = .{ | 69770 | .extra_temps = .{ |
| 69771 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69771 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69772 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, | 69772 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69773 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69773 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69774 | .unused, | 69774 | .unused, |
| ... | @@ -69795,7 +69795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69795,7 +69795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69795 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69795 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69796 | }, | 69796 | }, |
| 69797 | .extra_temps = .{ | 69797 | .extra_temps = .{ |
| 69798 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69798 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69799 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, | 69799 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69800 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69800 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69801 | .unused, | 69801 | .unused, |
| ... | @@ -69822,7 +69822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69822,7 +69822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69822 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69822 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69823 | }, | 69823 | }, |
| 69824 | .extra_temps = .{ | 69824 | .extra_temps = .{ |
| 69825 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69825 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69826 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69826 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69827 | .unused, | 69827 | .unused, |
| 69828 | .unused, | 69828 | .unused, |
| ... | @@ -69851,7 +69851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69851,7 +69851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69851 | }, | 69851 | }, |
| 69852 | .extra_temps = .{ | 69852 | .extra_temps = .{ |
| 69853 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, | 69853 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, |
| 69854 | .{ .type = .vector_32_u8, .kind = .reverse_bits_mem }, | 69854 | .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69855 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 69855 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69856 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, | 69856 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 69857 | .unused, | 69857 | .unused, |
| ... | @@ -69924,7 +69924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69924,7 +69924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69924 | .{ .src = .{ .to_sse, .none, .none } }, | 69924 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69925 | }, | 69925 | }, |
| 69926 | .extra_temps = .{ | 69926 | .extra_temps = .{ |
| 69927 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69927 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69928 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, | 69928 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69929 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69929 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69930 | .unused, | 69930 | .unused, |
| ... | @@ -69951,7 +69951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69951,7 +69951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69951 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69951 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69952 | }, | 69952 | }, |
| 69953 | .extra_temps = .{ | 69953 | .extra_temps = .{ |
| 69954 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69954 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69955 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, | 69955 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69956 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69956 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69957 | .unused, | 69957 | .unused, |
| ... | @@ -69978,7 +69978,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -69978,7 +69978,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69978 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 69978 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69979 | }, | 69979 | }, |
| 69980 | .extra_temps = .{ | 69980 | .extra_temps = .{ |
| 69981 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 69981 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69982 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 69982 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69983 | .unused, | 69983 | .unused, |
| 69984 | .unused, | 69984 | .unused, |
| ... | @@ -70007,7 +70007,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70007,7 +70007,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70007 | }, | 70007 | }, |
| 70008 | .extra_temps = .{ | 70008 | .extra_temps = .{ |
| 70009 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, | 70009 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, |
| 70010 | .{ .type = .vector_32_u8, .kind = .reverse_bits_mem }, | 70010 | .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .reverse } }, |
| 70011 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 70011 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 70012 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, | 70012 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 70013 | .unused, | 70013 | .unused, |
| ... | @@ -70080,7 +70080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70080,7 +70080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70080 | .{ .src = .{ .to_sse, .none, .none } }, | 70080 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70081 | }, | 70081 | }, |
| 70082 | .extra_temps = .{ | 70082 | .extra_temps = .{ |
| 70083 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70083 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70084 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, | 70084 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, |
| 70085 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70085 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70086 | .unused, | 70086 | .unused, |
| ... | @@ -70106,7 +70106,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70106,7 +70106,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70106 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 70106 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70107 | }, | 70107 | }, |
| 70108 | .extra_temps = .{ | 70108 | .extra_temps = .{ |
| 70109 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70109 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70110 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, | 70110 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, |
| 70111 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70111 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70112 | .unused, | 70112 | .unused, |
| ... | @@ -70132,7 +70132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70132,7 +70132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70132 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 70132 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70133 | }, | 70133 | }, |
| 70134 | .extra_temps = .{ | 70134 | .extra_temps = .{ |
| 70135 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70135 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70136 | .unused, | 70136 | .unused, |
| 70137 | .unused, | 70137 | .unused, |
| 70138 | .unused, | 70138 | .unused, |
| ... | @@ -70203,7 +70203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70203,7 +70203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70203 | .{ .src = .{ .to_sse, .none, .none } }, | 70203 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70204 | }, | 70204 | }, |
| 70205 | .extra_temps = .{ | 70205 | .extra_temps = .{ |
| 70206 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70206 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70207 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 70207 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 70208 | .unused, | 70208 | .unused, |
| 70209 | .unused, | 70209 | .unused, |
| ... | @@ -70231,7 +70231,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70231,7 +70231,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70231 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 70231 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70232 | }, | 70232 | }, |
| 70233 | .extra_temps = .{ | 70233 | .extra_temps = .{ |
| 70234 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70234 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70235 | .unused, | 70235 | .unused, |
| 70236 | .unused, | 70236 | .unused, |
| 70237 | .unused, | 70237 | .unused, |
| ... | @@ -70305,7 +70305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70305,7 +70305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70305 | .{ .src = .{ .to_sse, .none, .none } }, | 70305 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70306 | }, | 70306 | }, |
| 70307 | .extra_temps = .{ | 70307 | .extra_temps = .{ |
| 70308 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70308 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70309 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, | 70309 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, |
| 70310 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70310 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70311 | .unused, | 70311 | .unused, |
| ... | @@ -70332,7 +70332,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70332,7 +70332,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70332 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 70332 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70333 | }, | 70333 | }, |
| 70334 | .extra_temps = .{ | 70334 | .extra_temps = .{ |
| 70335 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70335 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70336 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, | 70336 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, |
| 70337 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70337 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70338 | .unused, | 70338 | .unused, |
| ... | @@ -70359,7 +70359,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70359,7 +70359,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70359 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 70359 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70360 | }, | 70360 | }, |
| 70361 | .extra_temps = .{ | 70361 | .extra_temps = .{ |
| 70362 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70362 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70363 | .unused, | 70363 | .unused, |
| 70364 | .unused, | 70364 | .unused, |
| 70365 | .unused, | 70365 | .unused, |
| ... | @@ -70433,7 +70433,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70433,7 +70433,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70433 | .{ .src = .{ .to_sse, .none, .none } }, | 70433 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70434 | }, | 70434 | }, |
| 70435 | .extra_temps = .{ | 70435 | .extra_temps = .{ |
| 70436 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70436 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70437 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, | 70437 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70438 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70438 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70439 | .unused, | 70439 | .unused, |
| ... | @@ -70459,7 +70459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70459,7 +70459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70459 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 70459 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70460 | }, | 70460 | }, |
| 70461 | .extra_temps = .{ | 70461 | .extra_temps = .{ |
| 70462 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70462 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70463 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, | 70463 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70464 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70464 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70465 | .unused, | 70465 | .unused, |
| ... | @@ -70485,7 +70485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70485,7 +70485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70485 | .{ .src = .{ .to_sse, .none, .none } }, | 70485 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70486 | }, | 70486 | }, |
| 70487 | .extra_temps = .{ | 70487 | .extra_temps = .{ |
| 70488 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70488 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70489 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, | 70489 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70490 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70490 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70491 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 70491 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| ... | @@ -70518,7 +70518,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70518,7 +70518,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70518 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 70518 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70519 | }, | 70519 | }, |
| 70520 | .extra_temps = .{ | 70520 | .extra_temps = .{ |
| 70521 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70521 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70522 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, | 70522 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70523 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70523 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70524 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 70524 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -70551,7 +70551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70551,7 +70551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70551 | .{ .src = .{ .to_sse, .none, .none } }, | 70551 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70552 | }, | 70552 | }, |
| 70553 | .extra_temps = .{ | 70553 | .extra_temps = .{ |
| 70554 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70554 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70555 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, | 70555 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70556 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70556 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70557 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 70557 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| ... | @@ -70584,7 +70584,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70584,7 +70584,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70584 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 70584 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70585 | }, | 70585 | }, |
| 70586 | .extra_temps = .{ | 70586 | .extra_temps = .{ |
| 70587 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70587 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70588 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, | 70588 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70589 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70589 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70590 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 70590 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -70617,7 +70617,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70617,7 +70617,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70617 | .{ .src = .{ .to_sse, .none, .none } }, | 70617 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70618 | }, | 70618 | }, |
| 70619 | .extra_temps = .{ | 70619 | .extra_temps = .{ |
| 70620 | .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, | 70620 | .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .forward } }, |
| 70621 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, | 70621 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, |
| 70622 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70622 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70623 | .unused, | 70623 | .unused, |
| ... | @@ -70644,7 +70644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70644,7 +70644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70644 | .{ .src = .{ .to_sse, .none, .none } }, | 70644 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70645 | }, | 70645 | }, |
| 70646 | .extra_temps = .{ | 70646 | .extra_temps = .{ |
| 70647 | .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, | 70647 | .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .forward } }, |
| 70648 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, | 70648 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70650 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 70650 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | @@ -70676,7 +70676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70676,7 +70676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70676 | .extra_temps = .{ | 70676 | .extra_temps = .{ |
| 70677 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70677 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70678 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 70678 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 70679 | .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, | 70679 | .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .forward } }, |
| 70680 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, | 70680 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, |
| 70681 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, | 70681 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 70682 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, | 70682 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| ... | @@ -70712,7 +70712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -70712,7 +70712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70712 | .extra_temps = .{ | 70712 | .extra_temps = .{ |
| 70713 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 70713 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70714 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 70714 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 70715 | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, | 70715 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70716 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, | 70716 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70717 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 70717 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 70718 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 70718 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | @@ -129477,8 +129477,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -129477,8 +129477,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 129477 | switch (reduce.operation) { | 129477 | switch (reduce.operation) { |
| 129478 | .And, .Or, .Xor => unreachable, | 129478 | .And, .Or, .Xor => unreachable, |
| 129479 | .Min, .Max => break :fallback try cg.airReduce(inst), | 129479 | .Min, .Max => break :fallback try cg.airReduce(inst), |
| 129480 | .Add => {}, | 129480 | .Add, .Mul => {}, |
| 129481 | .Mul => break :fallback try cg.airReduce(inst), | | |
| 129482 | } | 129481 | } |
| 129483 | var ops = try cg.tempsFromOperands(inst, .{reduce.operand}); | 129482 | var ops = try cg.tempsFromOperands(inst, .{reduce.operand}); |
| 129484 | var res: [1]Temp = undefined; | 129483 | var res: [1]Temp = undefined; |
| ... | @@ -129894,7 +129893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -129894,7 +129893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 129894 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 129893 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129895 | } }, | 129894 | } }, |
| 129896 | }, .{ | 129895 | }, .{ |
| 129897 | .required_features = .{ .avx512f, .f16c, null, null }, | 129896 | .required_features = .{ .avx512f, null, null, null }, |
| 129898 | .dst_constraints = .{ .{ .float = .word }, .any }, | 129897 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129899 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, | 129898 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 129900 | .patterns = &.{ | 129899 | .patterns = &.{ |
| ... | @@ -129938,7 +129937,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -129938,7 +129937,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 129938 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 129937 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129939 | } }, | 129938 | } }, |
| 129940 | }, .{ | 129939 | }, .{ |
| 129941 | .required_features = .{ .avx512f, .f16c, null, null }, | 129940 | .required_features = .{ .avx512f, null, null, null }, |
| 129942 | .dst_constraints = .{ .{ .float = .word }, .any }, | 129941 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129943 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, | 129942 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 129944 | .patterns = &.{ | 129943 | .patterns = &.{ |
| ... | @@ -130051,7 +130050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -130051,7 +130050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 130051 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 130050 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 130052 | } }, | 130051 | } }, |
| 130053 | }, .{ | 130052 | }, .{ |
| 130054 | .required_features = .{ .avx512f, .f16c, null, null }, | 130053 | .required_features = .{ .avx512f, null, null, null }, |
| 130055 | .dst_constraints = .{ .{ .float = .word }, .any }, | 130054 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130056 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, | 130055 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 130057 | .patterns = &.{ | 130056 | .patterns = &.{ |
| ... | @@ -130685,10 +130684,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -130685,10 +130684,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 130685 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 130684 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130686 | .each = .{ .once = &.{ | 130685 | .each = .{ .once = &.{ |
| 130687 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 130686 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130688 | .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ }, | 130687 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 130689 | .{ ._, .v_ps, .mova, .tmp2y, .memd(.src0y, 32), ._, ._ }, | 130688 | .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| 130690 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ }, | 130689 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ }, |
| 130691 | .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ }, | 130690 | .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ }, |
| 130692 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, | 130691 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130693 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, | 130692 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130694 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, | 130693 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| ... | @@ -131117,33 +131116,1720 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131117,33 +131116,1720 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131117 | .each = .{ .once = &.{ | 131116 | .each = .{ .once = &.{ |
| 131118 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, | 131117 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 131119 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, | 131118 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| 131120 | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, | 131119 | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, |
| 131121 | } }, | 131120 | } }, |
| 131122 | }, .{ | 131121 | }, .{ |
| 131123 | .required_features = .{ .avx, .fast_hops, null, null }, | 131122 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 131124 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 131123 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131125 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 131124 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131126 | .patterns = &.{ | 131125 | .patterns = &.{ |
| 131127 | .{ .src = .{ .to_sse, .none, .none } }, | 131126 | .{ .src = .{ .to_sse, .none, .none } }, |
| 131128 | }, | 131127 | }, |
| 131129 | .extra_temps = .{ | 131128 | .extra_temps = .{ |
| 131130 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | 131129 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131131 | .unused, | 131130 | .unused, |
| 131132 | .unused, | 131131 | .unused, |
| 131133 | .unused, | 131132 | .unused, |
| 131134 | .unused, | 131133 | .unused, |
| 131135 | .unused, | 131134 | .unused, |
| 131136 | .unused, | 131135 | .unused, |
| 131137 | .unused, | 131136 | .unused, |
| 131138 | .unused, | 131137 | .unused, |
| 131139 | .unused, | 131138 | .unused, |
| 131140 | .unused, | 131139 | .unused, |
| 131141 | }, | 131140 | }, |
| 131142 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 131141 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131143 | .each = .{ .once = &.{ | 131142 | .each = .{ .once = &.{ |
| 131144 | .{ ._, .vh_pd, .add, .tmp0x, .src0x, .src0x, ._ }, | 131143 | .{ ._, .vh_pd, .add, .tmp0x, .src0x, .src0x, ._ }, |
| 131145 | .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ }, | 131144 | .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| 131146 | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, | 131145 | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| | 131146 | } }, |
| | 131147 | }, .{ |
| | 131148 | .required_features = .{ .avx, null, null, null }, |
| | 131149 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131150 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 131151 | .patterns = &.{ |
| | 131152 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131153 | }, |
| | 131154 | .extra_temps = .{ |
| | 131155 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 131156 | .unused, |
| | 131157 | .unused, |
| | 131158 | .unused, |
| | 131159 | .unused, |
| | 131160 | .unused, |
| | 131161 | .unused, |
| | 131162 | .unused, |
| | 131163 | .unused, |
| | 131164 | .unused, |
| | 131165 | .unused, |
| | 131166 | }, |
| | 131167 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131168 | .each = .{ .once = &.{ |
| | 131169 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| | 131170 | .{ ._, .v_pd, .add, .tmp0x, .src0x, .tmp0x, ._ }, |
| | 131171 | .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ }, |
| | 131172 | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| | 131173 | } }, |
| | 131174 | }, .{ |
| | 131175 | .required_features = .{ .avx, .fast_hops, null, null }, |
| | 131176 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131177 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 131178 | .patterns = &.{ |
| | 131179 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131180 | }, |
| | 131181 | .extra_temps = .{ |
| | 131182 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 131183 | .unused, |
| | 131184 | .unused, |
| | 131185 | .unused, |
| | 131186 | .unused, |
| | 131187 | .unused, |
| | 131188 | .unused, |
| | 131189 | .unused, |
| | 131190 | .unused, |
| | 131191 | .unused, |
| | 131192 | .unused, |
| | 131193 | }, |
| | 131194 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131195 | .each = .{ .once = &.{ |
| | 131196 | .{ ._, .vh_pd, .add, .dst0y, .src0y, .src0y, ._ }, |
| | 131197 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| | 131198 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131199 | } }, |
| | 131200 | }, .{ |
| | 131201 | .required_features = .{ .avx, null, null, null }, |
| | 131202 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131203 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 131204 | .patterns = &.{ |
| | 131205 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131206 | }, |
| | 131207 | .extra_temps = .{ |
| | 131208 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 131209 | .unused, |
| | 131210 | .unused, |
| | 131211 | .unused, |
| | 131212 | .unused, |
| | 131213 | .unused, |
| | 131214 | .unused, |
| | 131215 | .unused, |
| | 131216 | .unused, |
| | 131217 | .unused, |
| | 131218 | .unused, |
| | 131219 | }, |
| | 131220 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131221 | .each = .{ .once = &.{ |
| | 131222 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| | 131223 | .{ ._, .v_pd, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| | 131224 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| | 131225 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131226 | } }, |
| | 131227 | }, .{ |
| | 131228 | .required_features = .{ .avx512f, null, null, null }, |
| | 131229 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131230 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any }, |
| | 131231 | .patterns = &.{ |
| | 131232 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131233 | }, |
| | 131234 | .extra_temps = .{ |
| | 131235 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 131236 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131237 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 131238 | .unused, |
| | 131239 | .unused, |
| | 131240 | .unused, |
| | 131241 | .unused, |
| | 131242 | .unused, |
| | 131243 | .unused, |
| | 131244 | .unused, |
| | 131245 | .unused, |
| | 131246 | }, |
| | 131247 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131248 | .each = .{ .once = &.{ |
| | 131249 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131250 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 131251 | .{ ._, .v_pd, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| | 131252 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ }, |
| | 131253 | .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ }, |
| | 131254 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| | 131255 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| | 131256 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| | 131257 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| | 131258 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| | 131259 | } }, |
| | 131260 | }, .{ |
| | 131261 | .required_features = .{ .avx512f, null, null, null }, |
| | 131262 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131263 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any }, |
| | 131264 | .patterns = &.{ |
| | 131265 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131266 | }, |
| | 131267 | .extra_temps = .{ |
| | 131268 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 131269 | .unused, |
| | 131270 | .unused, |
| | 131271 | .unused, |
| | 131272 | .unused, |
| | 131273 | .unused, |
| | 131274 | .unused, |
| | 131275 | .unused, |
| | 131276 | .unused, |
| | 131277 | .unused, |
| | 131278 | .unused, |
| | 131279 | }, |
| | 131280 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131281 | .each = .{ .once = &.{ |
| | 131282 | .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| | 131283 | .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ }, |
| | 131284 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp0y, ._ }, |
| | 131285 | .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| | 131286 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131287 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| | 131288 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131289 | } }, |
| | 131290 | }, .{ |
| | 131291 | .required_features = .{ .avx, .fast_hops, null, null }, |
| | 131292 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131293 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 131294 | .patterns = &.{ |
| | 131295 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131296 | }, |
| | 131297 | .extra_temps = .{ |
| | 131298 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131299 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 131300 | .unused, |
| | 131301 | .unused, |
| | 131302 | .unused, |
| | 131303 | .unused, |
| | 131304 | .unused, |
| | 131305 | .unused, |
| | 131306 | .unused, |
| | 131307 | .unused, |
| | 131308 | .unused, |
| | 131309 | }, |
| | 131310 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131311 | .clobbers = .{ .eflags = true }, |
| | 131312 | .each = .{ .once = &.{ |
| | 131313 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| | 131314 | .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| | 131315 | .{ .@"0:", .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| | 131316 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| | 131317 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131318 | .{ ._, .vh_pd, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| | 131319 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| | 131320 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 131321 | } }, |
| | 131322 | }, .{ |
| | 131323 | .required_features = .{ .avx, null, null, null }, |
| | 131324 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131325 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 131326 | .patterns = &.{ |
| | 131327 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131328 | }, |
| | 131329 | .extra_temps = .{ |
| | 131330 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131331 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 131332 | .unused, |
| | 131333 | .unused, |
| | 131334 | .unused, |
| | 131335 | .unused, |
| | 131336 | .unused, |
| | 131337 | .unused, |
| | 131338 | .unused, |
| | 131339 | .unused, |
| | 131340 | .unused, |
| | 131341 | }, |
| | 131342 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131343 | .clobbers = .{ .eflags = true }, |
| | 131344 | .each = .{ .once = &.{ |
| | 131345 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| | 131346 | .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| | 131347 | .{ .@"0:", .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| | 131348 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| | 131349 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131350 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| | 131351 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 131352 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, |
| | 131353 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 131354 | } }, |
| | 131355 | }, .{ |
| | 131356 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| | 131357 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131358 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 131359 | .patterns = &.{ |
| | 131360 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131361 | }, |
| | 131362 | .extra_temps = .{ |
| | 131363 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131364 | .unused, |
| | 131365 | .unused, |
| | 131366 | .unused, |
| | 131367 | .unused, |
| | 131368 | .unused, |
| | 131369 | .unused, |
| | 131370 | .unused, |
| | 131371 | .unused, |
| | 131372 | .unused, |
| | 131373 | .unused, |
| | 131374 | }, |
| | 131375 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131376 | .clobbers = .{ .eflags = true }, |
| | 131377 | .each = .{ .once = &.{ |
| | 131378 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| | 131379 | .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| | 131380 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 131381 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131382 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131383 | .{ ._, .h_pd, .add, .dst0x, .dst0x, ._, ._ }, |
| | 131384 | } }, |
| | 131385 | }, .{ |
| | 131386 | .required_features = .{ .sse2, null, null, null }, |
| | 131387 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131388 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 131389 | .patterns = &.{ |
| | 131390 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131391 | }, |
| | 131392 | .extra_temps = .{ |
| | 131393 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131394 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 131395 | .unused, |
| | 131396 | .unused, |
| | 131397 | .unused, |
| | 131398 | .unused, |
| | 131399 | .unused, |
| | 131400 | .unused, |
| | 131401 | .unused, |
| | 131402 | .unused, |
| | 131403 | .unused, |
| | 131404 | }, |
| | 131405 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131406 | .clobbers = .{ .eflags = true }, |
| | 131407 | .each = .{ .once = &.{ |
| | 131408 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| | 131409 | .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| | 131410 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 131411 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131412 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131413 | .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 131414 | .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ }, |
| | 131415 | .{ ._, ._sd, .add, .dst0x, .tmp1x, ._, ._ }, |
| | 131416 | } }, |
| | 131417 | }, .{ |
| | 131418 | .required_features = .{ .avx512f, null, null, null }, |
| | 131419 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131420 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any }, |
| | 131421 | .patterns = &.{ |
| | 131422 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131423 | }, |
| | 131424 | .extra_temps = .{ |
| | 131425 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131426 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131427 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 131428 | .unused, |
| | 131429 | .unused, |
| | 131430 | .unused, |
| | 131431 | .unused, |
| | 131432 | .unused, |
| | 131433 | .unused, |
| | 131434 | .unused, |
| | 131435 | .unused, |
| | 131436 | }, |
| | 131437 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131438 | .clobbers = .{ .eflags = true }, |
| | 131439 | .each = .{ .once = &.{ |
| | 131440 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131441 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 131442 | .{ ._, .v_pd, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| | 131443 | .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ }, |
| | 131444 | .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ }, |
| | 131445 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, |
| | 131446 | .{ .@"0:", .v_pd, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ }, |
| | 131447 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| | 131448 | .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ }, |
| | 131449 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131450 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| | 131451 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| | 131452 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| | 131453 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| | 131454 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| | 131455 | } }, |
| | 131456 | }, .{ |
| | 131457 | .required_features = .{ .avx, .fast_hops, null, null }, |
| | 131458 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131459 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 131460 | .patterns = &.{ |
| | 131461 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131462 | }, |
| | 131463 | .extra_temps = .{ |
| | 131464 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131465 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131466 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 131467 | .unused, |
| | 131468 | .unused, |
| | 131469 | .unused, |
| | 131470 | .unused, |
| | 131471 | .unused, |
| | 131472 | .unused, |
| | 131473 | .unused, |
| | 131474 | .unused, |
| | 131475 | }, |
| | 131476 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131477 | .clobbers = .{ .eflags = true }, |
| | 131478 | .each = .{ .once = &.{ |
| | 131479 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131480 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 131481 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| | 131482 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| | 131483 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| | 131484 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| | 131485 | .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| | 131486 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131487 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131488 | .{ ._, .vh_pd, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| | 131489 | } }, |
| | 131490 | }, .{ |
| | 131491 | .required_features = .{ .avx, null, null, null }, |
| | 131492 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131493 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 131494 | .patterns = &.{ |
| | 131495 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131496 | }, |
| | 131497 | .extra_temps = .{ |
| | 131498 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131499 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131500 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 131501 | .unused, |
| | 131502 | .unused, |
| | 131503 | .unused, |
| | 131504 | .unused, |
| | 131505 | .unused, |
| | 131506 | .unused, |
| | 131507 | .unused, |
| | 131508 | .unused, |
| | 131509 | }, |
| | 131510 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131511 | .clobbers = .{ .eflags = true }, |
| | 131512 | .each = .{ .once = &.{ |
| | 131513 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131514 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 131515 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| | 131516 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| | 131517 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| | 131518 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| | 131519 | .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| | 131520 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131521 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131522 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| | 131523 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| | 131524 | } }, |
| | 131525 | }, .{ |
| | 131526 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| | 131527 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131528 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 131529 | .patterns = &.{ |
| | 131530 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131531 | }, |
| | 131532 | .extra_temps = .{ |
| | 131533 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131534 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131535 | .unused, |
| | 131536 | .unused, |
| | 131537 | .unused, |
| | 131538 | .unused, |
| | 131539 | .unused, |
| | 131540 | .unused, |
| | 131541 | .unused, |
| | 131542 | .unused, |
| | 131543 | .unused, |
| | 131544 | }, |
| | 131545 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131546 | .clobbers = .{ .eflags = true }, |
| | 131547 | .each = .{ .once = &.{ |
| | 131548 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131549 | .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 131550 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| | 131551 | .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| | 131552 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 131553 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131554 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131555 | .{ ._, .h_pd, .add, .dst0x, .dst0x, ._, ._ }, |
| | 131556 | } }, |
| | 131557 | }, .{ |
| | 131558 | .required_features = .{ .sse2, null, null, null }, |
| | 131559 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131560 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 131561 | .patterns = &.{ |
| | 131562 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131563 | }, |
| | 131564 | .extra_temps = .{ |
| | 131565 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131566 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131567 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 131568 | .unused, |
| | 131569 | .unused, |
| | 131570 | .unused, |
| | 131571 | .unused, |
| | 131572 | .unused, |
| | 131573 | .unused, |
| | 131574 | .unused, |
| | 131575 | .unused, |
| | 131576 | }, |
| | 131577 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131578 | .clobbers = .{ .eflags = true }, |
| | 131579 | .each = .{ .once = &.{ |
| | 131580 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131581 | .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 131582 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| | 131583 | .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| | 131584 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 131585 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131586 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131587 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 131588 | .{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ }, |
| | 131589 | .{ ._, ._pd, .add, .dst0x, .tmp2x, ._, ._ }, |
| | 131590 | } }, |
| | 131591 | }, .{ |
| | 131592 | .required_features = .{ .x87, null, null, null }, |
| | 131593 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 131594 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 131595 | .patterns = &.{ |
| | 131596 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131597 | }, |
| | 131598 | .extra_temps = .{ |
| | 131599 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 131600 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 131601 | .unused, |
| | 131602 | .unused, |
| | 131603 | .unused, |
| | 131604 | .unused, |
| | 131605 | .unused, |
| | 131606 | .unused, |
| | 131607 | .unused, |
| | 131608 | .unused, |
| | 131609 | .unused, |
| | 131610 | }, |
| | 131611 | .dst_temps = .{ .mem, .unused }, |
| | 131612 | .clobbers = .{ .eflags = true }, |
| | 131613 | .each = .{ .once = &.{ |
| | 131614 | .{ ._, ._, .mov, .tmp0p, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| | 131615 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, |
| | 131616 | .{ .@"0:", .f_, .add, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| | 131617 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, |
| | 131618 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131619 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| | 131620 | } }, |
| | 131621 | }, .{ |
| | 131622 | .required_features = .{ .x87, null, null, null }, |
| | 131623 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| | 131624 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .tbyte } }, .any, .any }, |
| | 131625 | .patterns = &.{ |
| | 131626 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131627 | }, |
| | 131628 | .extra_temps = .{ |
| | 131629 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 131630 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 131631 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 131632 | .unused, |
| | 131633 | .unused, |
| | 131634 | .unused, |
| | 131635 | .unused, |
| | 131636 | .unused, |
| | 131637 | .unused, |
| | 131638 | .unused, |
| | 131639 | .unused, |
| | 131640 | }, |
| | 131641 | .dst_temps = .{ .mem, .unused }, |
| | 131642 | .clobbers = .{ .eflags = true }, |
| | 131643 | .each = .{ .once = &.{ |
| | 131644 | .{ ._, ._, .mov, .tmp0p, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| | 131645 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, |
| | 131646 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, |
| | 131647 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| | 131648 | .{ ._, ._, .sub, .tmp0p, .si(16), ._, ._ }, |
| | 131649 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131650 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| | 131651 | } }, |
| | 131652 | }, .{ |
| | 131653 | .required_features = .{ .avx, null, null, null }, |
| | 131654 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| | 131655 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 131656 | .patterns = &.{ |
| | 131657 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131658 | }, |
| | 131659 | .call_frame = .{ .alignment = .@"16" }, |
| | 131660 | .extra_temps = .{ |
| | 131661 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131662 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 131663 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| | 131664 | .unused, |
| | 131665 | .unused, |
| | 131666 | .unused, |
| | 131667 | .unused, |
| | 131668 | .unused, |
| | 131669 | .unused, |
| | 131670 | .unused, |
| | 131671 | .unused, |
| | 131672 | }, |
| | 131673 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 131674 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 131675 | .each = .{ .once = &.{ |
| | 131676 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| | 131677 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| | 131678 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 131679 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 131680 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131681 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131682 | } }, |
| | 131683 | }, .{ |
| | 131684 | .required_features = .{ .sse2, null, null, null }, |
| | 131685 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| | 131686 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 131687 | .patterns = &.{ |
| | 131688 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131689 | }, |
| | 131690 | .call_frame = .{ .alignment = .@"16" }, |
| | 131691 | .extra_temps = .{ |
| | 131692 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131693 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 131694 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| | 131695 | .unused, |
| | 131696 | .unused, |
| | 131697 | .unused, |
| | 131698 | .unused, |
| | 131699 | .unused, |
| | 131700 | .unused, |
| | 131701 | .unused, |
| | 131702 | .unused, |
| | 131703 | }, |
| | 131704 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 131705 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 131706 | .each = .{ .once = &.{ |
| | 131707 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| | 131708 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| | 131709 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 131710 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 131711 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131712 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131713 | } }, |
| | 131714 | }, .{ |
| | 131715 | .required_features = .{ .sse, null, null, null }, |
| | 131716 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| | 131717 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 131718 | .patterns = &.{ |
| | 131719 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131720 | }, |
| | 131721 | .call_frame = .{ .alignment = .@"16" }, |
| | 131722 | .extra_temps = .{ |
| | 131723 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 131724 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 131725 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| | 131726 | .unused, |
| | 131727 | .unused, |
| | 131728 | .unused, |
| | 131729 | .unused, |
| | 131730 | .unused, |
| | 131731 | .unused, |
| | 131732 | .unused, |
| | 131733 | .unused, |
| | 131734 | }, |
| | 131735 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 131736 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 131737 | .each = .{ .once = &.{ |
| | 131738 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| | 131739 | .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| | 131740 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 131741 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 131742 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 131743 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 131744 | } }, |
| | 131745 | } }, |
| | 131746 | .Mul => comptime &.{ .{ |
| | 131747 | .required_features = .{ .f16c, null, null, null }, |
| | 131748 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 131749 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any }, |
| | 131750 | .patterns = &.{ |
| | 131751 | .{ .src = .{ .mem, .none, .none } }, |
| | 131752 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131753 | }, |
| | 131754 | .extra_temps = .{ |
| | 131755 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 131756 | .unused, |
| | 131757 | .unused, |
| | 131758 | .unused, |
| | 131759 | .unused, |
| | 131760 | .unused, |
| | 131761 | .unused, |
| | 131762 | .unused, |
| | 131763 | .unused, |
| | 131764 | .unused, |
| | 131765 | .unused, |
| | 131766 | }, |
| | 131767 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131768 | .each = .{ .once = &.{ |
| | 131769 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 131770 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 131771 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131772 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 131773 | } }, |
| | 131774 | }, .{ |
| | 131775 | .required_features = .{ .f16c, null, null, null }, |
| | 131776 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 131777 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 131778 | .patterns = &.{ |
| | 131779 | .{ .src = .{ .mem, .none, .none } }, |
| | 131780 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131781 | }, |
| | 131782 | .extra_temps = .{ |
| | 131783 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 131784 | .unused, |
| | 131785 | .unused, |
| | 131786 | .unused, |
| | 131787 | .unused, |
| | 131788 | .unused, |
| | 131789 | .unused, |
| | 131790 | .unused, |
| | 131791 | .unused, |
| | 131792 | .unused, |
| | 131793 | .unused, |
| | 131794 | }, |
| | 131795 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131796 | .each = .{ .once = &.{ |
| | 131797 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 131798 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 131799 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131800 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 131801 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131802 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 131803 | } }, |
| | 131804 | }, .{ |
| | 131805 | .required_features = .{ .f16c, null, null, null }, |
| | 131806 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 131807 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 131808 | .patterns = &.{ |
| | 131809 | .{ .src = .{ .mem, .none, .none } }, |
| | 131810 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131811 | }, |
| | 131812 | .extra_temps = .{ |
| | 131813 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 131814 | .unused, |
| | 131815 | .unused, |
| | 131816 | .unused, |
| | 131817 | .unused, |
| | 131818 | .unused, |
| | 131819 | .unused, |
| | 131820 | .unused, |
| | 131821 | .unused, |
| | 131822 | .unused, |
| | 131823 | .unused, |
| | 131824 | }, |
| | 131825 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131826 | .each = .{ .once = &.{ |
| | 131827 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 131828 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 131829 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131830 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 131831 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131832 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 131833 | } }, |
| | 131834 | }, .{ |
| | 131835 | .required_features = .{ .f16c, null, null, null }, |
| | 131836 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 131837 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 131838 | .patterns = &.{ |
| | 131839 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131840 | }, |
| | 131841 | .extra_temps = .{ |
| | 131842 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 131843 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131844 | .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 131845 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 131846 | .unused, |
| | 131847 | .unused, |
| | 131848 | .unused, |
| | 131849 | .unused, |
| | 131850 | .unused, |
| | 131851 | .unused, |
| | 131852 | .unused, |
| | 131853 | }, |
| | 131854 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131855 | .each = .{ .once = &.{ |
| | 131856 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131857 | .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 131858 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 131859 | .{ ._, .v_ps, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 131860 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| | 131861 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 131862 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 131863 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 131864 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 131865 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 131866 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 131867 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 131868 | } }, |
| | 131869 | }, .{ |
| | 131870 | .required_features = .{ .f16c, null, null, null }, |
| | 131871 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 131872 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 131873 | .patterns = &.{ |
| | 131874 | .{ .src = .{ .mem, .none, .none } }, |
| | 131875 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131876 | }, |
| | 131877 | .extra_temps = .{ |
| | 131878 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 131879 | .unused, |
| | 131880 | .unused, |
| | 131881 | .unused, |
| | 131882 | .unused, |
| | 131883 | .unused, |
| | 131884 | .unused, |
| | 131885 | .unused, |
| | 131886 | .unused, |
| | 131887 | .unused, |
| | 131888 | .unused, |
| | 131889 | }, |
| | 131890 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131891 | .each = .{ .once = &.{ |
| | 131892 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, |
| | 131893 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| | 131894 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131895 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 131896 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131897 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 131898 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131899 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 131900 | } }, |
| | 131901 | }, .{ |
| | 131902 | .required_features = .{ .f16c, null, null, null }, |
| | 131903 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 131904 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| | 131905 | .patterns = &.{ |
| | 131906 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131907 | }, |
| | 131908 | .extra_temps = .{ |
| | 131909 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 131910 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131911 | .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 131912 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 131913 | .unused, |
| | 131914 | .unused, |
| | 131915 | .unused, |
| | 131916 | .unused, |
| | 131917 | .unused, |
| | 131918 | .unused, |
| | 131919 | .unused, |
| | 131920 | }, |
| | 131921 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131922 | .each = .{ .once = &.{ |
| | 131923 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131924 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 131925 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 131926 | .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 131927 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 131928 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| | 131929 | .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ }, |
| | 131930 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| | 131931 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 131932 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 131933 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 131934 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 131935 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 131936 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 131937 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 131938 | } }, |
| | 131939 | }, .{ |
| | 131940 | .required_features = .{ .f16c, null, null, null }, |
| | 131941 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 131942 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| | 131943 | .patterns = &.{ |
| | 131944 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 131945 | }, |
| | 131946 | .extra_temps = .{ |
| | 131947 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 131948 | .unused, |
| | 131949 | .unused, |
| | 131950 | .unused, |
| | 131951 | .unused, |
| | 131952 | .unused, |
| | 131953 | .unused, |
| | 131954 | .unused, |
| | 131955 | .unused, |
| | 131956 | .unused, |
| | 131957 | .unused, |
| | 131958 | }, |
| | 131959 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 131960 | .each = .{ .once = &.{ |
| | 131961 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| | 131962 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, |
| | 131963 | .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ }, |
| | 131964 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ }, |
| | 131965 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| | 131966 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131967 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 131968 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131969 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 131970 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 131971 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 131972 | } }, |
| | 131973 | }, .{ |
| | 131974 | .required_features = .{ .avx512f, null, null, null }, |
| | 131975 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 131976 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| | 131977 | .patterns = &.{ |
| | 131978 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 131979 | }, |
| | 131980 | .extra_temps = .{ |
| | 131981 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 131982 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 131983 | .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 131984 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 131985 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 131986 | .unused, |
| | 131987 | .unused, |
| | 131988 | .unused, |
| | 131989 | .unused, |
| | 131990 | .unused, |
| | 131991 | .unused, |
| | 131992 | }, |
| | 131993 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 131994 | .each = .{ .once = &.{ |
| | 131995 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 131996 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 131997 | .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ }, |
| | 131998 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 131999 | .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ }, |
| | 132000 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ }, |
| | 132001 | .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 132002 | .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ }, |
| | 132003 | .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ }, |
| | 132004 | .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ }, |
| | 132005 | .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ }, |
| | 132006 | .{ ._, .v_ps, .mul, .tmp3y, .tmp3y, .tmp4y, ._ }, |
| | 132007 | .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ }, |
| | 132008 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| | 132009 | .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ }, |
| | 132010 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp4y, ._ }, |
| | 132011 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| | 132012 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132013 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132014 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 132015 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132016 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132017 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132018 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 132019 | } }, |
| | 132020 | }, .{ |
| | 132021 | .required_features = .{ .avx512f, null, null, null }, |
| | 132022 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 132023 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| | 132024 | .patterns = &.{ |
| | 132025 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132026 | }, |
| | 132027 | .extra_temps = .{ |
| | 132028 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 132029 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 132030 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 132031 | .unused, |
| | 132032 | .unused, |
| | 132033 | .unused, |
| | 132034 | .unused, |
| | 132035 | .unused, |
| | 132036 | .unused, |
| | 132037 | .unused, |
| | 132038 | .unused, |
| | 132039 | }, |
| | 132040 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132041 | .each = .{ .once = &.{ |
| | 132042 | .{ ._, .v_ps, .mova, .tmp1y, .memd(.src0y, 32), ._, ._ }, |
| | 132043 | .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| | 132044 | .{ ._, .v_f128, .extract, .tmp2x, .tmp1y, .ui(1), ._ }, |
| | 132045 | .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ }, |
| | 132046 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| | 132047 | .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .tmp2y, ._ }, |
| | 132048 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| | 132049 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| | 132050 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| | 132051 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp2y, ._ }, |
| | 132052 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp1y, ._ }, |
| | 132053 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| | 132054 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132055 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 132056 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132057 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132058 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132059 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 132060 | } }, |
| | 132061 | }, .{ |
| | 132062 | .required_features = .{ .f16c, null, null, null }, |
| | 132063 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 132064 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 132065 | .patterns = &.{ |
| | 132066 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132067 | }, |
| | 132068 | .extra_temps = .{ |
| | 132069 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132070 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 132071 | .unused, |
| | 132072 | .unused, |
| | 132073 | .unused, |
| | 132074 | .unused, |
| | 132075 | .unused, |
| | 132076 | .unused, |
| | 132077 | .unused, |
| | 132078 | .unused, |
| | 132079 | .unused, |
| | 132080 | }, |
| | 132081 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132082 | .clobbers = .{ .eflags = true }, |
| | 132083 | .each = .{ .once = &.{ |
| | 132084 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| | 132085 | .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| | 132086 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| | 132087 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp1y, ._ }, |
| | 132088 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 132089 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132090 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| | 132091 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132092 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 132093 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132094 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132095 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132096 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 132097 | } }, |
| | 132098 | }, .{ |
| | 132099 | .required_features = .{ .avx512f, null, null, null }, |
| | 132100 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 132101 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| | 132102 | .patterns = &.{ |
| | 132103 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132104 | }, |
| | 132105 | .extra_temps = .{ |
| | 132106 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132107 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 132108 | .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 132109 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 132110 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 132111 | .unused, |
| | 132112 | .unused, |
| | 132113 | .unused, |
| | 132114 | .unused, |
| | 132115 | .unused, |
| | 132116 | .unused, |
| | 132117 | }, |
| | 132118 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132119 | .clobbers = .{ .eflags = true }, |
| | 132120 | .each = .{ .once = &.{ |
| | 132121 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 132122 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 132123 | .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ }, |
| | 132124 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 132125 | .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ }, |
| | 132126 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, |
| | 132127 | .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 132128 | .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ }, |
| | 132129 | .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ }, |
| | 132130 | .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ }, |
| | 132131 | .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ }, |
| | 132132 | .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ }, |
| | 132133 | .{ ._, .v_ps, .mul, .tmp3y, .tmp3y, .tmp4y, ._ }, |
| | 132134 | .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ }, |
| | 132135 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| | 132136 | .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ }, |
| | 132137 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp4y, ._ }, |
| | 132138 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| | 132139 | .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ }, |
| | 132140 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| | 132141 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 132142 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132143 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132144 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132145 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 132146 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132147 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132148 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132149 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 132150 | } }, |
| | 132151 | }, .{ |
| | 132152 | .required_features = .{ .f16c, null, null, null }, |
| | 132153 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 132154 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| | 132155 | .patterns = &.{ |
| | 132156 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132157 | }, |
| | 132158 | .extra_temps = .{ |
| | 132159 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132160 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 132161 | .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 132162 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 132163 | .unused, |
| | 132164 | .unused, |
| | 132165 | .unused, |
| | 132166 | .unused, |
| | 132167 | .unused, |
| | 132168 | .unused, |
| | 132169 | .unused, |
| | 132170 | }, |
| | 132171 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132172 | .clobbers = .{ .eflags = true }, |
| | 132173 | .each = .{ .once = &.{ |
| | 132174 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 132175 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 132176 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 132177 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| | 132178 | .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 132179 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| | 132180 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132181 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| | 132182 | .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ }, |
| | 132183 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| | 132184 | .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ }, |
| | 132185 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| | 132186 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 132187 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132188 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132189 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132190 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| | 132191 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132192 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132193 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132194 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 132195 | } }, |
| | 132196 | }, .{ |
| | 132197 | .required_features = .{ .avx, null, null, null }, |
| | 132198 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 132199 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 132200 | .patterns = &.{ |
| | 132201 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132202 | }, |
| | 132203 | .call_frame = .{ .alignment = .@"16" }, |
| | 132204 | .extra_temps = .{ |
| | 132205 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132206 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 132207 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, |
| | 132208 | .unused, |
| | 132209 | .unused, |
| | 132210 | .unused, |
| | 132211 | .unused, |
| | 132212 | .unused, |
| | 132213 | .unused, |
| | 132214 | .unused, |
| | 132215 | .unused, |
| | 132216 | }, |
| | 132217 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 132218 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 132219 | .each = .{ .once = &.{ |
| | 132220 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| | 132221 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| | 132222 | .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) }, |
| | 132223 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 132224 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| | 132225 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 132226 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| | 132227 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132228 | } }, |
| | 132229 | }, .{ |
| | 132230 | .required_features = .{ .sse2, null, null, null }, |
| | 132231 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 132232 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 132233 | .patterns = &.{ |
| | 132234 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132235 | }, |
| | 132236 | .call_frame = .{ .alignment = .@"16" }, |
| | 132237 | .extra_temps = .{ |
| | 132238 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132239 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 132240 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, |
| | 132241 | .unused, |
| | 132242 | .unused, |
| | 132243 | .unused, |
| | 132244 | .unused, |
| | 132245 | .unused, |
| | 132246 | .unused, |
| | 132247 | .unused, |
| | 132248 | .unused, |
| | 132249 | }, |
| | 132250 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 132251 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 132252 | .each = .{ .once = &.{ |
| | 132253 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| | 132254 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| | 132255 | .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ }, |
| | 132256 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 132257 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| | 132258 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 132259 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| | 132260 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132261 | } }, |
| | 132262 | }, .{ |
| | 132263 | .required_features = .{ .sse, null, null, null }, |
| | 132264 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 132265 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 132266 | .patterns = &.{ |
| | 132267 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132268 | }, |
| | 132269 | .call_frame = .{ .alignment = .@"16" }, |
| | 132270 | .extra_temps = .{ |
| | 132271 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132272 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| | 132273 | .{ .type = .f32, .kind = .mem }, |
| | 132274 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 132275 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, |
| | 132276 | .unused, |
| | 132277 | .unused, |
| | 132278 | .unused, |
| | 132279 | .unused, |
| | 132280 | .unused, |
| | 132281 | .unused, |
| | 132282 | }, |
| | 132283 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| | 132284 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 132285 | .each = .{ .once = &.{ |
| | 132286 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| | 132287 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| | 132288 | .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ }, |
| | 132289 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| | 132290 | .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ }, |
| | 132291 | .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| | 132292 | .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ }, |
| | 132293 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 132294 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| | 132295 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132296 | } }, |
| | 132297 | }, .{ |
| | 132298 | .required_features = .{ .avx, null, null, null }, |
| | 132299 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132300 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| | 132301 | .patterns = &.{ |
| | 132302 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 132303 | }, |
| | 132304 | .extra_temps = .{ |
| | 132305 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132306 | .unused, |
| | 132307 | .unused, |
| | 132308 | .unused, |
| | 132309 | .unused, |
| | 132310 | .unused, |
| | 132311 | .unused, |
| | 132312 | .unused, |
| | 132313 | .unused, |
| | 132314 | .unused, |
| | 132315 | .unused, |
| | 132316 | }, |
| | 132317 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 132318 | .each = .{ .once = &.{ |
| | 132319 | .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) }, |
| | 132320 | .{ ._, .v_ss, .mul, .dst0x, .src0x, .tmp0x, ._ }, |
| | 132321 | } }, |
| | 132322 | }, .{ |
| | 132323 | .required_features = .{ .sse, null, null, null }, |
| | 132324 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132325 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| | 132326 | .patterns = &.{ |
| | 132327 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 132328 | }, |
| | 132329 | .extra_temps = .{ |
| | 132330 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132331 | .unused, |
| | 132332 | .unused, |
| | 132333 | .unused, |
| | 132334 | .unused, |
| | 132335 | .unused, |
| | 132336 | .unused, |
| | 132337 | .unused, |
| | 132338 | .unused, |
| | 132339 | .unused, |
| | 132340 | .unused, |
| | 132341 | }, |
| | 132342 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 132343 | .each = .{ .once = &.{ |
| | 132344 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| | 132345 | .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ }, |
| | 132346 | .{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ }, |
| | 132347 | } }, |
| | 132348 | }, .{ |
| | 132349 | .required_features = .{ .avx, null, null, null }, |
| | 132350 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132351 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 132352 | .patterns = &.{ |
| | 132353 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 132354 | }, |
| | 132355 | .extra_temps = .{ |
| | 132356 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132357 | .unused, |
| | 132358 | .unused, |
| | 132359 | .unused, |
| | 132360 | .unused, |
| | 132361 | .unused, |
| | 132362 | .unused, |
| | 132363 | .unused, |
| | 132364 | .unused, |
| | 132365 | .unused, |
| | 132366 | .unused, |
| | 132367 | }, |
| | 132368 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 132369 | .each = .{ .once = &.{ |
| | 132370 | .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ }, |
| | 132371 | .{ ._, .v_ps, .mul, .tmp0x, .src0x, .tmp0x, ._ }, |
| | 132372 | .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01_01_01_01) }, |
| | 132373 | .{ ._, .v_ss, .mul, .dst0x, .tmp0x, .dst0x, ._ }, |
| | 132374 | } }, |
| | 132375 | }, .{ |
| | 132376 | .required_features = .{ .sse, null, null, null }, |
| | 132377 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132378 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 132379 | .patterns = &.{ |
| | 132380 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 132381 | }, |
| | 132382 | .extra_temps = .{ |
| | 132383 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132384 | .unused, |
| | 132385 | .unused, |
| | 132386 | .unused, |
| | 132387 | .unused, |
| | 132388 | .unused, |
| | 132389 | .unused, |
| | 132390 | .unused, |
| | 132391 | .unused, |
| | 132392 | .unused, |
| | 132393 | .unused, |
| | 132394 | }, |
| | 132395 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 132396 | .each = .{ .once = &.{ |
| | 132397 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 132398 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| | 132399 | .{ ._, ._ss, .mul, .tmp0x, .src0x, ._, ._ }, |
| | 132400 | .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| | 132401 | .{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ }, |
| | 132402 | } }, |
| | 132403 | }, .{ |
| | 132404 | .required_features = .{ .avx, null, null, null }, |
| | 132405 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132406 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 132407 | .patterns = &.{ |
| | 132408 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 132409 | }, |
| | 132410 | .extra_temps = .{ |
| | 132411 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132412 | .unused, |
| | 132413 | .unused, |
| | 132414 | .unused, |
| | 132415 | .unused, |
| | 132416 | .unused, |
| | 132417 | .unused, |
| | 132418 | .unused, |
| | 132419 | .unused, |
| | 132420 | .unused, |
| | 132421 | .unused, |
| | 132422 | }, |
| | 132423 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 132424 | .each = .{ .once = &.{ |
| | 132425 | .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ }, |
| | 132426 | .{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp0x, ._ }, |
| | 132427 | .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) }, |
| | 132428 | .{ ._, .v_ss, .mul, .dst0x, .src0x, .tmp0x, ._ }, |
| | 132429 | } }, |
| | 132430 | }, .{ |
| | 132431 | .required_features = .{ .sse, null, null, null }, |
| | 132432 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132433 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 132434 | .patterns = &.{ |
| | 132435 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 132436 | }, |
| | 132437 | .extra_temps = .{ |
| | 132438 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132439 | .unused, |
| | 132440 | .unused, |
| | 132441 | .unused, |
| | 132442 | .unused, |
| | 132443 | .unused, |
| | 132444 | .unused, |
| | 132445 | .unused, |
| | 132446 | .unused, |
| | 132447 | .unused, |
| | 132448 | .unused, |
| | 132449 | }, |
| | 132450 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 132451 | .each = .{ .once = &.{ |
| | 132452 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 132453 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| | 132454 | .{ ._, ._ps, .mul, .dst0x, .tmp0x, ._, ._ }, |
| | 132455 | .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ }, |
| | 132456 | .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ }, |
| | 132457 | .{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ }, |
| | 132458 | } }, |
| | 132459 | }, .{ |
| | 132460 | .required_features = .{ .avx, null, null, null }, |
| | 132461 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132462 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| | 132463 | .patterns = &.{ |
| | 132464 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 132465 | }, |
| | 132466 | .extra_temps = .{ |
| | 132467 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 132468 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 132469 | .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 132470 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132471 | .unused, |
| | 132472 | .unused, |
| | 132473 | .unused, |
| | 132474 | .unused, |
| | 132475 | .unused, |
| | 132476 | .unused, |
| | 132477 | .unused, |
| | 132478 | }, |
| | 132479 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 132480 | .each = .{ .once = &.{ |
| | 132481 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 132482 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 132483 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 132484 | .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 132485 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132486 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132487 | .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ }, |
| | 132488 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132489 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132490 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132491 | } }, |
| | 132492 | }, .{ |
| | 132493 | .required_features = .{ .avx, null, null, null }, |
| | 132494 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132495 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| | 132496 | .patterns = &.{ |
| | 132497 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 132498 | }, |
| | 132499 | .extra_temps = .{ |
| | 132500 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 132501 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132502 | .unused, |
| | 132503 | .unused, |
| | 132504 | .unused, |
| | 132505 | .unused, |
| | 132506 | .unused, |
| | 132507 | .unused, |
| | 132508 | .unused, |
| | 132509 | .unused, |
| | 132510 | .unused, |
| | 132511 | }, |
| | 132512 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 132513 | .each = .{ .once = &.{ |
| | 132514 | .{ ._, .v_f128, .extract, .tmp1x, .src0y, .ui(1), ._ }, |
| | 132515 | .{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp1x, ._ }, |
| | 132516 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, |
| | 132517 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132518 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132519 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132520 | } }, |
| | 132521 | }, .{ |
| | 132522 | .required_features = .{ .avx512f, null, null, null }, |
| | 132523 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132524 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any }, |
| | 132525 | .patterns = &.{ |
| | 132526 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132527 | }, |
| | 132528 | .extra_temps = .{ |
| | 132529 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 132530 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 132531 | .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 132532 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 132533 | .unused, |
| | 132534 | .unused, |
| | 132535 | .unused, |
| | 132536 | .unused, |
| | 132537 | .unused, |
| | 132538 | .unused, |
| | 132539 | .unused, |
| | 132540 | }, |
| | 132541 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132542 | .each = .{ .once = &.{ |
| | 132543 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 132544 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 132545 | .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ }, |
| | 132546 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 132547 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ }, |
| | 132548 | .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ }, |
| | 132549 | .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 132550 | .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ }, |
| | 132551 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| | 132552 | .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132553 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132554 | .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ }, |
| | 132555 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132556 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132557 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132558 | } }, |
| | 132559 | }, .{ |
| | 132560 | .required_features = .{ .avx512f, null, null, null }, |
| | 132561 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132562 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any }, |
| | 132563 | .patterns = &.{ |
| | 132564 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132565 | }, |
| | 132566 | .extra_temps = .{ |
| | 132567 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132568 | .unused, |
| | 132569 | .unused, |
| | 132570 | .unused, |
| | 132571 | .unused, |
| | 132572 | .unused, |
| | 132573 | .unused, |
| | 132574 | .unused, |
| | 132575 | .unused, |
| | 132576 | .unused, |
| | 132577 | .unused, |
| | 132578 | }, |
| | 132579 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132580 | .each = .{ .once = &.{ |
| | 132581 | .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| | 132582 | .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ }, |
| | 132583 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ }, |
| | 132584 | .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| | 132585 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 132586 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| | 132587 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 132588 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132589 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| | 132590 | } }, |
| | 132591 | }, .{ |
| | 132592 | .required_features = .{ .avx, null, null, null }, |
| | 132593 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132594 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| | 132595 | .patterns = &.{ |
| | 132596 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132597 | }, |
| | 132598 | .extra_temps = .{ |
| | 132599 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132600 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132601 | .unused, |
| | 132602 | .unused, |
| | 132603 | .unused, |
| | 132604 | .unused, |
| | 132605 | .unused, |
| | 132606 | .unused, |
| | 132607 | .unused, |
| | 132608 | .unused, |
| | 132609 | .unused, |
| | 132610 | }, |
| | 132611 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132612 | .clobbers = .{ .eflags = true }, |
| | 132613 | .each = .{ .once = &.{ |
| | 132614 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| | 132615 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| | 132616 | .{ .@"0:", .v_ps, .mul, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| | 132617 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| | 132618 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132619 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| | 132620 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132621 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, |
| | 132622 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132623 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132624 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| | 132625 | } }, |
| | 132626 | }, .{ |
| | 132627 | .required_features = .{ .sse, null, null, null }, |
| | 132628 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132629 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 132630 | .patterns = &.{ |
| | 132631 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132632 | }, |
| | 132633 | .extra_temps = .{ |
| | 132634 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132635 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132636 | .unused, |
| | 132637 | .unused, |
| | 132638 | .unused, |
| | 132639 | .unused, |
| | 132640 | .unused, |
| | 132641 | .unused, |
| | 132642 | .unused, |
| | 132643 | .unused, |
| | 132644 | .unused, |
| | 132645 | }, |
| | 132646 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132647 | .clobbers = .{ .eflags = true }, |
| | 132648 | .each = .{ .once = &.{ |
| | 132649 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| | 132650 | .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| | 132651 | .{ .@"0:", ._ps, .mul, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 132652 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 132653 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132654 | .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 132655 | .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ }, |
| | 132656 | .{ ._, ._ps, .mul, .dst0x, .tmp1x, ._, ._ }, |
| | 132657 | .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ }, |
| | 132658 | .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01_01_01_01), ._ }, |
| | 132659 | .{ ._, ._ss, .mul, .dst0x, .tmp1x, ._, ._ }, |
| | 132660 | } }, |
| | 132661 | }, .{ |
| | 132662 | .required_features = .{ .avx512f, null, null, null }, |
| | 132663 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132664 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any }, |
| | 132665 | .patterns = &.{ |
| | 132666 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132667 | }, |
| | 132668 | .extra_temps = .{ |
| | 132669 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132670 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 132671 | .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 132672 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 132673 | .unused, |
| | 132674 | .unused, |
| | 132675 | .unused, |
| | 132676 | .unused, |
| | 132677 | .unused, |
| | 132678 | .unused, |
| | 132679 | .unused, |
| | 132680 | }, |
| | 132681 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132682 | .clobbers = .{ .eflags = true }, |
| | 132683 | .each = .{ .once = &.{ |
| | 132684 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 132685 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 132686 | .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ }, |
| | 132687 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 132688 | .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ }, |
| | 132689 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, |
| | 132690 | .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 132691 | .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ }, |
| | 132692 | .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ }, |
| | 132693 | .{ .@"0:", .v_ps, .mul, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ }, |
| | 132694 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| | 132695 | .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ }, |
| | 132696 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132697 | .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| | 132698 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132699 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132700 | .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ }, |
| | 132701 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132702 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132703 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132704 | } }, |
| | 132705 | }, .{ |
| | 132706 | .required_features = .{ .avx, null, null, null }, |
| | 132707 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132708 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| | 132709 | .patterns = &.{ |
| | 132710 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132711 | }, |
| | 132712 | .extra_temps = .{ |
| | 132713 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132714 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 132715 | .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 132716 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132717 | .unused, |
| | 132718 | .unused, |
| | 132719 | .unused, |
| | 132720 | .unused, |
| | 132721 | .unused, |
| | 132722 | .unused, |
| | 132723 | .unused, |
| | 132724 | }, |
| | 132725 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132726 | .clobbers = .{ .eflags = true }, |
| | 132727 | .each = .{ .once = &.{ |
| | 132728 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 132729 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| | 132730 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 132731 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| | 132732 | .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 132733 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| | 132734 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132735 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132736 | .{ .@"0:", .v_ps, .mul, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| | 132737 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 132738 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132739 | .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ }, |
| | 132740 | .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132741 | .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| | 132742 | .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132743 | } }, |
| | 132744 | }, .{ |
| | 132745 | .required_features = .{ .sse, null, null, null }, |
| | 132746 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 132747 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 132748 | .patterns = &.{ |
| | 132749 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 132750 | }, |
| | 132751 | .extra_temps = .{ |
| | 132752 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 132753 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 132754 | .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| | 132755 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 132756 | .unused, |
| | 132757 | .unused, |
| | 132758 | .unused, |
| | 132759 | .unused, |
| | 132760 | .unused, |
| | 132761 | .unused, |
| | 132762 | .unused, |
| | 132763 | }, |
| | 132764 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 132765 | .clobbers = .{ .eflags = true }, |
| | 132766 | .each = .{ .once = &.{ |
| | 132767 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 132768 | .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 132769 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 132770 | .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| | 132771 | .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 132772 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| | 132773 | .{ .@"0:", ._ps, .mul, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| | 132774 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 132775 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| | 132776 | .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| | 132777 | .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ }, |
| | 132778 | .{ ._, ._ps, .mul, .dst0x, .tmp3x, ._, ._ }, |
| | 132779 | .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ }, |
| | 132780 | .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01_01_01_01), ._ }, |
| | 132781 | .{ ._, ._ss, .mul, .dst0x, .tmp3x, ._, ._ }, |
| | 132782 | } }, |
| | 132783 | }, .{ |
| | 132784 | .required_features = .{ .avx, null, null, null }, |
| | 132785 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 132786 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 132787 | .patterns = &.{ |
| | 132788 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 132789 | }, |
| | 132790 | .extra_temps = .{ |
| | 132791 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 132792 | .unused, |
| | 132793 | .unused, |
| | 132794 | .unused, |
| | 132795 | .unused, |
| | 132796 | .unused, |
| | 132797 | .unused, |
| | 132798 | .unused, |
| | 132799 | .unused, |
| | 132800 | .unused, |
| | 132801 | .unused, |
| | 132802 | }, |
| | 132803 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 132804 | .each = .{ .once = &.{ |
| | 132805 | .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ }, |
| | 132806 | .{ ._, .v_sd, .mul, .dst0x, .src0x, .tmp0x, ._ }, |
| | 132807 | } }, |
| | 132808 | }, .{ |
| | 132809 | .required_features = .{ .sse2, null, null, null }, |
| | 132810 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| | 132811 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 132812 | .patterns = &.{ |
| | 132813 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 132814 | }, |
| | 132815 | .extra_temps = .{ |
| | 132816 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 132817 | .unused, |
| | 132818 | .unused, |
| | 132819 | .unused, |
| | 132820 | .unused, |
| | 132821 | .unused, |
| | 132822 | .unused, |
| | 132823 | .unused, |
| | 132824 | .unused, |
| | 132825 | .unused, |
| | 132826 | .unused, |
| | 132827 | }, |
| | 132828 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 132829 | .each = .{ .once = &.{ |
| | 132830 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 132831 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| | 132832 | .{ ._, ._sd, .mul, .dst0x, .tmp0x, ._, ._ }, |
| 131147 | } }, | 132833 | } }, |
| 131148 | }, .{ | 132834 | }, .{ |
| 131149 | .required_features = .{ .avx, null, null, null }, | 132835 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -131168,35 +132854,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131168,35 +132854,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131168 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 132854 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131169 | .each = .{ .once = &.{ | 132855 | .each = .{ .once = &.{ |
| 131170 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, | 132856 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| 131171 | .{ ._, .v_pd, .add, .tmp0x, .src0x, .tmp0x, ._ }, | 132857 | .{ ._, .v_pd, .mul, .tmp0x, .src0x, .tmp0x, ._ }, |
| 131172 | .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ }, | 132858 | .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ }, |
| 131173 | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, | 132859 | .{ ._, .v_sd, .mul, .dst0x, .tmp0x, .dst0x, ._ }, |
| 131174 | } }, | | |
| 131175 | }, .{ | | |
| 131176 | .required_features = .{ .avx, .fast_hops, null, null }, | | |
| 131177 | .dst_constraints = .{ .{ .float = .qword }, .any }, | | |
| 131178 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | | |
| 131179 | .patterns = &.{ | | |
| 131180 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 131181 | }, | | |
| 131182 | .extra_temps = .{ | | |
| 131183 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | | |
| 131184 | .unused, | | |
| 131185 | .unused, | | |
| 131186 | .unused, | | |
| 131187 | .unused, | | |
| 131188 | .unused, | | |
| 131189 | .unused, | | |
| 131190 | .unused, | | |
| 131191 | .unused, | | |
| 131192 | .unused, | | |
| 131193 | .unused, | | |
| 131194 | }, | | |
| 131195 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 131196 | .each = .{ .once = &.{ | | |
| 131197 | .{ ._, .vh_pd, .add, .dst0y, .src0y, .src0y, ._ }, | | |
| 131198 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, | | |
| 131199 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, | | |
| 131200 | } }, | 132860 | } }, |
| 131201 | }, .{ | 132861 | }, .{ |
| 131202 | .required_features = .{ .avx, null, null, null }, | 132862 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -131221,9 +132881,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131221,9 +132881,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131221 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 132881 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131222 | .each = .{ .once = &.{ | 132882 | .each = .{ .once = &.{ |
| 131223 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, | 132883 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| 131224 | .{ ._, .v_pd, .add, .dst0x, .src0x, .tmp0x, ._ }, | 132884 | .{ ._, .v_pd, .mul, .dst0x, .src0x, .tmp0x, ._ }, |
| 131225 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, | 132885 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| 131226 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, | 132886 | .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131227 | } }, | 132887 | } }, |
| 131228 | }, .{ | 132888 | }, .{ |
| 131229 | .required_features = .{ .avx512f, null, null, null }, | 132889 | .required_features = .{ .avx512f, null, null, null }, |
| ... | @@ -131235,6 +132895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131235,6 +132895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131235 | .extra_temps = .{ | 132895 | .extra_temps = .{ |
| 131236 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 132896 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 131237 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, | 132897 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 132898 | .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| 131238 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | 132899 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 131239 | .unused, | 132900 | .unused, |
| 131240 | .unused, | 132901 | .unused, |
| ... | @@ -131243,20 +132904,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131243,20 +132904,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131243 | .unused, | 132904 | .unused, |
| 131244 | .unused, | 132905 | .unused, |
| 131245 | .unused, | 132906 | .unused, |
| 131246 | .unused, | | |
| 131247 | }, | 132907 | }, |
| 131248 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 132908 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131249 | .each = .{ .once = &.{ | 132909 | .each = .{ .once = &.{ |
| 131250 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 132910 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131251 | .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ }, | 132911 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 131252 | .{ ._, .v_pd, .mova, .tmp2y, .memd(.src0y, 32), ._, ._ }, | 132912 | .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ }, |
| 131253 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ }, | 132913 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 131254 | .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ }, | 132914 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ }, |
| 131255 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ }, | 132915 | .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ }, |
| 131256 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, | 132916 | .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 131257 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, | 132917 | .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ }, |
| 131258 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, | 132918 | .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| 131259 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ }, | 132919 | .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| | 132920 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| | 132921 | .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ }, |
| | 132922 | .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| 131260 | } }, | 132923 | } }, |
| 131261 | }, .{ | 132924 | }, .{ |
| 131262 | .required_features = .{ .avx512f, null, null, null }, | 132925 | .required_features = .{ .avx512f, null, null, null }, |
| ... | @@ -131282,43 +132945,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131282,43 +132945,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131282 | .each = .{ .once = &.{ | 132945 | .each = .{ .once = &.{ |
| 131283 | .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ }, | 132946 | .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 131284 | .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ }, | 132947 | .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ }, |
| 131285 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp0y, ._ }, | 132948 | .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp0y, ._ }, |
| 131286 | .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, | 132949 | .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 131287 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp0x, ._ }, | 132950 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131288 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, | 132951 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| 131289 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, | 132952 | .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131290 | } }, | | |
| 131291 | }, .{ | | |
| 131292 | .required_features = .{ .avx, .fast_hops, null, null }, | | |
| 131293 | .dst_constraints = .{ .{ .float = .qword }, .any }, | | |
| 131294 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | | |
| 131295 | .patterns = &.{ | | |
| 131296 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 131297 | }, | | |
| 131298 | .extra_temps = .{ | | |
| 131299 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 131300 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | | |
| 131301 | .unused, | | |
| 131302 | .unused, | | |
| 131303 | .unused, | | |
| 131304 | .unused, | | |
| 131305 | .unused, | | |
| 131306 | .unused, | | |
| 131307 | .unused, | | |
| 131308 | .unused, | | |
| 131309 | .unused, | | |
| 131310 | }, | | |
| 131311 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 131312 | .clobbers = .{ .eflags = true }, | | |
| 131313 | .each = .{ .once = &.{ | | |
| 131314 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, | | |
| 131315 | .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, | | |
| 131316 | .{ .@"0:", .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, | | |
| 131317 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, | | |
| 131318 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | | |
| 131319 | .{ ._, .vh_pd, .add, .dst0y, .dst0y, .dst0y, ._ }, | | |
| 131320 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, | | |
| 131321 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp1x, ._ }, | | |
| 131322 | } }, | 132953 | } }, |
| 131323 | }, .{ | 132954 | }, .{ |
| 131324 | .required_features = .{ .avx, null, null, null }, | 132955 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -131345,43 +132976,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131345,43 +132976,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131345 | .each = .{ .once = &.{ | 132976 | .each = .{ .once = &.{ |
| 131346 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, | 132977 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 131347 | .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, | 132978 | .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| 131348 | .{ .@"0:", .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, | 132979 | .{ .@"0:", .v_pd, .mul, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 131349 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, | 132980 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 131350 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 132981 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131351 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, | 132982 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 131352 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ }, | 132983 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| 131353 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, | 132984 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, |
| 131354 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ }, | 132985 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| 131355 | } }, | | |
| 131356 | }, .{ | | |
| 131357 | .required_features = .{ .sse3, .fast_hops, null, null }, | | |
| 131358 | .dst_constraints = .{ .{ .float = .qword }, .any }, | | |
| 131359 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 131360 | .patterns = &.{ | | |
| 131361 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 131362 | }, | | |
| 131363 | .extra_temps = .{ | | |
| 131364 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 131365 | .unused, | | |
| 131366 | .unused, | | |
| 131367 | .unused, | | |
| 131368 | .unused, | | |
| 131369 | .unused, | | |
| 131370 | .unused, | | |
| 131371 | .unused, | | |
| 131372 | .unused, | | |
| 131373 | .unused, | | |
| 131374 | .unused, | | |
| 131375 | }, | | |
| 131376 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 131377 | .clobbers = .{ .eflags = true }, | | |
| 131378 | .each = .{ .once = &.{ | | |
| 131379 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, | | |
| 131380 | .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, | | |
| 131381 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, | | |
| 131382 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, | | |
| 131383 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | | |
| 131384 | .{ ._, .h_pd, .add, .dst0x, .dst0x, ._, ._ }, | | |
| 131385 | } }, | 132986 | } }, |
| 131386 | }, .{ | 132987 | }, .{ |
| 131387 | .required_features = .{ .sse2, null, null, null }, | 132988 | .required_features = .{ .sse2, null, null, null }, |
| ... | @@ -131408,12 +133009,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131408,12 +133009,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131408 | .each = .{ .once = &.{ | 133009 | .each = .{ .once = &.{ |
| 131409 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, | 133010 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131410 | .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, | 133011 | .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 131411 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, | 133012 | .{ .@"0:", ._pd, .mul, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131412 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, | 133013 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131413 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 133014 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131414 | .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 133015 | .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 131415 | .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ }, | 133016 | .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ }, |
| 131416 | .{ ._, ._sd, .add, .dst0x, .tmp1x, ._, ._ }, | 133017 | .{ ._, ._sd, .mul, .dst0x, .tmp1x, ._, ._ }, |
| 131417 | } }, | 133018 | } }, |
| 131418 | }, .{ | 133019 | }, .{ |
| 131419 | .required_features = .{ .avx512f, null, null, null }, | 133020 | .required_features = .{ .avx512f, null, null, null }, |
| ... | @@ -131425,6 +133026,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131425,6 +133026,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131425 | .extra_temps = .{ | 133026 | .extra_temps = .{ |
| 131426 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 133027 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131427 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, | 133028 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 133029 | .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| 131428 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | 133030 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| 131429 | .unused, | 133031 | .unused, |
| 131430 | .unused, | 133032 | .unused, |
| ... | @@ -131433,60 +133035,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131433,60 +133035,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131433 | .unused, | 133035 | .unused, |
| 131434 | .unused, | 133036 | .unused, |
| 131435 | .unused, | 133037 | .unused, |
| 131436 | .unused, | | |
| 131437 | }, | 133038 | }, |
| 131438 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 133039 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131439 | .clobbers = .{ .eflags = true }, | 133040 | .clobbers = .{ .eflags = true }, |
| 131440 | .each = .{ .once = &.{ | 133041 | .each = .{ .once = &.{ |
| 131441 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 133042 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131442 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, | 133043 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 131443 | .{ ._, .v_pd, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, | 133044 | .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ }, |
| 131444 | .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ }, | 133045 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 131445 | .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ }, | 133046 | .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ }, |
| 131446 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, | 133047 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, |
| 131447 | .{ .@"0:", .v_pd, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ }, | 133048 | .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 131448 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, | 133049 | .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ }, |
| | 133050 | .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ }, |
| | 133051 | .{ .@"0:", .v_pd, .mul, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ }, |
| | 133052 | .{ ._, .v_pd, .mul, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 131449 | .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ }, | 133053 | .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ }, |
| 131450 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 133054 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131451 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ }, | 133055 | .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| 131452 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, | 133056 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| 131453 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, | 133057 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| 131454 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, | 133058 | .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ }, |
| 131455 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ }, | 133059 | .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| 131456 | } }, | | |
| 131457 | }, .{ | | |
| 131458 | .required_features = .{ .avx, .fast_hops, null, null }, | | |
| 131459 | .dst_constraints = .{ .{ .float = .qword }, .any }, | | |
| 131460 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | | |
| 131461 | .patterns = &.{ | | |
| 131462 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 131463 | }, | | |
| 131464 | .extra_temps = .{ | | |
| 131465 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 131466 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, | | |
| 131467 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | | |
| 131468 | .unused, | | |
| 131469 | .unused, | | |
| 131470 | .unused, | | |
| 131471 | .unused, | | |
| 131472 | .unused, | | |
| 131473 | .unused, | | |
| 131474 | .unused, | | |
| 131475 | .unused, | | |
| 131476 | }, | | |
| 131477 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 131478 | .clobbers = .{ .eflags = true }, | | |
| 131479 | .each = .{ .once = &.{ | | |
| 131480 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | | |
| 131481 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, | | |
| 131482 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, | | |
| 131483 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, | | |
| 131484 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, | | |
| 131485 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, | | |
| 131486 | .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, | | |
| 131487 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, | | |
| 131488 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | | |
| 131489 | .{ ._, .vh_pd, .add, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 131490 | } }, | 133060 | } }, |
| 131491 | }, .{ | 133061 | }, .{ |
| 131492 | .required_features = .{ .avx, null, null, null }, | 133062 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -131498,6 +133068,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131498,6 +133068,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131498 | .extra_temps = .{ | 133068 | .extra_temps = .{ |
| 131499 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 133069 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131500 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, | 133070 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 133071 | .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| 131501 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | 133072 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131502 | .unused, | 133073 | .unused, |
| 131503 | .unused, | 133074 | .unused, |
| ... | @@ -131506,54 +133077,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131506,54 +133077,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131506 | .unused, | 133077 | .unused, |
| 131507 | .unused, | 133078 | .unused, |
| 131508 | .unused, | 133079 | .unused, |
| 131509 | .unused, | | |
| 131510 | }, | 133080 | }, |
| 131511 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 133081 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131512 | .clobbers = .{ .eflags = true }, | 133082 | .clobbers = .{ .eflags = true }, |
| 131513 | .each = .{ .once = &.{ | 133083 | .each = .{ .once = &.{ |
| 131514 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 133084 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131515 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, | 133085 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 131516 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, | 133086 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 131517 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, | 133087 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 131518 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, | 133088 | .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 131519 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, | 133089 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 131520 | .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, | 133090 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| 131521 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, | 133091 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| 131522 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 133092 | .{ .@"0:", .v_pd, .mul, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 131523 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, | | |
| 131524 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, | | |
| 131525 | } }, | | |
| 131526 | }, .{ | | |
| 131527 | .required_features = .{ .sse3, .fast_hops, null, null }, | | |
| 131528 | .dst_constraints = .{ .{ .float = .qword }, .any }, | | |
| 131529 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 131530 | .patterns = &.{ | | |
| 131531 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 131532 | }, | | |
| 131533 | .extra_temps = .{ | | |
| 131534 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 131535 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, | | |
| 131536 | .unused, | | |
| 131537 | .unused, | | |
| 131538 | .unused, | | |
| 131539 | .unused, | | |
| 131540 | .unused, | | |
| 131541 | .unused, | | |
| 131542 | .unused, | | |
| 131543 | .unused, | | |
| 131544 | .unused, | | |
| 131545 | }, | | |
| 131546 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 131547 | .clobbers = .{ .eflags = true }, | | |
| 131548 | .each = .{ .once = &.{ | | |
| 131549 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | | |
| 131550 | .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, | | |
| 131551 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, | | |
| 131552 | .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, | | |
| 131553 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, | | |
| 131554 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, | 133093 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131555 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 133094 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131556 | .{ ._, .h_pd, .add, .dst0x, .dst0x, ._, ._ }, | 133095 | .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ }, |
| | 133096 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| 131557 | } }, | 133097 | } }, |
| 131558 | }, .{ | 133098 | }, .{ |
| 131559 | .required_features = .{ .sse2, null, null, null }, | 133099 | .required_features = .{ .sse2, null, null, null }, |
| ... | @@ -131565,6 +133105,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131565,6 +133105,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131565 | .extra_temps = .{ | 133105 | .extra_temps = .{ |
| 131566 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 133106 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131567 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, | 133107 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| | 133108 | .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } }, |
| 131568 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | 133109 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131569 | .unused, | 133110 | .unused, |
| 131570 | .unused, | 133111 | .unused, |
| ... | @@ -131573,21 +133114,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131573,21 +133114,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131573 | .unused, | 133114 | .unused, |
| 131574 | .unused, | 133115 | .unused, |
| 131575 | .unused, | 133116 | .unused, |
| 131576 | .unused, | | |
| 131577 | }, | 133117 | }, |
| 131578 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 133118 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131579 | .clobbers = .{ .eflags = true }, | 133119 | .clobbers = .{ .eflags = true }, |
| 131580 | .each = .{ .once = &.{ | 133120 | .each = .{ .once = &.{ |
| 131581 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 133121 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131582 | .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, | 133122 | .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 131583 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, | 133123 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 131584 | .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, | 133124 | .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| 131585 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, | 133125 | .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 133126 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| | 133127 | .{ .@"0:", ._pd, .mul, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131586 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, | 133128 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131587 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 133129 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131588 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, | 133130 | .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| 131589 | .{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ }, | 133131 | .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ }, |
| 131590 | .{ ._, ._pd, .add, .dst0x, .tmp2x, ._, ._ }, | 133132 | .{ ._, ._pd, .mul, .dst0x, .tmp3x, ._, ._ }, |
| 131591 | } }, | 133133 | } }, |
| 131592 | }, .{ | 133134 | }, .{ |
| 131593 | .required_features = .{ .x87, null, null, null }, | 133135 | .required_features = .{ .x87, null, null, null }, |
| ... | @@ -131614,7 +133156,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131614,7 +133156,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131614 | .each = .{ .once = &.{ | 133156 | .each = .{ .once = &.{ |
| 131615 | .{ ._, ._, .mov, .tmp0p, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, | 133157 | .{ ._, ._, .mov, .tmp0p, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 131616 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, | 133158 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, |
| 131617 | .{ .@"0:", .f_, .add, .memi(.src0q, .tmp0), ._, ._, ._ }, | 133159 | .{ .@"0:", .f_, .mul, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 131618 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, | 133160 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, |
| 131619 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 133161 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131620 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 133162 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| ... | @@ -131645,7 +133187,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131645,7 +133187,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131645 | .{ ._, ._, .mov, .tmp0p, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, | 133187 | .{ ._, ._, .mov, .tmp0p, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131646 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, | 133188 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, |
| 131647 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, | 133189 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, |
| 131648 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, | 133190 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, |
| 131649 | .{ ._, ._, .sub, .tmp0p, .si(16), ._, ._ }, | 133191 | .{ ._, ._, .sub, .tmp0p, .si(16), ._, ._ }, |
| 131650 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 133192 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131651 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 133193 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| ... | @@ -131661,7 +133203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131661,7 +133203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131661 | .extra_temps = .{ | 133203 | .extra_temps = .{ |
| 131662 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 133204 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131663 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | 133205 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131664 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, | 133206 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, |
| 131665 | .unused, | 133207 | .unused, |
| 131666 | .unused, | 133208 | .unused, |
| 131667 | .unused, | 133209 | .unused, |
| ... | @@ -131692,7 +133234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131692,7 +133234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131692 | .extra_temps = .{ | 133234 | .extra_temps = .{ |
| 131693 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 133235 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131694 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | 133236 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131695 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, | 133237 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, |
| 131696 | .unused, | 133238 | .unused, |
| 131697 | .unused, | 133239 | .unused, |
| 131698 | .unused, | 133240 | .unused, |
| ... | @@ -131723,7 +133265,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131723,7 +133265,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131723 | .extra_temps = .{ | 133265 | .extra_temps = .{ |
| 131724 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 133266 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131725 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | 133267 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131726 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, | 133268 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, |
| 131727 | .unused, | 133269 | .unused, |
| 131728 | .unused, | 133270 | .unused, |
| 131729 | .unused, | 133271 | .unused, |
| ... | @@ -131744,7 +133286,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -131744,7 +133286,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131744 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, | 133286 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131745 | } }, | 133287 | } }, |
| 131746 | } }, | 133288 | } }, |
| 131747 | .Mul => unreachable, | | |
| 131748 | }) catch |err| switch (err) { | 133289 | }) catch |err| switch (err) { |
| 131749 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ | 133290 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 131750 | @tagName(air_tag), | 133291 | @tagName(air_tag), |
| ... | @@ -149031,7 +150572,7 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C | ... | @@ -149031,7 +150572,7 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C |
| 149031 | } else if (self.hasFeature(.sse4_1)) { | 150572 | } else if (self.hasFeature(.sse4_1)) { |
| 149032 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128()); | 150573 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128()); |
| 149033 | try self.asmRegisterRegisterImmediate(.{ .p_q, .extr }, dst_regs[1].to64(), src_reg.to128(), .u(1)); | 150574 | try self.asmRegisterRegisterImmediate(.{ .p_q, .extr }, dst_regs[1].to64(), src_reg.to128(), .u(1)); |
| 149034 | } else { | 150575 | } else if (self.hasFeature(.sse2)) { |
| 149035 | const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse); | 150576 | const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse); |
| 149036 | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); | 150577 | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); |
| 149037 | defer self.register_manager.unlockReg(tmp_lock); | 150578 | defer self.register_manager.unlockReg(tmp_lock); |
| ... | @@ -149039,6 +150580,19 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C | ... | @@ -149039,6 +150580,19 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C |
| 149039 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128()); | 150580 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128()); |
| 149040 | try self.asmRegisterRegister(.{ ._ps, .movhl }, tmp_reg.to128(), src_reg.to128()); | 150581 | try self.asmRegisterRegister(.{ ._ps, .movhl }, tmp_reg.to128(), src_reg.to128()); |
| 149041 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[1].to64(), tmp_reg.to128()); | 150582 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[1].to64(), tmp_reg.to128()); |
| | 150583 | } else { |
| | 150584 | const frame_index = try self.allocFrameIndex(.init(.{ |
| | 150585 | .size = 16, |
| | 150586 | .alignment = .@"16", |
| | 150587 | })); |
| | 150588 | try self.asmMemoryRegister(.{ ._ps, .mova }, .{ |
| | 150589 | .base = .{ .frame = frame_index }, |
| | 150590 | .mod = .{ .rm = .{ .size = .xword } }, |
| | 150591 | }, src_reg.to128()); |
| | 150592 | for (dst_regs, 0..) |dst_reg, dst_index| try self.asmRegisterMemory(.{ ._, .mov }, dst_reg.to64(), .{ |
| | 150593 | .base = .{ .frame = frame_index }, |
| | 150594 | .mod = .{ .rm = .{ .size = .qword, .disp = @intCast(8 * dst_index) } }, |
| | 150595 | }); |
| 149042 | } | 150596 | } |
| 149043 | return; | 150597 | return; |
| 149044 | } else unreachable, | 150598 | } else unreachable, |
| ... | @@ -149282,7 +150836,7 @@ fn genSetReg( | ... | @@ -149282,7 +150836,7 @@ fn genSetReg( |
| 149282 | }, | 150836 | }, |
| 149283 | ), | 150837 | ), |
| 149284 | .x87 => switch (src_reg.class()) { | 150838 | .x87 => switch (src_reg.class()) { |
| 149285 | .general_purpose, .gphi, .segment => unreachable, | 150839 | .general_purpose, .gphi, .segment, .mmx, .ip, .cr, .dr => unreachable, |
| 149286 | .x87 => switch (src_reg) { | 150840 | .x87 => switch (src_reg) { |
| 149287 | .st0 => try self.asmRegister(.{ .f_, .st }, dst_reg), | 150841 | .st0 => try self.asmRegister(.{ .f_, .st }, dst_reg), |
| 149288 | .st1, .st2, .st3, .st4, .st5, .st6 => switch (dst_reg) { | 150842 | .st1, .st2, .st3, .st4, .st5, .st6 => switch (dst_reg) { |
| ... | @@ -149307,7 +150861,25 @@ fn genSetReg( | ... | @@ -149307,7 +150861,25 @@ fn genSetReg( |
| 149307 | }, | 150861 | }, |
| 149308 | else => unreachable, | 150862 | else => unreachable, |
| 149309 | }, | 150863 | }, |
| 149310 | .mmx, .sse, .ip, .cr, .dr => unreachable, | 150864 | .sse => if (abi_size <= 16) { |
| | 150865 | const frame_index = try self.allocFrameIndex(.init(.{ |
| | 150866 | .size = 16, |
| | 150867 | .alignment = .@"16", |
| | 150868 | })); |
| | 150869 | try self.asmMemoryRegister(if (self.hasFeature(.avx)) |
| | 150870 | .{ .v_dqa, .mov } |
| | 150871 | else if (self.hasFeature(.sse2)) |
| | 150872 | .{ ._dqa, .mov } |
| | 150873 | else |
| | 150874 | .{ ._ps, .mova }, .{ |
| | 150875 | .base = .{ .frame = frame_index }, |
| | 150876 | .mod = .{ .rm = .{ .size = .xword } }, |
| | 150877 | }, src_reg.to128()); |
| | 150878 | try MoveStrategy.read(.load_store_x87, self, dst_reg, .{ |
| | 150879 | .base = .{ .frame = frame_index }, |
| | 150880 | .mod = .{ .rm = .{ .size = .tbyte } }, |
| | 150881 | }); |
| | 150882 | } else unreachable, |
| 149311 | }, | 150883 | }, |
| 149312 | .mmx => unreachable, | 150884 | .mmx => unreachable, |
| 149313 | .sse => switch (src_reg.class()) { | 150885 | .sse => switch (src_reg.class()) { |
| ... | @@ -149349,7 +150921,7 @@ fn genSetReg( | ... | @@ -149349,7 +150921,7 @@ fn genSetReg( |
| 149349 | .{ .register = try self.copyToTmpRegister(ty, src_mcv) }, | 150921 | .{ .register = try self.copyToTmpRegister(ty, src_mcv) }, |
| 149350 | opts, | 150922 | opts, |
| 149351 | ), | 150923 | ), |
| 149352 | .x87 => { | 150924 | .x87 => if (abi_size <= 16) { |
| 149353 | const frame_index = try self.allocFrameIndex(.init(.{ | 150925 | const frame_index = try self.allocFrameIndex(.init(.{ |
| 149354 | .size = 16, | 150926 | .size = 16, |
| 149355 | .alignment = .@"16", | 150927 | .alignment = .@"16", |
| ... | @@ -149367,7 +150939,7 @@ fn genSetReg( | ... | @@ -149367,7 +150939,7 @@ fn genSetReg( |
| 149367 | .base = .{ .frame = frame_index }, | 150939 | .base = .{ .frame = frame_index }, |
| 149368 | .mod = .{ .rm = .{ .size = .xword } }, | 150940 | .mod = .{ .rm = .{ .size = .xword } }, |
| 149369 | }); | 150941 | }); |
| 149370 | }, | 150942 | } else unreachable, |
| 149371 | .mmx, .ip, .cr, .dr => unreachable, | 150943 | .mmx, .ip, .cr, .dr => unreachable, |
| 149372 | .sse => try self.asmRegisterRegister( | 150944 | .sse => try self.asmRegisterRegister( |
| 149373 | @as(?Mir.Inst.FixedTag, switch (ty.scalarType(zcu).zigTypeTag(zcu)) { | 150945 | @as(?Mir.Inst.FixedTag, switch (ty.scalarType(zcu).zigTypeTag(zcu)) { |
| ... | @@ -149431,7 +151003,7 @@ fn genSetReg( | ... | @@ -149431,7 +151003,7 @@ fn genSetReg( |
| 149431 | } else if (self.hasFeature(.sse4_1)) { | 151003 | } else if (self.hasFeature(.sse4_1)) { |
| 149432 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64()); | 151004 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64()); |
| 149433 | try self.asmRegisterRegisterImmediate(.{ .p_q, .insr }, dst_reg.to128(), src_regs[1].to64(), .u(1)); | 151005 | try self.asmRegisterRegisterImmediate(.{ .p_q, .insr }, dst_reg.to128(), src_regs[1].to64(), .u(1)); |
| 149434 | } else { | 151006 | } else if (self.hasFeature(.sse2)) { |
| 149435 | const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse); | 151007 | const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse); |
| 149436 | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); | 151008 | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); |
| 149437 | defer self.register_manager.unlockReg(tmp_lock); | 151009 | defer self.register_manager.unlockReg(tmp_lock); |
| ... | @@ -149439,6 +151011,19 @@ fn genSetReg( | ... | @@ -149439,6 +151011,19 @@ fn genSetReg( |
| 149439 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64()); | 151011 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64()); |
| 149440 | try self.asmRegisterRegister(.{ ._q, .mov }, tmp_reg.to128(), src_regs[1].to64()); | 151012 | try self.asmRegisterRegister(.{ ._q, .mov }, tmp_reg.to128(), src_regs[1].to64()); |
| 149441 | try self.asmRegisterRegister(.{ ._ps, .movlh }, dst_reg.to128(), tmp_reg.to128()); | 151013 | try self.asmRegisterRegister(.{ ._ps, .movlh }, dst_reg.to128(), tmp_reg.to128()); |
| | 151014 | } else { |
| | 151015 | const frame_index = try self.allocFrameIndex(.init(.{ |
| | 151016 | .size = 16, |
| | 151017 | .alignment = .@"16", |
| | 151018 | })); |
| | 151019 | for (src_regs, 0..) |src_reg, src_index| try self.asmMemoryRegister(.{ ._, .mov }, .{ |
| | 151020 | .base = .{ .frame = frame_index }, |
| | 151021 | .mod = .{ .rm = .{ .size = .qword, .disp = @intCast(8 * src_index) } }, |
| | 151022 | }, src_reg.to64()); |
| | 151023 | try self.asmRegisterMemory(.{ ._ps, .mova }, dst_reg.to128(), .{ |
| | 151024 | .base = .{ .frame = frame_index }, |
| | 151025 | .mod = .{ .rm = .{ .size = .xword } }, |
| | 151026 | }); |
| 149442 | } | 151027 | } |
| 149443 | } else unreachable, | 151028 | } else unreachable, |
| 149444 | else => unreachable, | 151029 | else => unreachable, |
| ... | @@ -149746,11 +151331,18 @@ fn genSetMem( | ... | @@ -149746,11 +151331,18 @@ fn genSetMem( |
| 149746 | }, | 151331 | }, |
| 149747 | else => abi_size, | 151332 | else => abi_size, |
| 149748 | }; | 151333 | }; |
| 149749 | const src_alias = registerAlias(src_reg, abi_size); | 151334 | const src_alias = registerAlias(src_reg, @intCast(self.unalignedSize(ty))); |
| 149750 | const src_size: u32 = @intCast(switch (src_alias.class()) { | 151335 | const src_class = src_alias.class(); |
| 149751 | .general_purpose, .gphi, .segment, .x87, .ip, .cr, .dr => @divExact(src_alias.bitSize(), 8), | 151336 | const src_size: u32 = switch (src_class) { |
| | 151337 | .general_purpose, .gphi, .segment, .ip, .cr, .dr => @intCast(@divExact(src_alias.bitSize(), 8)), |
| 149752 | .mmx, .sse => abi_size, | 151338 | .mmx, .sse => abi_size, |
| 149753 | }); | 151339 | .x87 => switch (abi.classifySystemV(ty, zcu, self.target, .other)[0]) { |
| | 151340 | else => unreachable, |
| | 151341 | .float, .float_combine => 4, |
| | 151342 | .sse => 8, |
| | 151343 | .x87 => 10, |
| | 151344 | }, |
| | 151345 | }; |
| 149754 | const src_align: InternPool.Alignment = .fromNonzeroByteUnits( | 151346 | const src_align: InternPool.Alignment = .fromNonzeroByteUnits( |
| 149755 | std.math.ceilPowerOfTwoAssert(u32, src_size), | 151347 | std.math.ceilPowerOfTwoAssert(u32, src_size), |
| 149756 | ); | 151348 | ); |
| ... | @@ -149760,7 +151352,7 @@ fn genSetMem( | ... | @@ -149760,7 +151352,7 @@ fn genSetMem( |
| 149760 | .alignment = src_align, | 151352 | .alignment = src_align, |
| 149761 | })); | 151353 | })); |
| 149762 | const frame_mcv: MCValue = .{ .load_frame = .{ .index = frame_index } }; | 151354 | const frame_mcv: MCValue = .{ .load_frame = .{ .index = frame_index } }; |
| 149763 | try (try self.moveStrategy(ty, src_alias.class(), true)).write( | 151355 | try (try self.moveStrategy(ty, src_class, true)).write( |
| 149764 | self, | 151356 | self, |
| 149765 | .{ .base = .{ .frame = frame_index }, .mod = .{ .rm = .{ | 151357 | .{ .base = .{ .frame = frame_index }, .mod = .{ .rm = .{ |
| 149766 | .size = .fromSize(src_size), | 151358 | .size = .fromSize(src_size), |
| ... | @@ -149769,7 +151361,7 @@ fn genSetMem( | ... | @@ -149769,7 +151361,7 @@ fn genSetMem( |
| 149769 | ); | 151361 | ); |
| 149770 | try self.genSetMem(base, disp, ty, frame_mcv, opts); | 151362 | try self.genSetMem(base, disp, ty, frame_mcv, opts); |
| 149771 | try self.freeValue(frame_mcv); | 151363 | try self.freeValue(frame_mcv); |
| 149772 | } else try (try self.moveStrategy(ty, src_alias.class(), switch (base) { | 151364 | } else try (try self.moveStrategy(ty, src_class, switch (base) { |
| 149773 | .none => src_align.check(@as(u32, @bitCast(disp))), | 151365 | .none => src_align.check(@as(u32, @bitCast(disp))), |
| 149774 | .reg => |reg| switch (reg) { | 151366 | .reg => |reg| switch (reg) { |
| 149775 | .es, .cs, .ss, .ds => src_align.check(@as(u32, @bitCast(disp))), | 151367 | .es, .cs, .ss, .ds => src_align.check(@as(u32, @bitCast(disp))), |
| ... | @@ -154146,7 +155738,7 @@ fn registerAlias(reg: Register, size_bytes: u32) Register { | ... | @@ -154146,7 +155738,7 @@ fn registerAlias(reg: Register, size_bytes: u32) Register { |
| 154146 | reg | 155738 | reg |
| 154147 | else | 155739 | else |
| 154148 | unreachable, | 155740 | unreachable, |
| 154149 | .x87 => if (size_bytes >= 10 and size_bytes <= 16) | 155741 | .x87 => if (size_bytes >= 4 and size_bytes <= 16) |
| 154150 | reg | 155742 | reg |
| 154151 | else | 155743 | else |
| 154152 | unreachable, | 155744 | unreachable, |
| ... | @@ -154433,7 +156025,10 @@ fn promoteVarArg(self: *CodeGen, ty: Type) Type { | ... | @@ -154433,7 +156025,10 @@ fn promoteVarArg(self: *CodeGen, ty: Type) Type { |
| 154433 | fn unalignedSize(cg: *CodeGen, ty: Type) u64 { | 156025 | fn unalignedSize(cg: *CodeGen, ty: Type) u64 { |
| 154434 | const zcu = cg.pt.zcu; | 156026 | const zcu = cg.pt.zcu; |
| 154435 | return switch (zcu.intern_pool.indexToKey(ty.toIntern())) { | 156027 | return switch (zcu.intern_pool.indexToKey(ty.toIntern())) { |
| 154436 | .vector_type => |vector_type| Type.fromInterned(vector_type.child).abiSize(zcu) * vector_type.len, | 156028 | .vector_type => |vector_type| switch (vector_type.child) { |
| | 156029 | .bool_type => ty.abiSize(zcu), |
| | 156030 | else => Type.fromInterned(vector_type.child).abiSize(zcu) * vector_type.len, |
| | 156031 | }, |
| 154437 | else => ty.abiSize(zcu), | 156032 | else => ty.abiSize(zcu), |
| 154438 | }; | 156033 | }; |
| 154439 | } | 156034 | } |
| ... | @@ -155222,7 +156817,7 @@ const Temp = struct { | ... | @@ -155222,7 +156817,7 @@ const Temp = struct { |
| 155222 | else => |mcv| std.debug.panic("{s}: {}\n", .{ @src().fn_name, mcv }), | 156817 | else => |mcv| std.debug.panic("{s}: {}\n", .{ @src().fn_name, mcv }), |
| 155223 | .register => |val_reg| try src.readReg(opts.disp, val_ty, registerAlias( | 156818 | .register => |val_reg| try src.readReg(opts.disp, val_ty, registerAlias( |
| 155224 | val_reg, | 156819 | val_reg, |
| 155225 | @intCast(val_ty.abiSize(cg.pt.zcu)), | 156820 | @intCast(cg.unalignedSize(val_ty)), |
| 155226 | ), cg), | 156821 | ), cg), |
| 155227 | inline .register_pair, .register_triple, .register_quadruple => |val_regs| { | 156822 | inline .register_pair, .register_triple, .register_quadruple => |val_regs| { |
| 155228 | var disp = opts.disp; | 156823 | var disp = opts.disp; |
| ... | @@ -160731,8 +162326,8 @@ const Select = struct { | ... | @@ -160731,8 +162326,8 @@ const Select = struct { |
| 160731 | pand_mask_mem: struct { ref: Select.Operand.Ref, invert: bool = false }, | 162326 | pand_mask_mem: struct { ref: Select.Operand.Ref, invert: bool = false }, |
| 160732 | ptest_mask_mem: Select.Operand.Ref, | 162327 | ptest_mask_mem: Select.Operand.Ref, |
| 160733 | pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 }, | 162328 | pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 }, |
| 160734 | forward_bits_mem, | 162329 | bits_mem: enum { forward, reverse }, |
| 160735 | reverse_bits_mem, | 162330 | splat_float_mem: struct { ref: Select.Operand.Ref, val: f16, fill: enum { inside, outside } = .inside }, |
| 160736 | frame: FrameIndex, | 162331 | frame: FrameIndex, |
| 160737 | lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none }, | 162332 | lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none }, |
| 160738 | symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, | 162333 | symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, |
| ... | @@ -161051,11 +162646,11 @@ const Select = struct { | ... | @@ -161051,11 +162646,11 @@ const Select = struct { |
| 161051 | .pand_mask_mem => |mask_spec| { | 162646 | .pand_mask_mem => |mask_spec| { |
| 161052 | const zcu = pt.zcu; | 162647 | const zcu = pt.zcu; |
| 161053 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); | 162648 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); |
| 161054 | const ty = mask_spec.ref.typeOf(s); | 162649 | const ref_ty = mask_spec.ref.typeOf(s); |
| 161055 | assert(ty.isVector(zcu)); | 162650 | assert(ref_ty.isVector(zcu)); |
| 161056 | var elem_buf: [64]u8 = undefined; | 162651 | var elem_buf: [64]u8 = undefined; |
| 161057 | const elems = elem_buf[0..spec.type.vectorLen(zcu)]; | 162652 | const elems = elem_buf[0..spec.type.vectorLen(zcu)]; |
| 161058 | const mask_len: usize = @intCast(cg.unalignedSize(ty) % elems.len); | 162653 | const mask_len: usize = @intCast((cg.unalignedSize(ref_ty) - 1) % elems.len + 1); |
| 161059 | const invert_mask: u8 = switch (mask_spec.invert) { | 162654 | const invert_mask: u8 = switch (mask_spec.invert) { |
| 161060 | false => std.math.minInt(u8), | 162655 | false => std.math.minInt(u8), |
| 161061 | true => std.math.maxInt(u8), | 162656 | true => std.math.maxInt(u8), |
| ... | @@ -161070,14 +162665,14 @@ const Select = struct { | ... | @@ -161070,14 +162665,14 @@ const Select = struct { |
| 161070 | .ptest_mask_mem => |mask_ref| { | 162665 | .ptest_mask_mem => |mask_ref| { |
| 161071 | const zcu = pt.zcu; | 162666 | const zcu = pt.zcu; |
| 161072 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); | 162667 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); |
| 161073 | const ty = mask_ref.typeOf(s); | 162668 | const ref_ty = mask_ref.typeOf(s); |
| 161074 | assert(ty.isVector(zcu) and ty.childType(zcu).toIntern() == .bool_type); | 162669 | assert(ref_ty.isVector(zcu) and ref_ty.childType(zcu).toIntern() == .bool_type); |
| 161075 | const mask_info = mask_ref.valueOf(s).register_mask.info; | 162670 | const mask_info = mask_ref.valueOf(s).register_mask.info; |
| 161076 | var elem_buf: [64]u8 = @splat(0); | 162671 | var elem_buf: [64]u8 = @splat(0); |
| 161077 | const elems = elem_buf[0..spec.type.vectorLen(zcu)]; | 162672 | const elems = elem_buf[0..spec.type.vectorLen(zcu)]; |
| 161078 | const elem_bytes: u6 = @intCast(@divExact(mask_info.scalar.bitSize(cg.target), 8)); | 162673 | const elem_bytes: u6 = @intCast(@divExact(mask_info.scalar.bitSize(cg.target), 8)); |
| 161079 | var index: u7 = 0; | 162674 | var index: u7 = 0; |
| 161080 | for (0..@intCast(ty.vectorLen(zcu))) |_| { | 162675 | for (0..@intCast(ref_ty.vectorLen(zcu))) |_| { |
| 161081 | switch (mask_info.kind) { | 162676 | switch (mask_info.kind) { |
| 161082 | .sign => { | 162677 | .sign => { |
| 161083 | @memset(elems[index..][0 .. elem_bytes - 1], std.math.minInt(u8)); | 162678 | @memset(elems[index..][0 .. elem_bytes - 1], std.math.minInt(u8)); |
| ... | @@ -161108,21 +162703,42 @@ const Select = struct { | ... | @@ -161108,21 +162703,42 @@ const Select = struct { |
| 161108 | .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, | 162703 | .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, |
| 161109 | } }))), true }; | 162704 | } }))), true }; |
| 161110 | }, | 162705 | }, |
| 161111 | .forward_bits_mem, .reverse_bits_mem => { | 162706 | .bits_mem => |direction| { |
| 161112 | const zcu = pt.zcu; | 162707 | const zcu = pt.zcu; |
| 161113 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); | 162708 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); |
| 161114 | var bytes: [32]u8 = undefined; | 162709 | var bytes: [32]u8 = undefined; |
| 161115 | const elems = bytes[0..spec.type.vectorLen(zcu)]; | 162710 | const elems = bytes[0..spec.type.vectorLen(zcu)]; |
| 161116 | for (elems, 0..) |*elem, index| elem.* = switch (spec.kind) { | 162711 | for (elems, 0..) |*elem, index| elem.* = switch (direction) { |
| 161117 | else => unreachable, | 162712 | .forward => @as(u8, 1 << 0) << @truncate(index), |
| 161118 | .forward_bits_mem => @as(u8, 1 << 0) << @truncate(index), | 162713 | .reverse => @as(u8, 1 << 7) >> @truncate(index), |
| 161119 | .reverse_bits_mem => @as(u8, 1 << 7) >> @truncate(index), | | |
| 161120 | }; | 162714 | }; |
| 161121 | return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ | 162715 | return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ |
| 161122 | .ty = spec.type.toIntern(), | 162716 | .ty = spec.type.toIntern(), |
| 161123 | .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, | 162717 | .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, |
| 161124 | } }))), true }; | 162718 | } }))), true }; |
| 161125 | }, | 162719 | }, |
| | 162720 | .splat_float_mem => |splat_spec| { |
| | 162721 | const zcu = pt.zcu; |
| | 162722 | assert(spec.type.isVector(zcu)); |
| | 162723 | const elem_ty = spec.type.childType(zcu); |
| | 162724 | const ref_ty = splat_spec.ref.typeOf(s); |
| | 162725 | assert(ref_ty.isVector(zcu) and ref_ty.childType(zcu).toIntern() == elem_ty.toIntern()); |
| | 162726 | var elem_buf: [@divExact(64, 2)]InternPool.Index = undefined; |
| | 162727 | const elems = elem_buf[0..spec.type.vectorLen(zcu)]; |
| | 162728 | const inside_len = (ref_ty.vectorLen(zcu) - 1) % elems.len + 1; |
| | 162729 | @memset(elems[0..inside_len], (try pt.floatValue(elem_ty, switch (splat_spec.fill) { |
| | 162730 | .inside => splat_spec.val, |
| | 162731 | .outside => 0.0, |
| | 162732 | })).toIntern()); |
| | 162733 | @memset(elems[inside_len..], (try pt.floatValue(elem_ty, switch (splat_spec.fill) { |
| | 162734 | .inside => 0.0, |
| | 162735 | .outside => splat_spec.val, |
| | 162736 | })).toIntern()); |
| | 162737 | return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ |
| | 162738 | .ty = spec.type.toIntern(), |
| | 162739 | .storage = .{ .elems = elems }, |
| | 162740 | } }))), true }; |
| | 162741 | }, |
| 161126 | .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true }, | 162742 | .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true }, |
| 161127 | .lazy_symbol => |lazy_symbol_spec| { | 162743 | .lazy_symbol => |lazy_symbol_spec| { |
| 161128 | const ip = &pt.zcu.intern_pool; | 162744 | const ip = &pt.zcu.intern_pool; |