| ... | ... | @@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2389 | 2389 | } |
| 2390 | 2390 | |
| 2391 | 2391 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2392 | | @setEvalBranchQuota(23_600); |
| 2392 | @setEvalBranchQuota(23_800); |
| 2393 | 2393 | const pt = cg.pt; |
| 2394 | 2394 | const zcu = pt.zcu; |
| 2395 | 2395 | const ip = &zcu.intern_pool; |
| ... | ... | @@ -68441,7 +68441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68441 | 68441 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68442 | 68442 | }, |
| 68443 | 68443 | .extra_temps = .{ |
| 68444 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 68444 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68445 | 68445 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68446 | 68446 | .unused, |
| 68447 | 68447 | .unused, |
| ... | ... | @@ -68465,7 +68465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68465 | 68465 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68466 | 68466 | }, |
| 68467 | 68467 | .extra_temps = .{ |
| 68468 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 68468 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68469 | 68469 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68470 | 68470 | .unused, |
| 68471 | 68471 | .unused, |
| ... | ... | @@ -68489,7 +68489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68489 | 68489 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68490 | 68490 | }, |
| 68491 | 68491 | .extra_temps = .{ |
| 68492 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68492 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68493 | 68493 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68494 | 68494 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68495 | 68495 | .unused, |
| ... | ... | @@ -68517,7 +68517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68517 | 68517 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68518 | 68518 | }, |
| 68519 | 68519 | .extra_temps = .{ |
| 68520 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68520 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68521 | 68521 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68522 | 68522 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68523 | 68523 | .unused, |
| ... | ... | @@ -68546,7 +68546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68546 | 68546 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68547 | 68547 | }, |
| 68548 | 68548 | .extra_temps = .{ |
| 68549 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68549 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68550 | 68550 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68551 | 68551 | .unused, |
| 68552 | 68552 | .unused, |
| ... | ... | @@ -68575,7 +68575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68575 | 68575 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68576 | 68576 | }, |
| 68577 | 68577 | .extra_temps = .{ |
| 68578 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68578 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68579 | 68579 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68580 | 68580 | .unused, |
| 68581 | 68581 | .unused, |
| ... | ... | @@ -68642,7 +68642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68642 | 68642 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68643 | 68643 | }, |
| 68644 | 68644 | .extra_temps = .{ |
| 68645 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 68645 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68646 | 68646 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68647 | 68647 | .unused, |
| 68648 | 68648 | .unused, |
| ... | ... | @@ -68668,7 +68668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68668 | 68668 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68669 | 68669 | }, |
| 68670 | 68670 | .extra_temps = .{ |
| 68671 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 68671 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68672 | 68672 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68673 | 68673 | .unused, |
| 68674 | 68674 | .unused, |
| ... | ... | @@ -68694,7 +68694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68694 | 68694 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68695 | 68695 | }, |
| 68696 | 68696 | .extra_temps = .{ |
| 68697 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68697 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68698 | 68698 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68699 | 68699 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68700 | 68700 | .unused, |
| ... | ... | @@ -68724,7 +68724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68724 | 68724 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68725 | 68725 | }, |
| 68726 | 68726 | .extra_temps = .{ |
| 68727 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68727 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68728 | 68728 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68729 | 68729 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68730 | 68730 | .unused, |
| ... | ... | @@ -68755,7 +68755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68755 | 68755 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68756 | 68756 | }, |
| 68757 | 68757 | .extra_temps = .{ |
| 68758 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68758 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68759 | 68759 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68760 | 68760 | .unused, |
| 68761 | 68761 | .unused, |
| ... | ... | @@ -68786,7 +68786,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68786 | 68786 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68787 | 68787 | }, |
| 68788 | 68788 | .extra_temps = .{ |
| 68789 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68789 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68790 | 68790 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68791 | 68791 | .unused, |
| 68792 | 68792 | .unused, |
| ... | ... | @@ -68856,7 +68856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68856 | 68856 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68857 | 68857 | }, |
| 68858 | 68858 | .extra_temps = .{ |
| 68859 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 68859 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68860 | 68860 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68861 | 68861 | .unused, |
| 68862 | 68862 | .unused, |
| ... | ... | @@ -68882,7 +68882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68882 | 68882 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68883 | 68883 | }, |
| 68884 | 68884 | .extra_temps = .{ |
| 68885 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 68885 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 68886 | 68886 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 68887 | 68887 | .unused, |
| 68888 | 68888 | .unused, |
| ... | ... | @@ -68908,7 +68908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68908 | 68908 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68909 | 68909 | }, |
| 68910 | 68910 | .extra_temps = .{ |
| 68911 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68911 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68912 | 68912 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68913 | 68913 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68914 | 68914 | .unused, |
| ... | ... | @@ -68938,7 +68938,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68938 | 68938 | .{ .src = .{ .to_sse, .none, .none } }, |
| 68939 | 68939 | }, |
| 68940 | 68940 | .extra_temps = .{ |
| 68941 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68941 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68942 | 68942 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 68943 | 68943 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68944 | 68944 | .unused, |
| ... | ... | @@ -68969,7 +68969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68969 | 68969 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 68970 | 68970 | }, |
| 68971 | 68971 | .extra_temps = .{ |
| 68972 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 68972 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 68973 | 68973 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 68974 | 68974 | .unused, |
| 68975 | 68975 | .unused, |
| ... | ... | @@ -69000,7 +69000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69000 | 69000 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69001 | 69001 | }, |
| 69002 | 69002 | .extra_temps = .{ |
| 69003 | | .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, |
| 69003 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } }, |
| 69004 | 69004 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69005 | 69005 | .unused, |
| 69006 | 69006 | .unused, |
| ... | ... | @@ -69070,7 +69070,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69070 | 69070 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69071 | 69071 | }, |
| 69072 | 69072 | .extra_temps = .{ |
| 69073 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69073 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69074 | 69074 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69075 | 69075 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69076 | 69076 | .unused, |
| ... | ... | @@ -69096,7 +69096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69096 | 69096 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69097 | 69097 | }, |
| 69098 | 69098 | .extra_temps = .{ |
| 69099 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69099 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69100 | 69100 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69101 | 69101 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69102 | 69102 | .unused, |
| ... | ... | @@ -69122,7 +69122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69122 | 69122 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69123 | 69123 | }, |
| 69124 | 69124 | .extra_temps = .{ |
| 69125 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69125 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69126 | 69126 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69127 | 69127 | .unused, |
| 69128 | 69128 | .unused, |
| ... | ... | @@ -69149,7 +69149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69149 | 69149 | }, |
| 69150 | 69150 | .extra_temps = .{ |
| 69151 | 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 | 69153 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69154 | 69154 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69155 | 69155 | .unused, |
| ... | ... | @@ -69178,7 +69178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69178 | 69178 | }, |
| 69179 | 69179 | .extra_temps = .{ |
| 69180 | 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 | 69182 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69183 | 69183 | .unused, |
| 69184 | 69184 | .unused, |
| ... | ... | @@ -69247,7 +69247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69247 | 69247 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69248 | 69248 | }, |
| 69249 | 69249 | .extra_temps = .{ |
| 69250 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69250 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69251 | 69251 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69252 | 69252 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69253 | 69253 | .unused, |
| ... | ... | @@ -69274,7 +69274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69274 | 69274 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69275 | 69275 | }, |
| 69276 | 69276 | .extra_temps = .{ |
| 69277 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69277 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69278 | 69278 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69279 | 69279 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69280 | 69280 | .unused, |
| ... | ... | @@ -69301,7 +69301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69301 | 69301 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69302 | 69302 | }, |
| 69303 | 69303 | .extra_temps = .{ |
| 69304 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69304 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69305 | 69305 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69306 | 69306 | .unused, |
| 69307 | 69307 | .unused, |
| ... | ... | @@ -69329,7 +69329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69329 | 69329 | }, |
| 69330 | 69330 | .extra_temps = .{ |
| 69331 | 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 | 69333 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69334 | 69334 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69335 | 69335 | .unused, |
| ... | ... | @@ -69360,7 +69360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69360 | 69360 | }, |
| 69361 | 69361 | .extra_temps = .{ |
| 69362 | 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 | 69364 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69365 | 69365 | .unused, |
| 69366 | 69366 | .unused, |
| ... | ... | @@ -69432,7 +69432,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69432 | 69432 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69433 | 69433 | }, |
| 69434 | 69434 | .extra_temps = .{ |
| 69435 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69435 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69436 | 69436 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69437 | 69437 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69438 | 69438 | .unused, |
| ... | ... | @@ -69459,7 +69459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69459 | 69459 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69460 | 69460 | }, |
| 69461 | 69461 | .extra_temps = .{ |
| 69462 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69462 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69463 | 69463 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, |
| 69464 | 69464 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69465 | 69465 | .unused, |
| ... | ... | @@ -69486,7 +69486,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69486 | 69486 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69487 | 69487 | }, |
| 69488 | 69488 | .extra_temps = .{ |
| 69489 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69489 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69490 | 69490 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69491 | 69491 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69492 | 69492 | .unused, |
| ... | ... | @@ -69515,7 +69515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69515 | 69515 | }, |
| 69516 | 69516 | .extra_temps = .{ |
| 69517 | 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 | 69519 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69520 | 69520 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69521 | 69521 | .unused, |
| ... | ... | @@ -69546,7 +69546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69546 | 69546 | }, |
| 69547 | 69547 | .extra_temps = .{ |
| 69548 | 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 | 69550 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 69551 | 69551 | .unused, |
| 69552 | 69552 | .unused, |
| ... | ... | @@ -69618,7 +69618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69618 | 69618 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69619 | 69619 | }, |
| 69620 | 69620 | .extra_temps = .{ |
| 69621 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69621 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69622 | 69622 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69623 | 69623 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69624 | 69624 | .unused, |
| ... | ... | @@ -69644,7 +69644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69644 | 69644 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69645 | 69645 | }, |
| 69646 | 69646 | .extra_temps = .{ |
| 69647 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69647 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69648 | 69648 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69649 | 69649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69650 | 69650 | .unused, |
| ... | ... | @@ -69670,7 +69670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69670 | 69670 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69671 | 69671 | }, |
| 69672 | 69672 | .extra_temps = .{ |
| 69673 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69673 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69674 | 69674 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69675 | 69675 | .unused, |
| 69676 | 69676 | .unused, |
| ... | ... | @@ -69698,7 +69698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69698 | 69698 | }, |
| 69699 | 69699 | .extra_temps = .{ |
| 69700 | 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 | 69702 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69703 | 69703 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 69704 | 69704 | .unused, |
| ... | ... | @@ -69768,7 +69768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69768 | 69768 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69769 | 69769 | }, |
| 69770 | 69770 | .extra_temps = .{ |
| 69771 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69771 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69772 | 69772 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69773 | 69773 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69774 | 69774 | .unused, |
| ... | ... | @@ -69795,7 +69795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69795 | 69795 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69796 | 69796 | }, |
| 69797 | 69797 | .extra_temps = .{ |
| 69798 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69798 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69799 | 69799 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69800 | 69800 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69801 | 69801 | .unused, |
| ... | ... | @@ -69822,7 +69822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69822 | 69822 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69823 | 69823 | }, |
| 69824 | 69824 | .extra_temps = .{ |
| 69825 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69825 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69826 | 69826 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69827 | 69827 | .unused, |
| 69828 | 69828 | .unused, |
| ... | ... | @@ -69851,7 +69851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69851 | 69851 | }, |
| 69852 | 69852 | .extra_temps = .{ |
| 69853 | 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 | 69855 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 69856 | 69856 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 69857 | 69857 | .unused, |
| ... | ... | @@ -69924,7 +69924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69924 | 69924 | .{ .src = .{ .to_sse, .none, .none } }, |
| 69925 | 69925 | }, |
| 69926 | 69926 | .extra_temps = .{ |
| 69927 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69927 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69928 | 69928 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69929 | 69929 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69930 | 69930 | .unused, |
| ... | ... | @@ -69951,7 +69951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69951 | 69951 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69952 | 69952 | }, |
| 69953 | 69953 | .extra_temps = .{ |
| 69954 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69954 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69955 | 69955 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, |
| 69956 | 69956 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69957 | 69957 | .unused, |
| ... | ... | @@ -69978,7 +69978,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69978 | 69978 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 69979 | 69979 | }, |
| 69980 | 69980 | .extra_temps = .{ |
| 69981 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 69981 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 69982 | 69982 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 69983 | 69983 | .unused, |
| 69984 | 69984 | .unused, |
| ... | ... | @@ -70007,7 +70007,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70007 | 70007 | }, |
| 70008 | 70008 | .extra_temps = .{ |
| 70009 | 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 | 70011 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 70012 | 70012 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 70013 | 70013 | .unused, |
| ... | ... | @@ -70080,7 +70080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70080 | 70080 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70081 | 70081 | }, |
| 70082 | 70082 | .extra_temps = .{ |
| 70083 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70083 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70084 | 70084 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, |
| 70085 | 70085 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70086 | 70086 | .unused, |
| ... | ... | @@ -70106,7 +70106,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70106 | 70106 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70107 | 70107 | }, |
| 70108 | 70108 | .extra_temps = .{ |
| 70109 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70109 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70110 | 70110 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, |
| 70111 | 70111 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70112 | 70112 | .unused, |
| ... | ... | @@ -70132,7 +70132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70132 | 70132 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70133 | 70133 | }, |
| 70134 | 70134 | .extra_temps = .{ |
| 70135 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70135 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70136 | 70136 | .unused, |
| 70137 | 70137 | .unused, |
| 70138 | 70138 | .unused, |
| ... | ... | @@ -70203,7 +70203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70203 | 70203 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70204 | 70204 | }, |
| 70205 | 70205 | .extra_temps = .{ |
| 70206 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70206 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70207 | 70207 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 70208 | 70208 | .unused, |
| 70209 | 70209 | .unused, |
| ... | ... | @@ -70231,7 +70231,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70231 | 70231 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70232 | 70232 | }, |
| 70233 | 70233 | .extra_temps = .{ |
| 70234 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70234 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70235 | 70235 | .unused, |
| 70236 | 70236 | .unused, |
| 70237 | 70237 | .unused, |
| ... | ... | @@ -70305,7 +70305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70305 | 70305 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70306 | 70306 | }, |
| 70307 | 70307 | .extra_temps = .{ |
| 70308 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70308 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70309 | 70309 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, |
| 70310 | 70310 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70311 | 70311 | .unused, |
| ... | ... | @@ -70332,7 +70332,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70332 | 70332 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70333 | 70333 | }, |
| 70334 | 70334 | .extra_temps = .{ |
| 70335 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70335 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70336 | 70336 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, |
| 70337 | 70337 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70338 | 70338 | .unused, |
| ... | ... | @@ -70359,7 +70359,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70359 | 70359 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70360 | 70360 | }, |
| 70361 | 70361 | .extra_temps = .{ |
| 70362 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70362 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70363 | 70363 | .unused, |
| 70364 | 70364 | .unused, |
| 70365 | 70365 | .unused, |
| ... | ... | @@ -70433,7 +70433,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70433 | 70433 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70434 | 70434 | }, |
| 70435 | 70435 | .extra_temps = .{ |
| 70436 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70436 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70437 | 70437 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70438 | 70438 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70439 | 70439 | .unused, |
| ... | ... | @@ -70459,7 +70459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70459 | 70459 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70460 | 70460 | }, |
| 70461 | 70461 | .extra_temps = .{ |
| 70462 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70462 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70463 | 70463 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70464 | 70464 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70465 | 70465 | .unused, |
| ... | ... | @@ -70485,7 +70485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70485 | 70485 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70486 | 70486 | }, |
| 70487 | 70487 | .extra_temps = .{ |
| 70488 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70488 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70489 | 70489 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70490 | 70490 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70491 | 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 | 70518 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70519 | 70519 | }, |
| 70520 | 70520 | .extra_temps = .{ |
| 70521 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70521 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70522 | 70522 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70523 | 70523 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70524 | 70524 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -70551,7 +70551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70551 | 70551 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70552 | 70552 | }, |
| 70553 | 70553 | .extra_temps = .{ |
| 70554 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70554 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70555 | 70555 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70556 | 70556 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70557 | 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 | 70584 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 70585 | 70585 | }, |
| 70586 | 70586 | .extra_temps = .{ |
| 70587 | | .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, |
| 70587 | .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } }, |
| 70588 | 70588 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70589 | 70589 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70590 | 70590 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -70617,7 +70617,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70617 | 70617 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70618 | 70618 | }, |
| 70619 | 70619 | .extra_temps = .{ |
| 70620 | | .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, |
| 70620 | .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .forward } }, |
| 70621 | 70621 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, |
| 70622 | 70622 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70623 | 70623 | .unused, |
| ... | ... | @@ -70644,7 +70644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70644 | 70644 | .{ .src = .{ .to_sse, .none, .none } }, |
| 70645 | 70645 | }, |
| 70646 | 70646 | .extra_temps = .{ |
| 70647 | | .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, |
| 70647 | .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .forward } }, |
| 70648 | 70648 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70649 | 70649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70650 | 70650 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | ... | @@ -70676,7 +70676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70676 | 70676 | .extra_temps = .{ |
| 70677 | 70677 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70678 | 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 | 70680 | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, |
| 70681 | 70681 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 70682 | 70682 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| ... | ... | @@ -70712,7 +70712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70712 | 70712 | .extra_temps = .{ |
| 70713 | 70713 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70714 | 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 | 70716 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70717 | 70717 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 70718 | 70718 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | ... | @@ -129477,8 +129477,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 129477 | 129477 | switch (reduce.operation) { |
| 129478 | 129478 | .And, .Or, .Xor => unreachable, |
| 129479 | 129479 | .Min, .Max => break :fallback try cg.airReduce(inst), |
| 129480 | | .Add => {}, |
| 129481 | | .Mul => break :fallback try cg.airReduce(inst), |
| 129480 | .Add, .Mul => {}, |
| 129482 | 129481 | } |
| 129483 | 129482 | var ops = try cg.tempsFromOperands(inst, .{reduce.operand}); |
| 129484 | 129483 | var res: [1]Temp = undefined; |
| ... | ... | @@ -129894,7 +129893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 129894 | 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 | 129897 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129899 | 129898 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 129900 | 129899 | .patterns = &.{ |
| ... | ... | @@ -129938,7 +129937,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 129938 | 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 | 129941 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129943 | 129942 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 129944 | 129943 | .patterns = &.{ |
| ... | ... | @@ -130051,7 +130050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 130051 | 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 | 130054 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130056 | 130055 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 130057 | 130056 | .patterns = &.{ |
| ... | ... | @@ -130685,10 +130684,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 130685 | 130684 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130686 | 130685 | .each = .{ .once = &.{ |
| 130687 | 130686 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130688 | | .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 130689 | | .{ ._, .v_ps, .mova, .tmp2y, .memd(.src0y, 32), ._, ._ }, |
| 130690 | | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 130691 | | .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ }, |
| 130687 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 130688 | .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| 130689 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ }, |
| 130690 | .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ }, |
| 130692 | 130691 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130693 | 130692 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130694 | 130693 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| ... | ... | @@ -131117,33 +131116,1720 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131117 | 131116 | .each = .{ .once = &.{ |
| 131118 | 131117 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 131119 | 131118 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| 131120 | | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, |
| 131121 | | } }, |
| 131122 | | }, .{ |
| 131123 | | .required_features = .{ .avx, .fast_hops, null, null }, |
| 131124 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131125 | | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131126 | | .patterns = &.{ |
| 131127 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 131128 | | }, |
| 131129 | | .extra_temps = .{ |
| 131130 | | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131131 | | .unused, |
| 131132 | | .unused, |
| 131133 | | .unused, |
| 131134 | | .unused, |
| 131135 | | .unused, |
| 131136 | | .unused, |
| 131137 | | .unused, |
| 131138 | | .unused, |
| 131139 | | .unused, |
| 131140 | | .unused, |
| 131141 | | }, |
| 131142 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131143 | | .each = .{ .once = &.{ |
| 131144 | | .{ ._, .vh_pd, .add, .tmp0x, .src0x, .src0x, ._ }, |
| 131145 | | .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| 131146 | | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 131119 | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, |
| 131120 | } }, |
| 131121 | }, .{ |
| 131122 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 131123 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131124 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131125 | .patterns = &.{ |
| 131126 | .{ .src = .{ .to_sse, .none, .none } }, |
| 131127 | }, |
| 131128 | .extra_temps = .{ |
| 131129 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131130 | .unused, |
| 131131 | .unused, |
| 131132 | .unused, |
| 131133 | .unused, |
| 131134 | .unused, |
| 131135 | .unused, |
| 131136 | .unused, |
| 131137 | .unused, |
| 131138 | .unused, |
| 131139 | .unused, |
| 131140 | }, |
| 131141 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131142 | .each = .{ .once = &.{ |
| 131143 | .{ ._, .vh_pd, .add, .tmp0x, .src0x, .src0x, ._ }, |
| 131144 | .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| 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 | 132835 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -131168,35 +132854,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131168 | 132854 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131169 | 132855 | .each = .{ .once = &.{ |
| 131170 | 132856 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| 131171 | | .{ ._, .v_pd, .add, .tmp0x, .src0x, .tmp0x, ._ }, |
| 132857 | .{ ._, .v_pd, .mul, .tmp0x, .src0x, .tmp0x, ._ }, |
| 131172 | 132858 | .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ }, |
| 131173 | | .{ ._, .v_sd, .add, .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, ._ }, |
| 132859 | .{ ._, .v_sd, .mul, .dst0x, .tmp0x, .dst0x, ._ }, |
| 131200 | 132860 | } }, |
| 131201 | 132861 | }, .{ |
| 131202 | 132862 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -131221,9 +132881,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131221 | 132881 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131222 | 132882 | .each = .{ .once = &.{ |
| 131223 | 132883 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| 131224 | | .{ ._, .v_pd, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| 132884 | .{ ._, .v_pd, .mul, .dst0x, .src0x, .tmp0x, ._ }, |
| 131225 | 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 | 132889 | .required_features = .{ .avx512f, null, null, null }, |
| ... | ... | @@ -131235,6 +132895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131235 | 132895 | .extra_temps = .{ |
| 131236 | 132896 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 131237 | 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 | 132899 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 131239 | 132900 | .unused, |
| 131240 | 132901 | .unused, |
| ... | ... | @@ -131243,20 +132904,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131243 | 132904 | .unused, |
| 131244 | 132905 | .unused, |
| 131245 | 132906 | .unused, |
| 131246 | | .unused, |
| 131247 | 132907 | }, |
| 131248 | 132908 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131249 | 132909 | .each = .{ .once = &.{ |
| 131250 | 132910 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131251 | | .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 131252 | | .{ ._, .v_pd, .mova, .tmp2y, .memd(.src0y, 32), ._, ._ }, |
| 131253 | | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 131254 | | .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ }, |
| 131255 | | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 131256 | | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 131257 | | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131258 | | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 131259 | | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 132911 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 132912 | .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ }, |
| 132913 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 132914 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ }, |
| 132915 | .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ }, |
| 132916 | .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 132917 | .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ }, |
| 132918 | .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| 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 | 132925 | .required_features = .{ .avx512f, null, null, null }, |
| ... | ... | @@ -131282,43 +132945,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131282 | 132945 | .each = .{ .once = &.{ |
| 131283 | 132946 | .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 131284 | 132947 | .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ }, |
| 131285 | | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp0y, ._ }, |
| 132948 | .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp0y, ._ }, |
| 131286 | 132949 | .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 131287 | | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 132950 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131288 | 132951 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| 131289 | | .{ ._, .v_sd, .add, .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, ._ }, |
| 132952 | .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131322 | 132953 | } }, |
| 131323 | 132954 | }, .{ |
| 131324 | 132955 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -131345,43 +132976,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131345 | 132976 | .each = .{ .once = &.{ |
| 131346 | 132977 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 131347 | 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 | 132980 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 131350 | 132981 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131351 | 132982 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 131352 | | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 132983 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| 131353 | 132984 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, |
| 131354 | | .{ ._, .v_pd, .add, .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, ._, ._ }, |
| 132985 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp1x, ._ }, |
| 131385 | 132986 | } }, |
| 131386 | 132987 | }, .{ |
| 131387 | 132988 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -131408,12 +133009,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131408 | 133009 | .each = .{ .once = &.{ |
| 131409 | 133010 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131410 | 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 | 133013 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131413 | 133014 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131414 | 133015 | .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 131415 | 133016 | .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ }, |
| 131416 | | .{ ._, ._sd, .add, .dst0x, .tmp1x, ._, ._ }, |
| 133017 | .{ ._, ._sd, .mul, .dst0x, .tmp1x, ._, ._ }, |
| 131417 | 133018 | } }, |
| 131418 | 133019 | }, .{ |
| 131419 | 133020 | .required_features = .{ .avx512f, null, null, null }, |
| ... | ... | @@ -131425,6 +133026,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131425 | 133026 | .extra_temps = .{ |
| 131426 | 133027 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131427 | 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 | 133030 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| 131429 | 133031 | .unused, |
| 131430 | 133032 | .unused, |
| ... | ... | @@ -131433,60 +133035,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131433 | 133035 | .unused, |
| 131434 | 133036 | .unused, |
| 131435 | 133037 | .unused, |
| 131436 | | .unused, |
| 131437 | 133038 | }, |
| 131438 | 133039 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131439 | 133040 | .clobbers = .{ .eflags = true }, |
| 131440 | 133041 | .each = .{ .once = &.{ |
| 131441 | 133042 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131442 | 133043 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 131443 | | .{ ._, .v_pd, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| 131444 | | .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ }, |
| 131445 | | .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ }, |
| 133044 | .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ }, |
| 133045 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 133046 | .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ }, |
| 131446 | 133047 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, |
| 131447 | | .{ .@"0:", .v_pd, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ }, |
| 131448 | | .{ ._, .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 133048 | .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 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 | 133053 | .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ }, |
| 131450 | 133054 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131451 | | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 131452 | | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 131453 | | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131454 | | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 131455 | | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 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, ._ }, |
| 133055 | .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp3y, ._ }, |
| 133056 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| 133057 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| 133058 | .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ }, |
| 133059 | .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| 131490 | 133060 | } }, |
| 131491 | 133061 | }, .{ |
| 131492 | 133062 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -131498,6 +133068,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131498 | 133068 | .extra_temps = .{ |
| 131499 | 133069 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131500 | 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 | 133072 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131502 | 133073 | .unused, |
| 131503 | 133074 | .unused, |
| ... | ... | @@ -131506,54 +133077,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131506 | 133077 | .unused, |
| 131507 | 133078 | .unused, |
| 131508 | 133079 | .unused, |
| 131509 | | .unused, |
| 131510 | 133080 | }, |
| 131511 | 133081 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131512 | 133082 | .clobbers = .{ .eflags = true }, |
| 131513 | 133083 | .each = .{ .once = &.{ |
| 131514 | 133084 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131515 | 133085 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 131516 | | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 133086 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 131517 | 133087 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 131518 | | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 131519 | | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131520 | | .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 131521 | | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131522 | | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 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), ._, ._ }, |
| 133088 | .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 133089 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 133090 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| 133091 | .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ }, |
| 133092 | .{ .@"0:", .v_pd, .mul, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 131554 | 133093 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131555 | 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 | 133099 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -131565,6 +133105,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131565 | 133105 | .extra_temps = .{ |
| 131566 | 133106 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131567 | 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 | 133109 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131569 | 133110 | .unused, |
| 131570 | 133111 | .unused, |
| ... | ... | @@ -131573,21 +133114,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131573 | 133114 | .unused, |
| 131574 | 133115 | .unused, |
| 131575 | 133116 | .unused, |
| 131576 | | .unused, |
| 131577 | 133117 | }, |
| 131578 | 133118 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131579 | 133119 | .clobbers = .{ .eflags = true }, |
| 131580 | 133120 | .each = .{ .once = &.{ |
| 131581 | 133121 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131582 | 133122 | .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 131583 | | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 133123 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 131584 | 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 | 133128 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131587 | 133129 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131588 | | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 131589 | | .{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ }, |
| 131590 | | .{ ._, ._pd, .add, .dst0x, .tmp2x, ._, ._ }, |
| 133130 | .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| 133131 | .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ }, |
| 133132 | .{ ._, ._pd, .mul, .dst0x, .tmp3x, ._, ._ }, |
| 131591 | 133133 | } }, |
| 131592 | 133134 | }, .{ |
| 131593 | 133135 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -131614,7 +133156,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131614 | 133156 | .each = .{ .once = &.{ |
| 131615 | 133157 | .{ ._, ._, .mov, .tmp0p, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 131616 | 133158 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, |
| 131617 | | .{ .@"0:", .f_, .add, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 133159 | .{ .@"0:", .f_, .mul, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 131618 | 133160 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, |
| 131619 | 133161 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131620 | 133162 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| ... | ... | @@ -131645,7 +133187,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131645 | 133187 | .{ ._, ._, .mov, .tmp0p, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131646 | 133188 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, |
| 131647 | 133189 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, |
| 131648 | | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 133190 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, |
| 131649 | 133191 | .{ ._, ._, .sub, .tmp0p, .si(16), ._, ._ }, |
| 131650 | 133192 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131651 | 133193 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| ... | ... | @@ -131661,7 +133203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131661 | 133203 | .extra_temps = .{ |
| 131662 | 133204 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131663 | 133205 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131664 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| 133206 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, |
| 131665 | 133207 | .unused, |
| 131666 | 133208 | .unused, |
| 131667 | 133209 | .unused, |
| ... | ... | @@ -131692,7 +133234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131692 | 133234 | .extra_temps = .{ |
| 131693 | 133235 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131694 | 133236 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131695 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| 133237 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, |
| 131696 | 133238 | .unused, |
| 131697 | 133239 | .unused, |
| 131698 | 133240 | .unused, |
| ... | ... | @@ -131723,7 +133265,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131723 | 133265 | .extra_temps = .{ |
| 131724 | 133266 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131725 | 133267 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131726 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| 133268 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, |
| 131727 | 133269 | .unused, |
| 131728 | 133270 | .unused, |
| 131729 | 133271 | .unused, |
| ... | ... | @@ -131744,7 +133286,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131744 | 133286 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131745 | 133287 | } }, |
| 131746 | 133288 | } }, |
| 131747 | | .Mul => unreachable, |
| 131748 | 133289 | }) catch |err| switch (err) { |
| 131749 | 133290 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 131750 | 133291 | @tagName(air_tag), |
| ... | ... | @@ -149031,7 +150572,7 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C |
| 149031 | 150572 | } else if (self.hasFeature(.sse4_1)) { |
| 149032 | 150573 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128()); |
| 149033 | 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 | 150576 | const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse); |
| 149036 | 150577 | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); |
| 149037 | 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 | 150580 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128()); |
| 149040 | 150581 | try self.asmRegisterRegister(.{ ._ps, .movhl }, tmp_reg.to128(), src_reg.to128()); |
| 149041 | 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 | 150597 | return; |
| 149044 | 150598 | } else unreachable, |
| ... | ... | @@ -149282,7 +150836,7 @@ fn genSetReg( |
| 149282 | 150836 | }, |
| 149283 | 150837 | ), |
| 149284 | 150838 | .x87 => switch (src_reg.class()) { |
| 149285 | | .general_purpose, .gphi, .segment => unreachable, |
| 150839 | .general_purpose, .gphi, .segment, .mmx, .ip, .cr, .dr => unreachable, |
| 149286 | 150840 | .x87 => switch (src_reg) { |
| 149287 | 150841 | .st0 => try self.asmRegister(.{ .f_, .st }, dst_reg), |
| 149288 | 150842 | .st1, .st2, .st3, .st4, .st5, .st6 => switch (dst_reg) { |
| ... | ... | @@ -149307,7 +150861,25 @@ fn genSetReg( |
| 149307 | 150861 | }, |
| 149308 | 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 | 150884 | .mmx => unreachable, |
| 149313 | 150885 | .sse => switch (src_reg.class()) { |
| ... | ... | @@ -149349,7 +150921,7 @@ fn genSetReg( |
| 149349 | 150921 | .{ .register = try self.copyToTmpRegister(ty, src_mcv) }, |
| 149350 | 150922 | opts, |
| 149351 | 150923 | ), |
| 149352 | | .x87 => { |
| 150924 | .x87 => if (abi_size <= 16) { |
| 149353 | 150925 | const frame_index = try self.allocFrameIndex(.init(.{ |
| 149354 | 150926 | .size = 16, |
| 149355 | 150927 | .alignment = .@"16", |
| ... | ... | @@ -149367,7 +150939,7 @@ fn genSetReg( |
| 149367 | 150939 | .base = .{ .frame = frame_index }, |
| 149368 | 150940 | .mod = .{ .rm = .{ .size = .xword } }, |
| 149369 | 150941 | }); |
| 149370 | | }, |
| 150942 | } else unreachable, |
| 149371 | 150943 | .mmx, .ip, .cr, .dr => unreachable, |
| 149372 | 150944 | .sse => try self.asmRegisterRegister( |
| 149373 | 150945 | @as(?Mir.Inst.FixedTag, switch (ty.scalarType(zcu).zigTypeTag(zcu)) { |
| ... | ... | @@ -149431,7 +151003,7 @@ fn genSetReg( |
| 149431 | 151003 | } else if (self.hasFeature(.sse4_1)) { |
| 149432 | 151004 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64()); |
| 149433 | 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 | 151007 | const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse); |
| 149436 | 151008 | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); |
| 149437 | 151009 | defer self.register_manager.unlockReg(tmp_lock); |
| ... | ... | @@ -149439,6 +151011,19 @@ fn genSetReg( |
| 149439 | 151011 | try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64()); |
| 149440 | 151012 | try self.asmRegisterRegister(.{ ._q, .mov }, tmp_reg.to128(), src_regs[1].to64()); |
| 149441 | 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 | 151028 | } else unreachable, |
| 149444 | 151029 | else => unreachable, |
| ... | ... | @@ -149746,11 +151331,18 @@ fn genSetMem( |
| 149746 | 151331 | }, |
| 149747 | 151332 | else => abi_size, |
| 149748 | 151333 | }; |
| 149749 | | const src_alias = registerAlias(src_reg, abi_size); |
| 149750 | | const src_size: u32 = @intCast(switch (src_alias.class()) { |
| 149751 | | .general_purpose, .gphi, .segment, .x87, .ip, .cr, .dr => @divExact(src_alias.bitSize(), 8), |
| 151334 | const src_alias = registerAlias(src_reg, @intCast(self.unalignedSize(ty))); |
| 151335 | const src_class = src_alias.class(); |
| 151336 | const src_size: u32 = switch (src_class) { |
| 151337 | .general_purpose, .gphi, .segment, .ip, .cr, .dr => @intCast(@divExact(src_alias.bitSize(), 8)), |
| 149752 | 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 | 151346 | const src_align: InternPool.Alignment = .fromNonzeroByteUnits( |
| 149755 | 151347 | std.math.ceilPowerOfTwoAssert(u32, src_size), |
| 149756 | 151348 | ); |
| ... | ... | @@ -149760,7 +151352,7 @@ fn genSetMem( |
| 149760 | 151352 | .alignment = src_align, |
| 149761 | 151353 | })); |
| 149762 | 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 | 151356 | self, |
| 149765 | 151357 | .{ .base = .{ .frame = frame_index }, .mod = .{ .rm = .{ |
| 149766 | 151358 | .size = .fromSize(src_size), |
| ... | ... | @@ -149769,7 +151361,7 @@ fn genSetMem( |
| 149769 | 151361 | ); |
| 149770 | 151362 | try self.genSetMem(base, disp, ty, frame_mcv, opts); |
| 149771 | 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 | 151365 | .none => src_align.check(@as(u32, @bitCast(disp))), |
| 149774 | 151366 | .reg => |reg| switch (reg) { |
| 149775 | 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 | 155738 | reg |
| 154147 | 155739 | else |
| 154148 | 155740 | unreachable, |
| 154149 | | .x87 => if (size_bytes >= 10 and size_bytes <= 16) |
| 155741 | .x87 => if (size_bytes >= 4 and size_bytes <= 16) |
| 154150 | 155742 | reg |
| 154151 | 155743 | else |
| 154152 | 155744 | unreachable, |
| ... | ... | @@ -154433,7 +156025,10 @@ fn promoteVarArg(self: *CodeGen, ty: Type) Type { |
| 154433 | 156025 | fn unalignedSize(cg: *CodeGen, ty: Type) u64 { |
| 154434 | 156026 | const zcu = cg.pt.zcu; |
| 154435 | 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 | 156032 | else => ty.abiSize(zcu), |
| 154438 | 156033 | }; |
| 154439 | 156034 | } |
| ... | ... | @@ -155222,7 +156817,7 @@ const Temp = struct { |
| 155222 | 156817 | else => |mcv| std.debug.panic("{s}: {}\n", .{ @src().fn_name, mcv }), |
| 155223 | 156818 | .register => |val_reg| try src.readReg(opts.disp, val_ty, registerAlias( |
| 155224 | 156819 | val_reg, |
| 155225 | | @intCast(val_ty.abiSize(cg.pt.zcu)), |
| 156820 | @intCast(cg.unalignedSize(val_ty)), |
| 155226 | 156821 | ), cg), |
| 155227 | 156822 | inline .register_pair, .register_triple, .register_quadruple => |val_regs| { |
| 155228 | 156823 | var disp = opts.disp; |
| ... | ... | @@ -160731,8 +162326,8 @@ const Select = struct { |
| 160731 | 162326 | pand_mask_mem: struct { ref: Select.Operand.Ref, invert: bool = false }, |
| 160732 | 162327 | ptest_mask_mem: Select.Operand.Ref, |
| 160733 | 162328 | pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 }, |
| 160734 | | forward_bits_mem, |
| 160735 | | reverse_bits_mem, |
| 162329 | bits_mem: enum { forward, reverse }, |
| 162330 | splat_float_mem: struct { ref: Select.Operand.Ref, val: f16, fill: enum { inside, outside } = .inside }, |
| 160736 | 162331 | frame: FrameIndex, |
| 160737 | 162332 | lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none }, |
| 160738 | 162333 | symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, |
| ... | ... | @@ -161051,11 +162646,11 @@ const Select = struct { |
| 161051 | 162646 | .pand_mask_mem => |mask_spec| { |
| 161052 | 162647 | const zcu = pt.zcu; |
| 161053 | 162648 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); |
| 161054 | | const ty = mask_spec.ref.typeOf(s); |
| 161055 | | assert(ty.isVector(zcu)); |
| 162649 | const ref_ty = mask_spec.ref.typeOf(s); |
| 162650 | assert(ref_ty.isVector(zcu)); |
| 161056 | 162651 | var elem_buf: [64]u8 = undefined; |
| 161057 | 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 | 162654 | const invert_mask: u8 = switch (mask_spec.invert) { |
| 161060 | 162655 | false => std.math.minInt(u8), |
| 161061 | 162656 | true => std.math.maxInt(u8), |
| ... | ... | @@ -161070,14 +162665,14 @@ const Select = struct { |
| 161070 | 162665 | .ptest_mask_mem => |mask_ref| { |
| 161071 | 162666 | const zcu = pt.zcu; |
| 161072 | 162667 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); |
| 161073 | | const ty = mask_ref.typeOf(s); |
| 161074 | | assert(ty.isVector(zcu) and ty.childType(zcu).toIntern() == .bool_type); |
| 162668 | const ref_ty = mask_ref.typeOf(s); |
| 162669 | assert(ref_ty.isVector(zcu) and ref_ty.childType(zcu).toIntern() == .bool_type); |
| 161075 | 162670 | const mask_info = mask_ref.valueOf(s).register_mask.info; |
| 161076 | 162671 | var elem_buf: [64]u8 = @splat(0); |
| 161077 | 162672 | const elems = elem_buf[0..spec.type.vectorLen(zcu)]; |
| 161078 | 162673 | const elem_bytes: u6 = @intCast(@divExact(mask_info.scalar.bitSize(cg.target), 8)); |
| 161079 | 162674 | var index: u7 = 0; |
| 161080 | | for (0..@intCast(ty.vectorLen(zcu))) |_| { |
| 162675 | for (0..@intCast(ref_ty.vectorLen(zcu))) |_| { |
| 161081 | 162676 | switch (mask_info.kind) { |
| 161082 | 162677 | .sign => { |
| 161083 | 162678 | @memset(elems[index..][0 .. elem_bytes - 1], std.math.minInt(u8)); |
| ... | ... | @@ -161108,21 +162703,42 @@ const Select = struct { |
| 161108 | 162703 | .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, |
| 161109 | 162704 | } }))), true }; |
| 161110 | 162705 | }, |
| 161111 | | .forward_bits_mem, .reverse_bits_mem => { |
| 162706 | .bits_mem => |direction| { |
| 161112 | 162707 | const zcu = pt.zcu; |
| 161113 | 162708 | assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type); |
| 161114 | 162709 | var bytes: [32]u8 = undefined; |
| 161115 | 162710 | const elems = bytes[0..spec.type.vectorLen(zcu)]; |
| 161116 | | for (elems, 0..) |*elem, index| elem.* = switch (spec.kind) { |
| 161117 | | else => unreachable, |
| 161118 | | .forward_bits_mem => @as(u8, 1 << 0) << @truncate(index), |
| 161119 | | .reverse_bits_mem => @as(u8, 1 << 7) >> @truncate(index), |
| 162711 | for (elems, 0..) |*elem, index| elem.* = switch (direction) { |
| 162712 | .forward => @as(u8, 1 << 0) << @truncate(index), |
| 162713 | .reverse => @as(u8, 1 << 7) >> @truncate(index), |
| 161120 | 162714 | }; |
| 161121 | 162715 | return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ |
| 161122 | 162716 | .ty = spec.type.toIntern(), |
| 161123 | 162717 | .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, |
| 161124 | 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 | 162742 | .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true }, |
| 161127 | 162743 | .lazy_symbol => |lazy_symbol_spec| { |
| 161128 | 162744 | const ip = &pt.zcu.intern_pool; |