authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-14 07:42:58-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-17 18:00:17-04:00
logd3dfe61eaabb88211565a0e14d162aea1d7bfe47
treeaf4d780abb3c50660ee8afa94ff806799c241e19
parent96e35b3652f1b823f8700ae7ff92999e805e9182

x86_64: rewrite scalar `*|`


5 files changed, 6495 insertions(+), 1154 deletions(-)

src/arch/x86_64/CodeGen.zig+6406-1146
...@@ -486,7 +486,7 @@ pub const MCValue = union(enum) {...@@ -486,7 +486,7 @@ pub const MCValue = union(enum) {
486 } },486 } },
487 } else .{ .base = .{ .reg = .ds }, .mod = .{ .off = addr } },487 } else .{ .base = .{ .reg = .ds }, .mod = .{ .off = addr } },
488 .indirect => |reg_off| .{488 .indirect => |reg_off| .{
489 .base = .{ .reg = registerAlias(reg_off.reg, @divExact(function.target.ptrBitWidth(), 8)) },489 .base = .{ .reg = reg_off.reg.toSize(.ptr, function.target) },
490 .mod = .{ .rm = .{490 .mod = .{ .rm = .{
491 .size = mod_rm.size,491 .size = mod_rm.size,
492 .index = mod_rm.index,492 .index = mod_rm.index,
...@@ -2408,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2408,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2408}2408}
24092409
2410fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {2410fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2411 @setEvalBranchQuota(18_100);2411 @setEvalBranchQuota(19_300);
2412 const pt = cg.pt;2412 const pt = cg.pt;
2413 const zcu = pt.zcu;2413 const zcu = pt.zcu;
2414 const ip = &zcu.intern_pool;2414 const ip = &zcu.intern_pool;
...@@ -2444,7 +2444,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2444,7 +2444,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2444 try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1);2444 try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1);
2445 switch (air_tags[@intFromEnum(inst)]) {2445 switch (air_tags[@intFromEnum(inst)]) {
2446 // zig fmt: off2446 // zig fmt: off
2447 .mul_sat => try cg.airMulSat(inst),
2448 .shl_sat => try cg.airShlSat(inst),2447 .shl_sat => try cg.airShlSat(inst),
24492448
2450 .bitcast => try cg.airBitCast(inst),2449 .bitcast => try cg.airBitCast(inst),
...@@ -4493,7 +4492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4493,7 +4492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4493 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },4492 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
4494 },4493 },
4495 .extra_temps = .{4494 .extra_temps = .{
4496 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },4495 .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4497 .unused,4496 .unused,
4498 .unused,4497 .unused,
4499 .unused,4498 .unused,
...@@ -4523,7 +4522,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4523,7 +4522,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4523 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },4522 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
4524 },4523 },
4525 .extra_temps = .{4524 .extra_temps = .{
4526 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },4525 .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4527 .unused,4526 .unused,
4528 .unused,4527 .unused,
4529 .unused,4528 .unused,
...@@ -4670,7 +4669,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4670,7 +4669,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4670 },4669 },
4671 .extra_temps = .{4670 .extra_temps = .{
4672 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4671 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
4673 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4672 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4674 .unused,4673 .unused,
4675 .unused,4674 .unused,
4676 .unused,4675 .unused,
...@@ -4700,7 +4699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4700,7 +4699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4700 },4699 },
4701 .extra_temps = .{4700 .extra_temps = .{
4702 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4701 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
4703 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4702 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4704 .unused,4703 .unused,
4705 .unused,4704 .unused,
4706 .unused,4705 .unused,
...@@ -4731,7 +4730,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4731,7 +4730,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4731 },4730 },
4732 .extra_temps = .{4731 .extra_temps = .{
4733 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4732 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
4734 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4733 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4735 .unused,4734 .unused,
4736 .unused,4735 .unused,
4737 .unused,4736 .unused,
...@@ -4763,7 +4762,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4763,7 +4762,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4763 },4762 },
4764 .extra_temps = .{4763 .extra_temps = .{
4765 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4764 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
4766 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4765 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4767 .unused,4766 .unused,
4768 .unused,4767 .unused,
4769 .unused,4768 .unused,
...@@ -4795,7 +4794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4795,7 +4794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4795 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },4794 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
4796 },4795 },
4797 .extra_temps = .{4796 .extra_temps = .{
4798 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4797 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4799 .unused,4798 .unused,
4800 .unused,4799 .unused,
4801 .unused,4800 .unused,
...@@ -4824,7 +4823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4824,7 +4823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4824 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },4823 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
4825 },4824 },
4826 .extra_temps = .{4825 .extra_temps = .{
4827 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4826 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4828 .unused,4827 .unused,
4829 .unused,4828 .unused,
4830 .unused,4829 .unused,
...@@ -4853,7 +4852,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4853,7 +4852,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4853 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },4852 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
4854 },4853 },
4855 .extra_temps = .{4854 .extra_temps = .{
4856 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4855 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4857 .unused,4856 .unused,
4858 .unused,4857 .unused,
4859 .unused,4858 .unused,
...@@ -4883,7 +4882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4883,7 +4882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4883 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },4882 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
4884 },4883 },
4885 .extra_temps = .{4884 .extra_temps = .{
4886 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4885 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4887 .unused,4886 .unused,
4888 .unused,4887 .unused,
4889 .unused,4888 .unused,
...@@ -4916,7 +4915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4916,7 +4915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4916 },4915 },
4917 .extra_temps = .{4916 .extra_temps = .{
4918 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4917 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
4919 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4918 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4920 .unused,4919 .unused,
4921 .unused,4920 .unused,
4922 .unused,4921 .unused,
...@@ -4946,7 +4945,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4946,7 +4945,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4946 },4945 },
4947 .extra_temps = .{4946 .extra_temps = .{
4948 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4947 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
4949 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4948 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4950 .unused,4949 .unused,
4951 .unused,4950 .unused,
4952 .unused,4951 .unused,
...@@ -4977,7 +4976,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4977,7 +4976,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4977 },4976 },
4978 .extra_temps = .{4977 .extra_temps = .{
4979 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4978 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
4980 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },4979 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
4981 .unused,4980 .unused,
4982 .unused,4981 .unused,
4983 .unused,4982 .unused,
...@@ -5009,7 +5008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5009,7 +5008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5009 },5008 },
5010 .extra_temps = .{5009 .extra_temps = .{
5011 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5010 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
5012 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5011 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5013 .unused,5012 .unused,
5014 .unused,5013 .unused,
5015 .unused,5014 .unused,
...@@ -5042,7 +5041,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5042,7 +5041,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5042 },5041 },
5043 .extra_temps = .{5042 .extra_temps = .{
5044 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5043 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
5045 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5044 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5046 .unused,5045 .unused,
5047 .unused,5046 .unused,
5048 .unused,5047 .unused,
...@@ -5073,7 +5072,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5073,7 +5072,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5073 },5072 },
5074 .extra_temps = .{5073 .extra_temps = .{
5075 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5074 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
5076 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5075 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5077 .unused,5076 .unused,
5078 .unused,5077 .unused,
5079 .unused,5078 .unused,
...@@ -5105,7 +5104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5105,7 +5104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5105 },5104 },
5106 .extra_temps = .{5105 .extra_temps = .{
5107 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5106 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
5108 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5107 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5109 .unused,5108 .unused,
5110 .unused,5109 .unused,
5111 .unused,5110 .unused,
...@@ -5138,7 +5137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5138,7 +5137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5138 },5137 },
5139 .extra_temps = .{5138 .extra_temps = .{
5140 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5139 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
5141 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5140 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5142 .unused,5141 .unused,
5143 .unused,5142 .unused,
5144 .unused,5143 .unused,
...@@ -5171,7 +5170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5171,7 +5170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5171 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },5170 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
5172 },5171 },
5173 .extra_temps = .{5172 .extra_temps = .{
5174 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5173 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5175 .unused,5174 .unused,
5176 .unused,5175 .unused,
5177 .unused,5176 .unused,
...@@ -5201,7 +5200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5201,7 +5200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5201 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5200 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5202 },5201 },
5203 .extra_temps = .{5202 .extra_temps = .{
5204 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5203 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5205 .unused,5204 .unused,
5206 .unused,5205 .unused,
5207 .unused,5206 .unused,
...@@ -5231,7 +5230,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5231,7 +5230,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5231 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },5230 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
5232 },5231 },
5233 .extra_temps = .{5232 .extra_temps = .{
5234 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5233 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5235 .unused,5234 .unused,
5236 .unused,5235 .unused,
5237 .unused,5236 .unused,
...@@ -5262,7 +5261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5262,7 +5261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5262 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5261 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5263 },5262 },
5264 .extra_temps = .{5263 .extra_temps = .{
5265 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },5264 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5266 .unused,5265 .unused,
5267 .unused,5266 .unused,
5268 .unused,5267 .unused,
...@@ -5295,7 +5294,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5295,7 +5294,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5295 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5294 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5296 },5295 },
5297 .extra_temps = .{5296 .extra_temps = .{
5298 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },5297 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5299 .unused,5298 .unused,
5300 .unused,5299 .unused,
5301 .unused,5300 .unused,
...@@ -5322,7 +5321,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5322,7 +5321,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5322 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },5321 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
5323 },5322 },
5324 .extra_temps = .{5323 .extra_temps = .{
5325 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },5324 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5326 .unused,5325 .unused,
5327 .unused,5326 .unused,
5328 .unused,5327 .unused,
...@@ -5351,7 +5350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5351,7 +5350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5351 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5350 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5352 },5351 },
5353 .extra_temps = .{5352 .extra_temps = .{
5354 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },5353 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5355 .unused,5354 .unused,
5356 .unused,5355 .unused,
5357 .unused,5356 .unused,
...@@ -5492,7 +5491,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5492,7 +5491,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5492 },5491 },
5493 .extra_temps = .{5492 .extra_temps = .{
5494 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },5493 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
5495 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },5494 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5496 .unused,5495 .unused,
5497 .unused,5496 .unused,
5498 .unused,5497 .unused,
...@@ -5524,7 +5523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5524,7 +5523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5524 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5523 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5525 },5524 },
5526 .extra_temps = .{5525 .extra_temps = .{
5527 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },5526 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5528 .unused,5527 .unused,
5529 .unused,5528 .unused,
5530 .unused,5529 .unused,
...@@ -5558,7 +5557,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5558,7 +5557,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5558 },5557 },
5559 .extra_temps = .{5558 .extra_temps = .{
5560 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },5559 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
5561 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },5560 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5562 .unused,5561 .unused,
5563 .unused,5562 .unused,
5564 .unused,5563 .unused,
...@@ -5592,7 +5591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5592,7 +5591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5592 },5591 },
5593 .extra_temps = .{5592 .extra_temps = .{
5594 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },5593 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
5595 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },5594 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5596 .unused,5595 .unused,
5597 .unused,5596 .unused,
5598 .unused,5597 .unused,
...@@ -5625,7 +5624,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5625,7 +5624,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5625 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5624 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5626 },5625 },
5627 .extra_temps = .{5626 .extra_temps = .{
5628 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },5627 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5629 .unused,5628 .unused,
5630 .unused,5629 .unused,
5631 .unused,5630 .unused,
...@@ -5658,7 +5657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5658,7 +5657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5658 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5657 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5659 },5658 },
5660 .extra_temps = .{5659 .extra_temps = .{
5661 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },5660 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5662 .unused,5661 .unused,
5663 .unused,5662 .unused,
5664 .unused,5663 .unused,
...@@ -5688,7 +5687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5688,7 +5687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5688 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5687 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5689 },5688 },
5690 .extra_temps = .{5689 .extra_temps = .{
5691 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },5690 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5692 .unused,5691 .unused,
5693 .unused,5692 .unused,
5694 .unused,5693 .unused,
...@@ -5737,7 +5736,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5737,7 +5736,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5737 },5736 },
5738 .extra_temps = .{5737 .extra_temps = .{
5739 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5738 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
5740 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5739 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5741 .unused,5740 .unused,
5742 .unused,5741 .unused,
5743 .unused,5742 .unused,
...@@ -5769,7 +5768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5769,7 +5768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5769 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5768 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5770 },5769 },
5771 .extra_temps = .{5770 .extra_temps = .{
5772 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5771 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5773 .unused,5772 .unused,
5774 .unused,5773 .unused,
5775 .unused,5774 .unused,
...@@ -5802,7 +5801,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5802,7 +5801,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5802 },5801 },
5803 .extra_temps = .{5802 .extra_temps = .{
5804 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5803 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
5805 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5804 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5806 .unused,5805 .unused,
5807 .unused,5806 .unused,
5808 .unused,5807 .unused,
...@@ -5836,7 +5835,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5836,7 +5835,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5836 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5835 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5837 },5836 },
5838 .extra_temps = .{5837 .extra_temps = .{
5839 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5838 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5840 .unused,5839 .unused,
5841 .unused,5840 .unused,
5842 .unused,5841 .unused,
...@@ -5871,7 +5870,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5871,7 +5870,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5871 },5870 },
5872 .extra_temps = .{5871 .extra_temps = .{
5873 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5872 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
5874 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5873 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5875 .unused,5874 .unused,
5876 .unused,5875 .unused,
5877 .unused,5876 .unused,
...@@ -5906,7 +5905,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5906,7 +5905,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5906 },5905 },
5907 .extra_temps = .{5906 .extra_temps = .{
5908 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5907 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
5909 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5908 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5910 .unused,5909 .unused,
5911 .unused,5910 .unused,
5912 .unused,5911 .unused,
...@@ -5941,7 +5940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5941,7 +5940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5941 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5940 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5942 },5941 },
5943 .extra_temps = .{5942 .extra_temps = .{
5944 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },5943 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5945 .unused,5944 .unused,
5946 .unused,5945 .unused,
5947 .unused,5946 .unused,
...@@ -5976,7 +5975,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -5976,7 +5975,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
5976 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },5975 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
5977 },5976 },
5978 .extra_temps = .{5977 .extra_temps = .{
5979 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },5978 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
5980 .unused,5979 .unused,
5981 .unused,5980 .unused,
5982 .unused,5981 .unused,
...@@ -6006,7 +6005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -6006,7 +6005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
6006 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },6005 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
6007 },6006 },
6008 .extra_temps = .{6007 .extra_temps = .{
6009 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },6008 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
6010 .unused,6009 .unused,
6011 .unused,6010 .unused,
6012 .unused,6011 .unused,
...@@ -6037,7 +6036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -6037,7 +6036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
6037 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },6036 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
6038 },6037 },
6039 .extra_temps = .{6038 .extra_temps = .{
6040 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },6039 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
6041 .unused,6040 .unused,
6042 .unused,6041 .unused,
6043 .unused,6042 .unused,
...@@ -6079,8 +6078,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -6079,8 +6078,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
6079 }, .{6078 }, .{
6080 .required_features = .{ .@"64bit", null, null, null },6079 .required_features = .{ .@"64bit", null, null, null },
6081 .src_constraints = .{6080 .src_constraints = .{
6082 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },6081 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
6083 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },6082 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
6084 .any,6083 .any,
6085 },6084 },
6086 .patterns = &.{6085 .patterns = &.{
...@@ -6123,8 +6122,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -6123,8 +6122,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
6123 }, .{6122 }, .{
6124 .required_features = .{ .@"64bit", null, null, null },6123 .required_features = .{ .@"64bit", null, null, null },
6125 .src_constraints = .{6124 .src_constraints = .{
6126 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },6125 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
6127 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },6126 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
6128 .any,6127 .any,
6129 },6128 },
6130 .patterns = &.{6129 .patterns = &.{
...@@ -6162,8 +6161,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -6162,8 +6161,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
6162 }, .{6161 }, .{
6163 .required_features = .{ .@"64bit", null, null, null },6162 .required_features = .{ .@"64bit", null, null, null },
6164 .src_constraints = .{6163 .src_constraints = .{
6165 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },6164 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
6166 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },6165 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
6167 .any,6166 .any,
6168 },6167 },
6169 .patterns = &.{6168 .patterns = &.{
...@@ -6208,8 +6207,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -6208,8 +6207,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
6208 }, .{6207 }, .{
6209 .required_features = .{ .@"64bit", null, null, null },6208 .required_features = .{ .@"64bit", null, null, null },
6210 .src_constraints = .{6209 .src_constraints = .{
6211 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },6210 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
6212 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },6211 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
6213 .any,6212 .any,
6214 },6213 },
6215 .patterns = &.{6214 .patterns = &.{
...@@ -14984,7 +14983,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -14984,7 +14983,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
14984 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },14983 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
14985 },14984 },
14986 .extra_temps = .{14985 .extra_temps = .{
14987 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },14986 .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
14988 .unused,14987 .unused,
14989 .unused,14988 .unused,
14990 .unused,14989 .unused,
...@@ -15104,7 +15103,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15104,7 +15103,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15104 },15103 },
15105 .extra_temps = .{15104 .extra_temps = .{
15106 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15105 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15107 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15106 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15108 .unused,15107 .unused,
15109 .unused,15108 .unused,
15110 .unused,15109 .unused,
...@@ -15134,7 +15133,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15134,7 +15133,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15134 },15133 },
15135 .extra_temps = .{15134 .extra_temps = .{
15136 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15135 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15137 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15136 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15138 .unused,15137 .unused,
15139 .unused,15138 .unused,
15140 .unused,15139 .unused,
...@@ -15164,7 +15163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15164,7 +15163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15164 },15163 },
15165 .extra_temps = .{15164 .extra_temps = .{
15166 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15165 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15167 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15166 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15168 .unused,15167 .unused,
15169 .unused,15168 .unused,
15170 .unused,15169 .unused,
...@@ -15195,7 +15194,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15195,7 +15194,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15195 },15194 },
15196 .extra_temps = .{15195 .extra_temps = .{
15197 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15196 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15198 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15197 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15199 .unused,15198 .unused,
15200 .unused,15199 .unused,
15201 .unused,15200 .unused,
...@@ -15225,7 +15224,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15225,7 +15224,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15225 .{ .src = .{ .to_mut_gpr, .mem, .none } },15224 .{ .src = .{ .to_mut_gpr, .mem, .none } },
15226 },15225 },
15227 .extra_temps = .{15226 .extra_temps = .{
15228 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15227 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15229 .unused,15228 .unused,
15230 .unused,15229 .unused,
15231 .unused,15230 .unused,
...@@ -15254,7 +15253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15254,7 +15253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15254 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },15253 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
15255 },15254 },
15256 .extra_temps = .{15255 .extra_temps = .{
15257 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15256 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15258 .unused,15257 .unused,
15259 .unused,15258 .unused,
15260 .unused,15259 .unused,
...@@ -15282,7 +15281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15282,7 +15281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15282 .{ .src = .{ .to_mut_gpr, .mem, .none } },15281 .{ .src = .{ .to_mut_gpr, .mem, .none } },
15283 },15282 },
15284 .extra_temps = .{15283 .extra_temps = .{
15285 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15284 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15286 .unused,15285 .unused,
15287 .unused,15286 .unused,
15288 .unused,15287 .unused,
...@@ -15311,7 +15310,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15311,7 +15310,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15311 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },15310 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
15312 },15311 },
15313 .extra_temps = .{15312 .extra_temps = .{
15314 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15313 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15315 .unused,15314 .unused,
15316 .unused,15315 .unused,
15317 .unused,15316 .unused,
...@@ -15342,7 +15341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15342,7 +15341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15342 },15341 },
15343 .extra_temps = .{15342 .extra_temps = .{
15344 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15343 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15345 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15344 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15346 .unused,15345 .unused,
15347 .unused,15346 .unused,
15348 .unused,15347 .unused,
...@@ -15372,7 +15371,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15372,7 +15371,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15372 },15371 },
15373 .extra_temps = .{15372 .extra_temps = .{
15374 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15373 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15375 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15374 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15376 .unused,15375 .unused,
15377 .unused,15376 .unused,
15378 .unused,15377 .unused,
...@@ -15402,7 +15401,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15402,7 +15401,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15402 },15401 },
15403 .extra_temps = .{15402 .extra_temps = .{
15404 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15403 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15405 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15404 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15406 .unused,15405 .unused,
15407 .unused,15406 .unused,
15408 .unused,15407 .unused,
...@@ -15433,7 +15432,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15433,7 +15432,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15433 },15432 },
15434 .extra_temps = .{15433 .extra_temps = .{
15435 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15434 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15436 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15435 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15437 .unused,15436 .unused,
15438 .unused,15437 .unused,
15439 .unused,15438 .unused,
...@@ -15464,7 +15463,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15464,7 +15463,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15464 },15463 },
15465 .extra_temps = .{15464 .extra_temps = .{
15466 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15465 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15467 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15466 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15468 .unused,15467 .unused,
15469 .unused,15468 .unused,
15470 .unused,15469 .unused,
...@@ -15495,7 +15494,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15495,7 +15494,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15495 },15494 },
15496 .extra_temps = .{15495 .extra_temps = .{
15497 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15496 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15498 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15497 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15499 .unused,15498 .unused,
15500 .unused,15499 .unused,
15501 .unused,15500 .unused,
...@@ -15526,7 +15525,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15526,7 +15525,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15526 },15525 },
15527 .extra_temps = .{15526 .extra_temps = .{
15528 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15527 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15529 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15528 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15530 .unused,15529 .unused,
15531 .unused,15530 .unused,
15532 .unused,15531 .unused,
...@@ -15558,7 +15557,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15558,7 +15557,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15558 },15557 },
15559 .extra_temps = .{15558 .extra_temps = .{
15560 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15559 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
15561 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15560 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15562 .unused,15561 .unused,
15563 .unused,15562 .unused,
15564 .unused,15563 .unused,
...@@ -15589,7 +15588,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15589,7 +15588,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15589 .{ .src = .{ .to_mut_gpr, .mem, .none } },15588 .{ .src = .{ .to_mut_gpr, .mem, .none } },
15590 },15589 },
15591 .extra_temps = .{15590 .extra_temps = .{
15592 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15591 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15593 .unused,15592 .unused,
15594 .unused,15593 .unused,
15595 .unused,15594 .unused,
...@@ -15619,7 +15618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15619,7 +15618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15619 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },15618 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
15620 },15619 },
15621 .extra_temps = .{15620 .extra_temps = .{
15622 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15621 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15623 .unused,15622 .unused,
15624 .unused,15623 .unused,
15625 .unused,15624 .unused,
...@@ -15648,7 +15647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15648,7 +15647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15648 .{ .src = .{ .to_mut_gpr, .mem, .none } },15647 .{ .src = .{ .to_mut_gpr, .mem, .none } },
15649 },15648 },
15650 .extra_temps = .{15649 .extra_temps = .{
15651 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15650 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15652 .unused,15651 .unused,
15653 .unused,15652 .unused,
15654 .unused,15653 .unused,
...@@ -15678,7 +15677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15678,7 +15677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15678 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },15677 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
15679 },15678 },
15680 .extra_temps = .{15679 .extra_temps = .{
15681 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },15680 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15682 .unused,15681 .unused,
15683 .unused,15682 .unused,
15684 .unused,15683 .unused,
...@@ -15737,7 +15736,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15737,7 +15736,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15737 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },15736 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
15738 },15737 },
15739 .extra_temps = .{15738 .extra_temps = .{
15740 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },15739 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15741 .unused,15740 .unused,
15742 .unused,15741 .unused,
15743 .unused,15742 .unused,
...@@ -15812,7 +15811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15812,7 +15811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15812 },15811 },
15813 .extra_temps = .{15812 .extra_temps = .{
15814 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },15813 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
15815 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },15814 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15816 .unused,15815 .unused,
15817 .unused,15816 .unused,
15818 .unused,15817 .unused,
...@@ -15842,7 +15841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15842,7 +15841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15842 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },15841 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
15843 },15842 },
15844 .extra_temps = .{15843 .extra_temps = .{
15845 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },15844 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15846 .unused,15845 .unused,
15847 .unused,15846 .unused,
15848 .unused,15847 .unused,
...@@ -15874,7 +15873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15874,7 +15873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15874 },15873 },
15875 .extra_temps = .{15874 .extra_temps = .{
15876 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },15875 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
15877 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },15876 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15878 .unused,15877 .unused,
15879 .unused,15878 .unused,
15880 .unused,15879 .unused,
...@@ -15906,7 +15905,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15906,7 +15905,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15906 },15905 },
15907 .extra_temps = .{15906 .extra_temps = .{
15908 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },15907 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
15909 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },15908 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15910 .unused,15909 .unused,
15911 .unused,15910 .unused,
15912 .unused,15911 .unused,
...@@ -15937,7 +15936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15937,7 +15936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15937 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },15936 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
15938 },15937 },
15939 .extra_temps = .{15938 .extra_temps = .{
15940 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },15939 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
15941 .unused,15940 .unused,
15942 .unused,15941 .unused,
15943 .unused,15942 .unused,
...@@ -15996,7 +15995,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15996,7 +15995,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15996 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },15995 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
15997 },15996 },
15998 .extra_temps = .{15997 .extra_temps = .{
15999 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },15998 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
16000 .unused,15999 .unused,
16001 .unused,16000 .unused,
16002 .unused,16001 .unused,
...@@ -16056,7 +16055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16056,7 +16055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16056 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },16055 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
16057 },16056 },
16058 .extra_temps = .{16057 .extra_temps = .{
16059 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16058 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
16060 .unused,16059 .unused,
16061 .unused,16060 .unused,
16062 .unused,16061 .unused,
...@@ -16087,7 +16086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16087,7 +16086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16087 },16086 },
16088 .extra_temps = .{16087 .extra_temps = .{
16089 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16088 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
16090 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16089 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
16091 .unused,16090 .unused,
16092 .unused,16091 .unused,
16093 .unused,16092 .unused,
...@@ -16119,7 +16118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16119,7 +16118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16119 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },16118 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
16120 },16119 },
16121 .extra_temps = .{16120 .extra_temps = .{
16122 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16121 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
16123 .unused,16122 .unused,
16124 .unused,16123 .unused,
16125 .unused,16124 .unused,
...@@ -16152,7 +16151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16152,7 +16151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16152 },16151 },
16153 .extra_temps = .{16152 .extra_temps = .{
16154 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16153 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
16155 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16154 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
16156 .unused,16155 .unused,
16157 .unused,16156 .unused,
16158 .unused,16157 .unused,
...@@ -16185,7 +16184,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16185,7 +16184,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16185 },16184 },
16186 .extra_temps = .{16185 .extra_temps = .{
16187 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16186 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
16188 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16187 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
16189 .unused,16188 .unused,
16190 .unused,16189 .unused,
16191 .unused,16190 .unused,
...@@ -16218,7 +16217,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16218,7 +16217,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16218 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },16217 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
16219 },16218 },
16220 .extra_temps = .{16219 .extra_temps = .{
16221 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },16220 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
16222 .unused,16221 .unused,
16223 .unused,16222 .unused,
16224 .unused,16223 .unused,
...@@ -16279,7 +16278,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16279,7 +16278,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16279 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },16278 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
16280 },16279 },
16281 .extra_temps = .{16280 .extra_temps = .{
16282 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },16281 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
16283 .unused,16282 .unused,
16284 .unused,16283 .unused,
16285 .unused,16284 .unused,
...@@ -16302,8 +16301,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16302,8 +16301,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16302 }, .{16301 }, .{
16303 .required_features = .{ .@"64bit", null, null, null },16302 .required_features = .{ .@"64bit", null, null, null },
16304 .src_constraints = .{16303 .src_constraints = .{
16305 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },16304 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
16306 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },16305 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
16307 .any,16306 .any,
16308 },16307 },
16309 .patterns = &.{16308 .patterns = &.{
...@@ -16346,8 +16345,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16346,8 +16345,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16346 }, .{16345 }, .{
16347 .required_features = .{ .@"64bit", null, null, null },16346 .required_features = .{ .@"64bit", null, null, null },
16348 .src_constraints = .{16347 .src_constraints = .{
16349 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },16348 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
16350 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },16349 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
16351 .any,16350 .any,
16352 },16351 },
16353 .patterns = &.{16352 .patterns = &.{
...@@ -27013,27 +27012,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27013,27 +27012,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27013 };27012 };
27014 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);27013 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
27015 },27014 },
27016 .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) {27015 .mul_sat => |air_tag| if (use_old) try cg.airMulSat(inst) else fallback: {
27017 else => unreachable,
27018 .div_float, .div_float_optimized => .div_float,
27019 .div_exact, .div_exact_optimized => .div_exact,
27020 }) else {
27021 const bin_op = air_datas[@intFromEnum(inst)].bin_op;27016 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
27022 const ty = cg.typeOf(bin_op.lhs);27017 if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airMulSat(inst);
27023 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });27018 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
27024 var res: [1]Temp = undefined;27019 var res: [1]Temp = undefined;
27025 (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{27020 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{
27026 .required_features = .{ .f16c, null, null, null },27021 .src_constraints = .{ .{ .exact_signed_int = 8 }, .{ .exact_signed_int = 8 }, .any },
27027 .src_constraints = .{27022 .patterns = &.{
27028 .{ .scalar_float = .{ .of = .word, .is = .word } },27023 .{ .src = .{ .{ .to_reg = .al }, .mem, .none } },
27029 .{ .scalar_float = .{ .of = .word, .is = .word } },27024 .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } },
27030 .any,27025 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },
27031 },27026 },
27027 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27028 .clobbers = .{ .eflags = true },
27029 .each = .{ .once = &.{
27030 .{ ._, .i_, .mul, .src1b, ._, ._, ._ },
27031 .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
27032 .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ },
27033 .{ ._, ._, .xor, .dst0b, .sa(.src0, .add_smax), ._, ._ },
27034 } },
27035 }, .{
27036 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
27032 .patterns = &.{27037 .patterns = &.{
27033 .{ .src = .{ .to_sse, .to_sse, .none } },27038 .{ .src = .{ .{ .to_reg = .al }, .mem, .none } },
27039 .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } },
27040 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },
27034 },27041 },
27035 .extra_temps = .{27042 .extra_temps = .{
27036 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },27043 .{ .type = .i8, .kind = .{ .rc = .gphi } },
27037 .unused,27044 .unused,
27038 .unused,27045 .unused,
27039 .unused,27046 .unused,
...@@ -27045,26 +27052,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27045,26 +27052,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27045 .unused,27052 .unused,
27046 .unused,27053 .unused,
27047 },27054 },
27048 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },27055 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27056 .clobbers = .{ .eflags = true },
27049 .each = .{ .once = &.{27057 .each = .{ .once = &.{
27050 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },27058 .{ ._, .i_, .mul, .src1b, ._, ._, ._ },
27051 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },27059 .{ ._, ._c, .j, .@"1f", ._, ._, ._ },
27052 .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },27060 .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ },
27053 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },27061 .{ ._, ._r, .sa, .tmp0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
27062 .{ ._, ._, .cmp, .tmp0b, .dst0h, ._, ._ },
27063 .{ ._, ._e, .j, .@"0f", ._, ._, ._ },
27064 .{ .@"1:", ._r, .sa, .dst0w, .ui(15), ._, ._ },
27065 .{ ._, ._, .xor, .dst0b, .sa(.src0, .add_smax), ._, ._ },
27054 } },27066 } },
27055 }, .{27067 }, .{
27056 .required_features = .{ .sse, null, null, null },27068 .src_constraints = .{ .{ .exact_unsigned_int = 8 }, .{ .exact_unsigned_int = 8 }, .any },
27057 .src_constraints = .{
27058 .{ .scalar_float = .{ .of = .word, .is = .word } },
27059 .{ .scalar_float = .{ .of = .word, .is = .word } },
27060 .any,
27061 },
27062 .patterns = &.{27069 .patterns = &.{
27063 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },27070 .{ .src = .{ .{ .to_reg = .al }, .mem, .none } },
27071 .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } },
27072 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },
27064 },27073 },
27065 .call_frame = .{ .alignment = .@"16" },
27066 .extra_temps = .{27074 .extra_temps = .{
27067 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },27075 .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27068 .unused,27076 .unused,
27069 .unused,27077 .unused,
27070 .unused,27078 .unused,
...@@ -27077,25 +27085,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27077,25 +27085,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27077 .unused,27085 .unused,
27078 },27086 },
27079 .dst_temps = .{ .{ .ref = .src0 }, .unused },27087 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27080 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27088 .clobbers = .{ .eflags = true },
27081 .each = .{ .once = &.{27089 .each = .{ .once = &.{
27082 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },27090 .{ ._, ._, .mul, .src1b, ._, ._, ._ },
27091 .{ ._, ._, .sbb, .tmp0d, .tmp0d, ._, ._ },
27092 .{ ._, ._, .@"or", .dst0b, .tmp0b, ._, ._ },
27083 } },27093 } },
27084 }, .{27094 }, .{
27085 .required_features = .{ .f16c, null, null, null },27095 .required_features = .{ .cmov, null, null, null },
27086 .src_constraints = .{27096 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
27087 .{ .scalar_float = .{ .of = .qword, .is = .word } },
27088 .{ .scalar_float = .{ .of = .qword, .is = .word } },
27089 .any,
27090 },
27091 .patterns = &.{27097 .patterns = &.{
27092 .{ .src = .{ .mem, .mem, .none } },27098 .{ .src = .{ .{ .to_reg = .al }, .mem, .none } },
27093 .{ .src = .{ .to_sse, .mem, .none } },27099 .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } },
27094 .{ .src = .{ .mem, .to_sse, .none } },27100 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },
27095 .{ .src = .{ .to_sse, .to_sse, .none } },
27096 },27101 },
27097 .extra_temps = .{27102 .extra_temps = .{
27098 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },27103 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27099 .unused,27104 .unused,
27100 .unused,27105 .unused,
27101 .unused,27106 .unused,
...@@ -27107,28 +27112,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27107,28 +27112,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27107 .unused,27112 .unused,
27108 .unused,27113 .unused,
27109 },27114 },
27110 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },27115 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27116 .clobbers = .{ .eflags = true },
27111 .each = .{ .once = &.{27117 .each = .{ .once = &.{
27112 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },27118 .{ ._, ._, .mul, .src1b, ._, ._, ._ },
27113 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },27119 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ },
27114 .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },27120 .{ ._, ._, .cmp, .dst0w, .tmp0w, ._, ._ },
27115 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },27121 .{ ._, ._a, .cmov, .dst0d, .tmp0d, ._, ._ },
27116 } },27122 } },
27117 }, .{27123 }, .{
27118 .required_features = .{ .f16c, null, null, null },27124 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
27119 .src_constraints = .{
27120 .{ .scalar_float = .{ .of = .xword, .is = .word } },
27121 .{ .scalar_float = .{ .of = .xword, .is = .word } },
27122 .any,
27123 },
27124 .patterns = &.{27125 .patterns = &.{
27125 .{ .src = .{ .mem, .mem, .none } },27126 .{ .src = .{ .{ .to_reg = .al }, .mem, .none } },
27126 .{ .src = .{ .to_sse, .mem, .none } },27127 .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } },
27127 .{ .src = .{ .mem, .to_sse, .none } },27128 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },
27128 .{ .src = .{ .to_sse, .to_sse, .none } },
27129 },27129 },
27130 .extra_temps = .{27130 .extra_temps = .{
27131 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },27131 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27132 .unused,27132 .unused,
27133 .unused,27133 .unused,
27134 .unused,27134 .unused,
...@@ -27140,27 +27140,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27140,27 +27140,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27140 .unused,27140 .unused,
27141 .unused,27141 .unused,
27142 },27142 },
27143 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },27143 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27144 .clobbers = .{ .eflags = true },
27144 .each = .{ .once = &.{27145 .each = .{ .once = &.{
27145 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },27146 .{ ._, ._, .mul, .src1b, ._, ._, ._ },
27146 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },27147 .{ ._, ._, .cmp, .dst0w, .ua(.src0, .add_umax), ._, ._ },
27147 .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },27148 .{ ._, ._na, .j, .@"0f", ._, ._, ._ },
27148 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },27149 .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ },
27149 } },27150 } },
27150 }, .{27151 }, .{
27151 .required_features = .{ .f16c, null, null, null },27152 .required_features = .{ .fast_imm16, null, null, null },
27152 .src_constraints = .{27153 .src_constraints = .{ .{ .exact_signed_int = 16 }, .{ .exact_signed_int = 16 }, .any },
27153 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
27154 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
27155 .any,
27156 },
27157 .patterns = &.{27154 .patterns = &.{
27158 .{ .src = .{ .to_mem, .to_mem, .none } },27155 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27156 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27157 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27159 },27158 },
27160 .extra_temps = .{27159 .extra_temps = .{
27161 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27160 .{ .type = .i16, .kind = .{ .reg = .dx } },
27162 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },27161 .unused,
27163 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },27162 .unused,
27164 .unused,27163 .unused,
27165 .unused,27164 .unused,
27166 .unused,27165 .unused,
...@@ -27170,33 +27169,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27170,33 +27169,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27170 .unused,27169 .unused,
27171 .unused,27170 .unused,
27172 },27171 },
27173 .dst_temps = .{ .mem, .unused },27172 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27174 .clobbers = .{ .eflags = true },27173 .clobbers = .{ .eflags = true },
27175 .each = .{ .once = &.{27174 .each = .{ .once = &.{
27176 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27175 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27177 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },27176 .{ ._, .i_, .mul, .src1w, ._, ._, ._ },
27178 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },27177 .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
27179 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },27178 .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ },
27180 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },27179 .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ },
27181 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },27180 .{ ._, ._, .xor, .dst0w, .sa(.src0, .add_smax), ._, ._ },
27182 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
27183 } },27181 } },
27184 }, .{27182 }, .{
27185 .required_features = .{ .avx, null, null, null },27183 .src_constraints = .{ .{ .exact_signed_int = 16 }, .{ .exact_signed_int = 16 }, .any },
27186 .src_constraints = .{
27187 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
27188 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
27189 .any,
27190 },
27191 .patterns = &.{27184 .patterns = &.{
27192 .{ .src = .{ .to_mem, .to_mem, .none } },27185 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27186 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27187 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27193 },27188 },
27194 .call_frame = .{ .alignment = .@"16" },
27195 .extra_temps = .{27189 .extra_temps = .{
27196 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27190 .{ .type = .i16, .kind = .{ .reg = .dx } },
27197 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },27191 .unused,
27198 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },27192 .unused,
27199 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },27193 .unused,
27200 .unused,27194 .unused,
27201 .unused,27195 .unused,
27202 .unused,27196 .unused,
...@@ -27205,34 +27199,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27205,34 +27199,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27205 .unused,27199 .unused,
27206 .unused,27200 .unused,
27207 },27201 },
27208 .dst_temps = .{ .mem, .unused },27202 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27209 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27203 .clobbers = .{ .eflags = true },
27210 .each = .{ .once = &.{27204 .each = .{ .once = &.{
27211 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27205 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27212 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },27206 .{ ._, .i_, .mul, .src1w, ._, ._, ._ },
27213 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },27207 .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
27214 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },27208 .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ },
27215 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },27209 .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ },
27216 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },27210 .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ },
27217 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
27218 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
27219 } },27211 } },
27220 }, .{27212 }, .{
27221 .required_features = .{ .sse4_1, null, null, null },27213 .required_features = .{ .fast_imm16, null, null, null },
27222 .src_constraints = .{27214 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
27223 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
27224 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
27225 .any,
27226 },
27227 .patterns = &.{27215 .patterns = &.{
27228 .{ .src = .{ .to_mem, .to_mem, .none } },27216 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27217 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27218 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27229 },27219 },
27230 .call_frame = .{ .alignment = .@"16" },
27231 .extra_temps = .{27220 .extra_temps = .{
27232 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27221 .{ .type = .i16, .kind = .{ .reg = .dx } },
27233 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },27222 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27234 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },27223 .unused,
27235 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },27224 .unused,
27236 .unused,27225 .unused,
27237 .unused,27226 .unused,
27238 .unused,27227 .unused,
...@@ -27241,36 +27230,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27241,36 +27230,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27241 .unused,27230 .unused,
27242 .unused,27231 .unused,
27243 },27232 },
27244 .dst_temps = .{ .mem, .unused },27233 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27245 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27234 .clobbers = .{ .eflags = true },
27246 .each = .{ .once = &.{27235 .each = .{ .once = &.{
27247 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27236 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27248 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },27237 .{ ._, .i_, .mul, .src1w, ._, ._, ._ },
27249 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },27238 .{ ._, ._c, .j, .@"1f", ._, ._, ._ },
27250 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },27239 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27251 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },27240 .{ ._, ._r, .sa, .tmp1w, .sia(-1, .src0, .add_bit_size), ._, ._ },
27252 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },27241 .{ ._, ._, .cmp, .tmp1w, .tmp0w, ._, ._ },
27253 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },27242 .{ ._, ._e, .j, .@"0f", ._, ._, ._ },
27254 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },27243 .{ .@"1:", ._, .mov, .dst0d, .tmp0d, ._, ._ },
27255 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27244 .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ },
27245 .{ ._, ._, .xor, .dst0w, .sa(.src0, .add_smax), ._, ._ },
27256 } },27246 } },
27257 }, .{27247 }, .{
27258 .required_features = .{ .sse2, null, null, null },27248 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
27259 .src_constraints = .{
27260 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
27261 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
27262 .any,
27263 },
27264 .patterns = &.{27249 .patterns = &.{
27265 .{ .src = .{ .to_mem, .to_mem, .none } },27250 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27251 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27252 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27266 },27253 },
27267 .call_frame = .{ .alignment = .@"16" },
27268 .extra_temps = .{27254 .extra_temps = .{
27269 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27255 .{ .type = .i16, .kind = .{ .reg = .dx } },
27270 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },27256 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27271 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },27257 .unused,
27272 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },27258 .unused,
27273 .{ .type = .f16, .kind = .{ .reg = .ax } },27259 .unused,
27274 .unused,27260 .unused,
27275 .unused,27261 .unused,
27276 .unused,27262 .unused,
...@@ -27278,149 +27264,122 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27278,149 +27264,122 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27278 .unused,27264 .unused,
27279 .unused,27265 .unused,
27280 },27266 },
27281 .dst_temps = .{ .mem, .unused },27267 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27282 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27268 .clobbers = .{ .eflags = true },
27283 .each = .{ .once = &.{27269 .each = .{ .once = &.{
27284 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27270 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27285 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },27271 .{ ._, .i_, .mul, .src1w, ._, ._, ._ },
27286 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },27272 .{ ._, ._c, .j, .@"1f", ._, ._, ._ },
27287 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },27273 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27288 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },27274 .{ ._, ._r, .sa, .tmp1w, .sia(-1, .src0, .add_bit_size), ._, ._ },
27289 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },27275 .{ ._, ._, .cmp, .tmp1w, .tmp0w, ._, ._ },
27290 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },27276 .{ ._, ._e, .j, .@"0f", ._, ._, ._ },
27291 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ },27277 .{ .@"1:", ._, .mov, .dst0d, .tmp0d, ._, ._ },
27292 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },27278 .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ },
27293 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27279 .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ },
27294 } },27280 } },
27295 }, .{27281 }, .{
27296 .required_features = .{ .sse, null, null, null },27282 .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .{ .exact_unsigned_int = 16 }, .any },
27297 .src_constraints = .{
27298 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
27299 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
27300 .any,
27301 },
27302 .patterns = &.{27283 .patterns = &.{
27303 .{ .src = .{ .to_mem, .to_mem, .none } },27284 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27285 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27286 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27304 },27287 },
27305 .call_frame = .{ .alignment = .@"16" },
27306 .extra_temps = .{27288 .extra_temps = .{
27307 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27289 .{ .type = .u16, .kind = .{ .reg = .dx } },
27308 .{ .type = .f16, .kind = .{ .reg = .ax } },27290 .unused,
27309 .{ .type = .f32, .kind = .mem },27291 .unused,
27310 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },27292 .unused,
27311 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },27293 .unused,
27312 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },27294 .unused,
27313 .unused,27295 .unused,
27314 .unused,27296 .unused,
27315 .unused,27297 .unused,
27316 .unused,27298 .unused,
27317 .unused,27299 .unused,
27318 },27300 },
27319 .dst_temps = .{ .mem, .unused },27301 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27320 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27302 .clobbers = .{ .eflags = true },
27321 .each = .{ .once = &.{27303 .each = .{ .once = &.{
27322 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27304 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27323 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },27305 .{ ._, ._, .mul, .src1w, ._, ._, ._ },
27324 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },27306 .{ ._, ._, .sbb, .tmp0d, .tmp0d, ._, ._ },
27325 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },27307 .{ ._, ._, .@"or", .dst0d, .tmp0d, ._, ._ },
27326 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
27327 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
27328 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
27329 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
27330 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
27331 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
27332 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
27333 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
27334 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
27335 } },27308 } },
27336 }, .{27309 }, .{
27337 .required_features = .{ .avx, null, null, null },27310 .required_features = .{ .bmi, .cmov, null, null },
27338 .src_constraints = .{27311 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
27339 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
27340 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
27341 .any,
27342 },
27343 .patterns = &.{27312 .patterns = &.{
27344 .{ .src = .{ .to_sse, .mem, .none } },27313 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27345 .{ .src = .{ .to_sse, .to_sse, .none } },27314 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27346 },27315 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27347 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
27348 .each = .{ .once = &.{
27349 .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },
27350 } },
27351 }, .{
27352 .required_features = .{ .sse, null, null, null },
27353 .src_constraints = .{
27354 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
27355 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
27356 .any,
27357 },27316 },
27358 .patterns = &.{27317 .extra_temps = .{
27359 .{ .src = .{ .to_mut_sse, .mem, .none } },27318 .{ .type = .u16, .kind = .{ .reg = .dx } },
27360 .{ .src = .{ .to_mut_sse, .to_sse, .none } },27319 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
27320 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27321 .unused,
27322 .unused,
27323 .unused,
27324 .unused,
27325 .unused,
27326 .unused,
27327 .unused,
27328 .unused,
27361 },27329 },
27362 .dst_temps = .{ .{ .ref = .src0 }, .unused },27330 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27331 .clobbers = .{ .eflags = true },
27363 .each = .{ .once = &.{27332 .each = .{ .once = &.{
27364 .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },27333 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27334 .{ ._, ._, .mov, .tmp1d, .ua(.src0, .add_umax), ._, ._ },
27335 .{ ._, ._, .mul, .src1w, ._, ._, ._ },
27336 .{ ._, ._, .andn, .tmp2d, .tmp1d, .dst0d, ._ },
27337 .{ ._, ._, .@"or", .tmp2w, .tmp0w, ._, ._ },
27338 .{ ._, ._nz, .cmov, .dst0d, .tmp1d, ._, ._ },
27365 } },27339 } },
27366 }, .{27340 }, .{
27367 .required_features = .{ .avx, null, null, null },27341 .required_features = .{ .cmov, .fast_imm16, null, null },
27368 .src_constraints = .{27342 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
27369 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
27370 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
27371 .any,
27372 },
27373 .patterns = &.{27343 .patterns = &.{
27374 .{ .src = .{ .to_sse, .mem, .none } },27344 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27375 .{ .src = .{ .to_sse, .to_sse, .none } },27345 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27376 },27346 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27377 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
27378 .each = .{ .once = &.{
27379 .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },
27380 } },
27381 }, .{
27382 .required_features = .{ .sse, null, null, null },
27383 .src_constraints = .{
27384 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
27385 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
27386 .any,
27387 },27347 },
27388 .patterns = &.{27348 .extra_temps = .{
27389 .{ .src = .{ .to_mut_sse, .mem, .none } },27349 .{ .type = .u16, .kind = .{ .reg = .dx } },
27390 .{ .src = .{ .to_mut_sse, .to_sse, .none } },27350 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27351 .unused,
27352 .unused,
27353 .unused,
27354 .unused,
27355 .unused,
27356 .unused,
27357 .unused,
27358 .unused,
27359 .unused,
27391 },27360 },
27392 .dst_temps = .{ .{ .ref = .src0 }, .unused },27361 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27362 .clobbers = .{ .eflags = true },
27393 .each = .{ .once = &.{27363 .each = .{ .once = &.{
27394 .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },27364 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27395 } },27365 .{ ._, ._, .mul, .src1w, ._, ._, ._ },
27396 }, .{27366 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27397 .required_features = .{ .avx, null, null, null },27367 .{ ._, ._, .@"and", .tmp1w, .sa(.src0, .add_2_smin), ._, ._ },
27398 .src_constraints = .{27368 .{ ._, ._, .@"or", .tmp1w, .tmp0w, ._, ._ },
27399 .{ .scalar_float = .{ .of = .yword, .is = .dword } },27369 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ },
27400 .{ .scalar_float = .{ .of = .yword, .is = .dword } },27370 .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ },
27401 .any,
27402 },
27403 .patterns = &.{
27404 .{ .src = .{ .to_sse, .mem, .none } },
27405 .{ .src = .{ .to_sse, .to_sse, .none } },
27406 },
27407 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
27408 .each = .{ .once = &.{
27409 .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
27410 } },27371 } },
27411 }, .{27372 }, .{
27412 .required_features = .{ .avx, null, null, null },27373 .required_features = .{ .cmov, null, null, null },
27413 .src_constraints = .{27374 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
27414 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
27415 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
27416 .any,
27417 },
27418 .patterns = &.{27375 .patterns = &.{
27419 .{ .src = .{ .to_mem, .to_mem, .none } },27376 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27377 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27378 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27420 },27379 },
27421 .extra_temps = .{27380 .extra_temps = .{
27422 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27381 .{ .type = .u16, .kind = .{ .reg = .dx } },
27423 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },27382 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27424 .unused,27383 .unused,
27425 .unused,27384 .unused,
27426 .unused,27385 .unused,
...@@ -27431,29 +27390,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27431,29 +27390,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27431 .unused,27390 .unused,
27432 .unused,27391 .unused,
27433 },27392 },
27434 .dst_temps = .{ .mem, .unused },27393 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27435 .clobbers = .{ .eflags = true },27394 .clobbers = .{ .eflags = true },
27436 .each = .{ .once = &.{27395 .each = .{ .once = &.{
27437 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27396 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27438 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },27397 .{ ._, ._, .mul, .src1w, ._, ._, ._ },
27439 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },27398 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27440 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },27399 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_2_smin), ._, ._ },
27441 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },27400 .{ ._, ._, .@"or", .tmp1w, .tmp0w, ._, ._ },
27442 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27401 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ },
27402 .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ },
27443 } },27403 } },
27444 }, .{27404 }, .{
27445 .required_features = .{ .sse, null, null, null },27405 .required_features = .{ .fast_imm16, null, null, null },
27446 .src_constraints = .{27406 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
27447 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
27448 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
27449 .any,
27450 },
27451 .patterns = &.{27407 .patterns = &.{
27452 .{ .src = .{ .to_mem, .to_mem, .none } },27408 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27409 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27410 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27453 },27411 },
27454 .extra_temps = .{27412 .extra_temps = .{
27455 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27413 .{ .type = .u16, .kind = .{ .reg = .dx } },
27456 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },27414 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27457 .unused,27415 .unused,
27458 .unused,27416 .unused,
27459 .unused,27417 .unused,
...@@ -27464,59 +27422,58 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27464,59 +27422,58 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27464 .unused,27422 .unused,
27465 .unused,27423 .unused,
27466 },27424 },
27467 .dst_temps = .{ .mem, .unused },27425 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27468 .clobbers = .{ .eflags = true },27426 .clobbers = .{ .eflags = true },
27469 .each = .{ .once = &.{27427 .each = .{ .once = &.{
27470 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27428 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27471 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },27429 .{ ._, ._, .mul, .src1w, ._, ._, ._ },
27472 .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },27430 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27473 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },27431 .{ ._, ._, .@"and", .tmp1w, .sa(.src0, .add_2_smin), ._, ._ },
27474 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },27432 .{ ._, ._, .@"or", .tmp1w, .tmp0w, ._, ._ },
27475 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27433 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
27434 .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ },
27476 } },27435 } },
27477 }, .{27436 }, .{
27478 .required_features = .{ .avx, null, null, null },27437 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
27479 .src_constraints = .{
27480 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
27481 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
27482 .any,
27483 },
27484 .patterns = &.{27438 .patterns = &.{
27485 .{ .src = .{ .to_sse, .mem, .none } },27439 .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } },
27486 .{ .src = .{ .to_sse, .to_sse, .none } },27440 .{ .src = .{ .mem, .{ .to_reg = .ax }, .none }, .commute = .{ 0, 1 } },
27487 },27441 .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } },
27488 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
27489 .each = .{ .once = &.{
27490 .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
27491 } },
27492 }, .{
27493 .required_features = .{ .sse2, null, null, null },
27494 .src_constraints = .{
27495 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
27496 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
27497 .any,
27498 },27442 },
27499 .patterns = &.{27443 .extra_temps = .{
27500 .{ .src = .{ .to_mut_sse, .mem, .none } },27444 .{ .type = .u16, .kind = .{ .reg = .dx } },
27501 .{ .src = .{ .to_mut_sse, .to_sse, .none } },27445 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27446 .unused,
27447 .unused,
27448 .unused,
27449 .unused,
27450 .unused,
27451 .unused,
27452 .unused,
27453 .unused,
27454 .unused,
27502 },27455 },
27503 .dst_temps = .{ .{ .ref = .src0 }, .unused },27456 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27457 .clobbers = .{ .eflags = true },
27504 .each = .{ .once = &.{27458 .each = .{ .once = &.{
27505 .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },27459 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
27460 .{ ._, ._, .mul, .src1w, ._, ._, ._ },
27461 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27462 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_2_smin), ._, ._ },
27463 .{ ._, ._, .@"or", .tmp1w, .tmp0w, ._, ._ },
27464 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
27465 .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ },
27506 } },27466 } },
27507 }, .{27467 }, .{
27508 .required_features = .{ .x87, null, null, null },27468 .src_constraints = .{ .{ .exact_signed_int = 32 }, .{ .exact_signed_int = 32 }, .any },
27509 .src_constraints = .{
27510 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
27511 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
27512 .any,
27513 },
27514 .patterns = &.{27469 .patterns = &.{
27515 .{ .src = .{ .mem, .mem, .none } },27470 .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } },
27471 .{ .src = .{ .mem, .{ .to_reg = .eax }, .none }, .commute = .{ 0, 1 } },
27472 .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } },
27516 },27473 },
27517 .extra_temps = .{27474 .extra_temps = .{
27518 .{ .type = .f64, .kind = .{ .reg = .st6 } },27475 .{ .type = .i32, .kind = .{ .reg = .edx } },
27519 .{ .type = .f64, .kind = .{ .reg = .st7 } },27476 .unused,
27520 .unused,27477 .unused,
27521 .unused,27478 .unused,
27522 .unused,27479 .unused,
...@@ -27527,71 +27484,87 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27527,71 +27484,87 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27527 .unused,27484 .unused,
27528 .unused,27485 .unused,
27529 },27486 },
27530 .dst_temps = .{ .mem, .unused },27487 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27488 .clobbers = .{ .eflags = true },
27531 .each = .{ .once = &.{27489 .each = .{ .once = &.{
27532 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },27490 .{ ._, .i_, .mul, .src1d, ._, ._, ._ },
27533 .{ ._, .f_, .div, .src1q, ._, ._, ._ },27491 .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
27534 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },27492 .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ },
27493 .{ ._, ._r, .sa, .dst0d, .ui(31), ._, ._ },
27494 .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ },
27535 } },27495 } },
27536 }, .{27496 }, .{
27537 .required_features = .{ .avx, null, null, null },27497 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
27538 .src_constraints = .{
27539 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
27540 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
27541 .any,
27542 },
27543 .patterns = &.{27498 .patterns = &.{
27544 .{ .src = .{ .to_sse, .mem, .none } },27499 .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } },
27545 .{ .src = .{ .to_sse, .to_sse, .none } },27500 .{ .src = .{ .mem, .{ .to_reg = .eax }, .none }, .commute = .{ 0, 1 } },
27546 },27501 .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } },
27547 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
27548 .each = .{ .once = &.{
27549 .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },
27550 } },
27551 }, .{
27552 .required_features = .{ .sse2, null, null, null },
27553 .src_constraints = .{
27554 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
27555 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
27556 .any,
27557 },27502 },
27558 .patterns = &.{27503 .extra_temps = .{
27559 .{ .src = .{ .to_mut_sse, .mem, .none } },27504 .{ .type = .i32, .kind = .{ .reg = .edx } },
27560 .{ .src = .{ .to_mut_sse, .to_sse, .none } },27505 .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27506 .unused,
27507 .unused,
27508 .unused,
27509 .unused,
27510 .unused,
27511 .unused,
27512 .unused,
27513 .unused,
27514 .unused,
27561 },27515 },
27562 .dst_temps = .{ .{ .ref = .src0 }, .unused },27516 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27517 .clobbers = .{ .eflags = true },
27563 .each = .{ .once = &.{27518 .each = .{ .once = &.{
27564 .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },27519 .{ ._, .i_, .mul, .src1d, ._, ._, ._ },
27520 .{ ._, ._c, .j, .@"1f", ._, ._, ._ },
27521 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27522 .{ ._, ._r, .sa, .tmp1d, .sia(-1, .src0, .add_bit_size), ._, ._ },
27523 .{ ._, ._, .cmp, .tmp1d, .tmp0d, ._, ._ },
27524 .{ ._, ._e, .j, .@"0f", ._, ._, ._ },
27525 .{ .@"1:", ._, .mov, .dst0d, .tmp0d, ._, ._ },
27526 .{ ._, ._r, .sa, .dst0d, .ui(31), ._, ._ },
27527 .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ },
27565 } },27528 } },
27566 }, .{27529 }, .{
27567 .required_features = .{ .avx, null, null, null },27530 .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .{ .exact_unsigned_int = 32 }, .any },
27568 .src_constraints = .{
27569 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
27570 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
27571 .any,
27572 },
27573 .patterns = &.{27531 .patterns = &.{
27574 .{ .src = .{ .to_sse, .mem, .none } },27532 .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } },
27575 .{ .src = .{ .to_sse, .to_sse, .none } },27533 .{ .src = .{ .mem, .{ .to_reg = .eax }, .none }, .commute = .{ 0, 1 } },
27534 .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } },
27576 },27535 },
27577 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },27536 .extra_temps = .{
27537 .{ .type = .u32, .kind = .{ .reg = .edx } },
27538 .unused,
27539 .unused,
27540 .unused,
27541 .unused,
27542 .unused,
27543 .unused,
27544 .unused,
27545 .unused,
27546 .unused,
27547 .unused,
27548 },
27549 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27550 .clobbers = .{ .eflags = true },
27578 .each = .{ .once = &.{27551 .each = .{ .once = &.{
27579 .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },27552 .{ ._, ._, .mul, .src1d, ._, ._, ._ },
27553 .{ ._, ._, .sbb, .tmp0d, .tmp0d, ._, ._ },
27554 .{ ._, ._, .@"or", .dst0d, .tmp0d, ._, ._ },
27580 } },27555 } },
27581 }, .{27556 }, .{
27582 .required_features = .{ .avx, null, null, null },27557 .required_features = .{ .bmi, .cmov, null, null },
27583 .src_constraints = .{27558 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
27584 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
27585 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
27586 .any,
27587 },
27588 .patterns = &.{27559 .patterns = &.{
27589 .{ .src = .{ .to_mem, .to_mem, .none } },27560 .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } },
27561 .{ .src = .{ .mem, .{ .to_reg = .eax }, .none }, .commute = .{ 0, 1 } },
27562 .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } },
27590 },27563 },
27591 .extra_temps = .{27564 .extra_temps = .{
27592 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27565 .{ .type = .u32, .kind = .{ .reg = .edx } },
27593 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },27566 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
27594 .unused,27567 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27595 .unused,27568 .unused,
27596 .unused,27569 .unused,
27597 .unused,27570 .unused,
...@@ -27601,29 +27574,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27601,29 +27574,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27601 .unused,27574 .unused,
27602 .unused,27575 .unused,
27603 },27576 },
27604 .dst_temps = .{ .mem, .unused },27577 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27605 .clobbers = .{ .eflags = true },27578 .clobbers = .{ .eflags = true },
27606 .each = .{ .once = &.{27579 .each = .{ .once = &.{
27607 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27580 .{ ._, ._, .mov, .tmp1d, .ua(.src0, .add_umax), ._, ._ },
27608 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },27581 .{ ._, ._, .mul, .src1d, ._, ._, ._ },
27609 .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },27582 .{ ._, ._, .andn, .tmp2d, .tmp1d, .dst0d, ._ },
27610 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },27583 .{ ._, ._, .@"or", .tmp2d, .tmp0d, ._, ._ },
27611 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },27584 .{ ._, ._nz, .cmov, .dst0d, .tmp1d, ._, ._ },
27612 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
27613 } },27585 } },
27614 }, .{27586 }, .{
27615 .required_features = .{ .sse2, null, null, null },27587 .required_features = .{ .cmov, null, null, null },
27616 .src_constraints = .{27588 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
27617 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
27618 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
27619 .any,
27620 },
27621 .patterns = &.{27589 .patterns = &.{
27622 .{ .src = .{ .to_mem, .to_mem, .none } },27590 .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } },
27591 .{ .src = .{ .mem, .{ .to_reg = .eax }, .none }, .commute = .{ 0, 1 } },
27592 .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } },
27623 },27593 },
27624 .extra_temps = .{27594 .extra_temps = .{
27625 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27595 .{ .type = .u32, .kind = .{ .reg = .edx } },
27626 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },27596 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27627 .unused,27597 .unused,
27628 .unused,27598 .unused,
27629 .unused,27599 .unused,
...@@ -27634,30 +27604,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27634,30 +27604,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27634 .unused,27604 .unused,
27635 .unused,27605 .unused,
27636 },27606 },
27637 .dst_temps = .{ .mem, .unused },27607 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27638 .clobbers = .{ .eflags = true },27608 .clobbers = .{ .eflags = true },
27639 .each = .{ .once = &.{27609 .each = .{ .once = &.{
27640 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27610 .{ ._, ._, .mul, .src1d, ._, ._, ._ },
27641 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },27611 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27642 .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },27612 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_2_smin), ._, ._ },
27643 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },27613 .{ ._, ._, .@"or", .tmp1d, .tmp0d, ._, ._ },
27644 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },27614 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ },
27645 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27615 .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ },
27646 } },27616 } },
27647 }, .{27617 }, .{
27648 .required_features = .{ .x87, null, null, null },27618 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
27649 .src_constraints = .{
27650 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
27651 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
27652 .any,
27653 },
27654 .patterns = &.{27619 .patterns = &.{
27655 .{ .src = .{ .to_mem, .to_mem, .none } },27620 .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } },
27621 .{ .src = .{ .mem, .{ .to_reg = .eax }, .none }, .commute = .{ 0, 1 } },
27622 .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } },
27656 },27623 },
27657 .extra_temps = .{27624 .extra_temps = .{
27658 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27625 .{ .type = .u32, .kind = .{ .reg = .edx } },
27659 .{ .type = .f64, .kind = .{ .reg = .st6 } },27626 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27660 .{ .type = .f64, .kind = .{ .reg = .st7 } },27627 .unused,
27661 .unused,27628 .unused,
27662 .unused,27629 .unused,
27663 .unused,27630 .unused,
...@@ -27667,29 +27634,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27667,29 +27634,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27667 .unused,27634 .unused,
27668 .unused,27635 .unused,
27669 },27636 },
27670 .dst_temps = .{ .mem, .unused },27637 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27671 .clobbers = .{ .eflags = true },27638 .clobbers = .{ .eflags = true },
27672 .each = .{ .once = &.{27639 .each = .{ .once = &.{
27673 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27640 .{ ._, ._, .mul, .src1d, ._, ._, ._ },
27674 .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },27641 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
27675 .{ ._, .f_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },27642 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_2_smin), ._, ._ },
27676 .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },27643 .{ ._, ._, .@"or", .tmp1d, .tmp0d, ._, ._ },
27677 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },27644 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
27678 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27645 .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ },
27679 } },27646 } },
27680 }, .{27647 }, .{
27681 .required_features = .{ .x87, null, null, null },27648 .required_features = .{ .@"64bit", null, null, null },
27682 .src_constraints = .{27649 .src_constraints = .{ .{ .exact_signed_int = 64 }, .{ .exact_signed_int = 64 }, .any },
27683 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
27684 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
27685 .any,
27686 },
27687 .patterns = &.{27650 .patterns = &.{
27688 .{ .src = .{ .mem, .mem, .none } },27651 .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } },
27652 .{ .src = .{ .mem, .{ .to_reg = .rax }, .none }, .commute = .{ 0, 1 } },
27653 .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } },
27689 },27654 },
27690 .extra_temps = .{27655 .extra_temps = .{
27691 .{ .type = .f80, .kind = .{ .reg = .st6 } },27656 .{ .type = .i64, .kind = .{ .reg = .rdx } },
27692 .{ .type = .f80, .kind = .{ .reg = .st7 } },27657 .unused,
27693 .unused,27658 .unused,
27694 .unused,27659 .unused,
27695 .unused,27660 .unused,
...@@ -27700,26 +27665,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27700,26 +27665,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27700 .unused,27665 .unused,
27701 .unused,27666 .unused,
27702 },27667 },
27703 .dst_temps = .{ .{ .rc = .x87 }, .unused },27668 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27669 .clobbers = .{ .eflags = true },
27704 .each = .{ .once = &.{27670 .each = .{ .once = &.{
27705 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },27671 .{ ._, .i_, .mul, .src1q, ._, ._, ._ },
27706 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },27672 .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
27707 .{ ._, .f_p, .div, ._, ._, ._, ._ },27673 .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_smax), ._, ._ },
27708 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },27674 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
27675 .{ ._, ._, .xor, .dst0q, .tmp0q, ._, ._ },
27709 } },27676 } },
27710 }, .{27677 }, .{
27711 .required_features = .{ .x87, null, null, null },27678 .required_features = .{ .@"64bit", null, null, null },
27712 .src_constraints = .{27679 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
27713 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
27714 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
27715 .any,
27716 },
27717 .patterns = &.{27680 .patterns = &.{
27718 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },27681 .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } },
27682 .{ .src = .{ .mem, .{ .to_reg = .rax }, .none }, .commute = .{ 0, 1 } },
27683 .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } },
27719 },27684 },
27720 .extra_temps = .{27685 .extra_temps = .{
27721 .{ .type = .f80, .kind = .{ .reg = .st7 } },27686 .{ .type = .i64, .kind = .{ .reg = .rdx } },
27722 .unused,27687 .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27723 .unused,27688 .unused,
27724 .unused,27689 .unused,
27725 .unused,27690 .unused,
...@@ -27730,25 +27695,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27730,25 +27695,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27730 .unused,27695 .unused,
27731 .unused,27696 .unused,
27732 },27697 },
27733 .dst_temps = .{ .{ .rc = .x87 }, .unused },27698 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27699 .clobbers = .{ .eflags = true },
27734 .each = .{ .once = &.{27700 .each = .{ .once = &.{
27735 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },27701 .{ ._, .i_, .mul, .src1q, ._, ._, ._ },
27736 .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ },27702 .{ ._, ._c, .j, .@"1f", ._, ._, ._ },
27737 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },27703 .{ ._, ._, .mov, .tmp1q, .dst0q, ._, ._ },
27704 .{ ._, ._r, .sa, .tmp1q, .sia(-1, .src0, .add_bit_size), ._, ._ },
27705 .{ ._, ._, .cmp, .tmp1q, .tmp0q, ._, ._ },
27706 .{ ._, ._e, .j, .@"0f", ._, ._, ._ },
27707 .{ .@"1:", ._, .mov, .dst0q, .ua(.src0, .add_smax), ._, ._ },
27708 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
27709 .{ ._, ._, .xor, .dst0q, .tmp0q, ._, ._ },
27738 } },27710 } },
27739 }, .{27711 }, .{
27740 .required_features = .{ .x87, null, null, null },27712 .required_features = .{ .@"64bit", null, null, null },
27741 .src_constraints = .{27713 .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .{ .exact_unsigned_int = 64 }, .any },
27742 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
27743 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
27744 .any,
27745 },
27746 .patterns = &.{27714 .patterns = &.{
27747 .{ .src = .{ .mem, .to_x87, .none } },27715 .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } },
27748 .{ .src = .{ .to_x87, .to_x87, .none } },27716 .{ .src = .{ .mem, .{ .to_reg = .rax }, .none }, .commute = .{ 0, 1 } },
27717 .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } },
27749 },27718 },
27750 .extra_temps = .{27719 .extra_temps = .{
27751 .{ .type = .f80, .kind = .{ .reg = .st7 } },27720 .{ .type = .u64, .kind = .{ .reg = .rdx } },
27752 .unused,27721 .unused,
27753 .unused,27722 .unused,
27754 .unused,27723 .unused,
...@@ -27760,26 +27729,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27760,26 +27729,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27760 .unused,27729 .unused,
27761 .unused,27730 .unused,
27762 },27731 },
27763 .dst_temps = .{ .{ .rc = .x87 }, .unused },27732 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27733 .clobbers = .{ .eflags = true },
27764 .each = .{ .once = &.{27734 .each = .{ .once = &.{
27765 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },27735 .{ ._, ._, .mul, .src1q, ._, ._, ._ },
27766 .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ },27736 .{ ._, ._, .sbb, .tmp0q, .tmp0q, ._, ._ },
27767 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },27737 .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ },
27768 } },27738 } },
27769 }, .{27739 }, .{
27770 .required_features = .{ .x87, null, null, null },27740 .required_features = .{ .@"64bit", .bmi, .cmov, null },
27771 .src_constraints = .{27741 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
27772 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
27773 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
27774 .any,
27775 },
27776 .patterns = &.{27742 .patterns = &.{
27777 .{ .src = .{ .to_mem, .to_mem, .none } },27743 .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } },
27744 .{ .src = .{ .mem, .{ .to_reg = .rax }, .none }, .commute = .{ 0, 1 } },
27745 .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } },
27778 },27746 },
27779 .extra_temps = .{27747 .extra_temps = .{
27780 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27748 .{ .type = .u64, .kind = .{ .reg = .rdx } },
27781 .{ .type = .f80, .kind = .{ .reg = .st6 } },27749 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27782 .{ .type = .f80, .kind = .{ .reg = .st7 } },27750 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27783 .unused,27751 .unused,
27784 .unused,27752 .unused,
27785 .unused,27753 .unused,
...@@ -27789,31 +27757,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27789,31 +27757,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27789 .unused,27757 .unused,
27790 .unused,27758 .unused,
27791 },27759 },
27792 .dst_temps = .{ .mem, .unused },27760 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27793 .clobbers = .{ .eflags = true },27761 .clobbers = .{ .eflags = true },
27794 .each = .{ .once = &.{27762 .each = .{ .once = &.{
27795 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27763 .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
27796 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },27764 .{ ._, ._, .mul, .src1q, ._, ._, ._ },
27797 .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },27765 .{ ._, ._, .andn, .tmp2q, .tmp1q, .dst0q, ._ },
27798 .{ ._, .f_p, .div, ._, ._, ._, ._ },27766 .{ ._, ._, .@"or", .tmp2q, .tmp0q, ._, ._ },
27799 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },27767 .{ ._, ._nz, .cmov, .dst0q, .tmp1q, ._, ._ },
27800 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
27801 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
27802 } },27768 } },
27803 }, .{27769 }, .{
27804 .required_features = .{ .sse, null, null, null },27770 .required_features = .{ .@"64bit", .cmov, null, null },
27805 .src_constraints = .{27771 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
27806 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
27807 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
27808 .any,
27809 },
27810 .patterns = &.{27772 .patterns = &.{
27811 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },27773 .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } },
27774 .{ .src = .{ .mem, .{ .to_reg = .rax }, .none }, .commute = .{ 0, 1 } },
27775 .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } },
27812 },27776 },
27813 .call_frame = .{ .alignment = .@"16" },
27814 .extra_temps = .{27777 .extra_temps = .{
27815 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },27778 .{ .type = .u64, .kind = .{ .reg = .rdx } },
27816 .unused,27779 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27817 .unused,27780 .unused,
27818 .unused,27781 .unused,
27819 .unused,27782 .unused,
...@@ -27825,26 +27788,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27825,26 +27788,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27825 .unused,27788 .unused,
27826 },27789 },
27827 .dst_temps = .{ .{ .ref = .src0 }, .unused },27790 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27828 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27791 .clobbers = .{ .eflags = true },
27829 .each = .{ .once = &.{27792 .each = .{ .once = &.{
27830 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },27793 .{ ._, ._, .mul, .src1q, ._, ._, ._ },
27794 .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_2_smin), ._, ._ },
27795 .{ ._, ._, .@"and", .tmp1q, .dst0q, ._, ._ },
27796 .{ ._, ._, .@"or", .tmp1q, .tmp0q, ._, ._ },
27797 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
27798 .{ ._, ._nz, .cmov, .dst0q, .tmp0q, ._, ._ },
27831 } },27799 } },
27832 }, .{27800 }, .{
27833 .required_features = .{ .avx, null, null, null },27801 .required_features = .{ .@"64bit", null, null, null },
27834 .src_constraints = .{27802 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
27835 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
27836 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
27837 .any,
27838 },
27839 .patterns = &.{27803 .patterns = &.{
27840 .{ .src = .{ .to_mem, .to_mem, .none } },27804 .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } },
27805 .{ .src = .{ .mem, .{ .to_reg = .rax }, .none }, .commute = .{ 0, 1 } },
27806 .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } },
27841 },27807 },
27842 .call_frame = .{ .alignment = .@"16" },
27843 .extra_temps = .{27808 .extra_temps = .{
27844 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27809 .{ .type = .u64, .kind = .{ .reg = .rdx } },
27845 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },27810 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
27846 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },27811 .unused,
27847 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },27812 .unused,
27848 .unused,27813 .unused,
27849 .unused,27814 .unused,
27850 .unused,27815 .unused,
...@@ -27853,28 +27818,5280 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -27853,28 +27818,5280 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
27853 .unused,27818 .unused,
27854 .unused,27819 .unused,
27855 },27820 },
27856 .dst_temps = .{ .mem, .unused },27821 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27857 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27822 .clobbers = .{ .eflags = true },
27858 .each = .{ .once = &.{27823 .each = .{ .once = &.{
27859 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27824 .{ ._, ._, .mul, .src1q, ._, ._, ._ },
27860 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },27825 .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_2_smin), ._, ._ },
27861 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },27826 .{ ._, ._, .@"and", .tmp1q, .dst0q, ._, ._ },
27862 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },27827 .{ ._, ._, .@"or", .tmp1q, .tmp0q, ._, ._ },
27863 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },27828 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
27864 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },27829 .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ },
27865 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
27866 } },27830 } },
27867 }, .{27831 }, .{
27868 .required_features = .{ .sse2, null, null, null },27832 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
27869 .src_constraints = .{27833 .src_constraints = .{
27870 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },27834 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
27871 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },27835 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
27872 .any,27836 .any,
27873 },27837 },
27874 .patterns = &.{27838 .patterns = &.{
27875 .{ .src = .{ .to_mem, .to_mem, .none } },27839 .{ .src = .{ .to_mem, .to_mem, .none } },
27876 },27840 },
27877 .call_frame = .{ .alignment = .@"16" },27841 .extra_temps = .{
27842 .{ .type = .isize, .kind = .{ .reg = .rdi } },
27843 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27844 .{ .type = .usize, .kind = .{ .reg = .rcx } },
27845 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27846 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27847 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
27848 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27849 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
27850 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27851 .{ .type = .u64, .kind = .{ .reg = .rax } },
27852 .{ .type = .u64, .kind = .{ .reg = .rdx } },
27853 },
27854 .dst_temps = .{ .mem, .unused },
27855 .clobbers = .{ .eflags = true },
27856 .each = .{ .once = &.{
27857 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
27858 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
27859 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
27860 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
27861 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
27862 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
27863 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
27864 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
27865 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
27866 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
27867 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
27868 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
27869 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
27870 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
27871 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
27872 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
27873 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
27874 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
27875 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
27876 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
27877 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
27878 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
27879 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
27880 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
27881 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
27882 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
27883 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
27884 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
27885 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
27886 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
27887 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
27888 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
27889 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
27890 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
27891 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
27892 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
27893 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
27894 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
27895 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
27896 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
27897 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
27898 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
27899 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
27900 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
27901 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
27902 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
27903 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
27904 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
27905 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
27906 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
27907 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
27908 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
27909 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
27910 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
27911 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
27912 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
27913 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
27914 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
27915 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
27916 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
27917 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
27918 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
27919 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
27920 .{ ._, ._c, .st, ._, ._, ._, ._ },
27921 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
27922 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
27923 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
27924 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
27925 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
27926 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
27927 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
27928 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
27929 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
27930 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
27931 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
27932 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
27933 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
27934 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
27935 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
27936 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
27937 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
27938 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
27939 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
27940 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
27941 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
27942 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
27943 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
27944 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
27945 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
27946 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
27947 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
27948 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .ui(1), ._ },
27949 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp9q, ._, ._ },
27950 } },
27951 }, .{
27952 .required_features = .{ .@"64bit", .cmov, null, null },
27953 .src_constraints = .{
27954 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
27955 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
27956 .any,
27957 },
27958 .patterns = &.{
27959 .{ .src = .{ .to_mem, .to_mem, .none } },
27960 },
27961 .extra_temps = .{
27962 .{ .type = .isize, .kind = .{ .reg = .rdi } },
27963 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27964 .{ .type = .usize, .kind = .{ .reg = .rcx } },
27965 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27966 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27967 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
27968 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27969 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
27970 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
27971 .{ .type = .u64, .kind = .{ .reg = .rax } },
27972 .{ .type = .u64, .kind = .{ .reg = .rdx } },
27973 },
27974 .dst_temps = .{ .mem, .unused },
27975 .clobbers = .{ .eflags = true },
27976 .each = .{ .once = &.{
27977 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
27978 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
27979 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
27980 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
27981 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
27982 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
27983 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
27984 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
27985 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
27986 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
27987 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
27988 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
27989 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
27990 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
27991 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
27992 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
27993 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
27994 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
27995 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
27996 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
27997 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
27998 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
27999 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28000 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28001 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28002 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28003 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28004 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28005 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28006 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28007 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28008 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28009 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28010 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28011 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
28012 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
28013 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
28014 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
28015 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
28016 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
28017 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
28018 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28019 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
28020 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
28021 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
28022 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
28023 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28024 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
28025 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28026 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
28027 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28028 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28029 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28030 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28031 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28032 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28033 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28034 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
28035 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28036 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
28037 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28038 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28039 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
28040 .{ ._, ._c, .st, ._, ._, ._, ._ },
28041 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28042 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28043 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28044 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28045 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28046 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28047 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28048 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28049 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
28050 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
28051 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
28052 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28053 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28054 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28055 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
28056 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
28057 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
28058 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28059 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
28060 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
28061 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28062 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
28063 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
28064 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
28065 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
28066 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
28067 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
28068 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .ui(1), ._ },
28069 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp9q, ._, ._ },
28070 } },
28071 }, .{
28072 .required_features = .{ .@"64bit", .slow_incdec, null, null },
28073 .src_constraints = .{
28074 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
28075 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
28076 .any,
28077 },
28078 .patterns = &.{
28079 .{ .src = .{ .to_mem, .to_mem, .none } },
28080 },
28081 .extra_temps = .{
28082 .{ .type = .isize, .kind = .{ .reg = .rdi } },
28083 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28084 .{ .type = .usize, .kind = .{ .reg = .rcx } },
28085 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28086 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28087 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28088 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28089 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
28090 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28091 .{ .type = .u64, .kind = .{ .reg = .rax } },
28092 .{ .type = .u64, .kind = .{ .reg = .rdx } },
28093 },
28094 .dst_temps = .{ .mem, .unused },
28095 .clobbers = .{ .eflags = true },
28096 .each = .{ .once = &.{
28097 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
28098 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
28099 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
28100 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
28101 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
28102 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
28103 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
28104 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
28105 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
28106 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28107 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
28108 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
28109 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
28110 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
28111 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
28112 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
28113 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
28114 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
28115 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28116 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
28117 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
28118 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
28119 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28120 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28121 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28122 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28123 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28124 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28125 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28126 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28127 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28128 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28129 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28130 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28131 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
28132 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
28133 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
28134 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
28135 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
28136 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
28137 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
28138 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28139 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
28140 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
28141 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
28142 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28143 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28144 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
28145 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28146 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
28147 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28148 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28149 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28150 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28151 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28152 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28153 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28154 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
28155 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28156 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
28157 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28158 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28159 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
28160 .{ ._, ._c, .st, ._, ._, ._, ._ },
28161 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28162 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28163 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28164 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28165 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28166 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28167 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28168 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28169 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
28170 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
28171 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
28172 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28173 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28174 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28175 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
28176 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
28177 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
28178 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28179 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
28180 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
28181 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28182 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
28183 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
28184 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
28185 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
28186 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
28187 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
28188 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .ui(1), ._ },
28189 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp9q, ._, ._ },
28190 } },
28191 }, .{
28192 .required_features = .{ .@"64bit", null, null, null },
28193 .src_constraints = .{
28194 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
28195 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
28196 .any,
28197 },
28198 .patterns = &.{
28199 .{ .src = .{ .to_mem, .to_mem, .none } },
28200 },
28201 .extra_temps = .{
28202 .{ .type = .isize, .kind = .{ .reg = .rdi } },
28203 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28204 .{ .type = .usize, .kind = .{ .reg = .rcx } },
28205 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28206 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28207 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28208 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28209 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
28210 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28211 .{ .type = .u64, .kind = .{ .reg = .rax } },
28212 .{ .type = .u64, .kind = .{ .reg = .rdx } },
28213 },
28214 .dst_temps = .{ .mem, .unused },
28215 .clobbers = .{ .eflags = true },
28216 .each = .{ .once = &.{
28217 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
28218 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
28219 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
28220 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
28221 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
28222 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
28223 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
28224 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
28225 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
28226 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28227 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
28228 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
28229 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
28230 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
28231 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
28232 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
28233 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
28234 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
28235 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28236 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
28237 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
28238 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
28239 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28240 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28241 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28242 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28243 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28244 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28245 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28246 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28247 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28248 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28249 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28250 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28251 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
28252 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
28253 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
28254 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
28255 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
28256 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
28257 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
28258 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28259 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
28260 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
28261 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
28262 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28263 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28264 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
28265 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28266 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
28267 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28268 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28269 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28270 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28271 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28272 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28273 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28274 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
28275 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28276 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
28277 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28278 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28279 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
28280 .{ ._, ._c, .st, ._, ._, ._, ._ },
28281 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28282 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28283 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28284 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28285 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28286 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28287 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28288 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28289 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
28290 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
28291 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
28292 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28293 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28294 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28295 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
28296 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
28297 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
28298 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28299 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
28300 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
28301 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28302 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
28303 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
28304 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
28305 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
28306 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
28307 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
28308 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .ui(1), ._ },
28309 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp9q, ._, ._ },
28310 } },
28311 }, .{
28312 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
28313 .src_constraints = .{
28314 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
28315 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
28316 .any,
28317 },
28318 .patterns = &.{
28319 .{ .src = .{ .to_mem, .to_mem, .none } },
28320 },
28321 .extra_temps = .{
28322 .{ .type = .isize, .kind = .{ .reg = .rdi } },
28323 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28324 .{ .type = .usize, .kind = .{ .reg = .rcx } },
28325 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28326 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28327 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28328 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28329 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
28330 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28331 .{ .type = .u64, .kind = .{ .reg = .rax } },
28332 .{ .type = .u64, .kind = .{ .reg = .rdx } },
28333 },
28334 .dst_temps = .{ .mem, .unused },
28335 .clobbers = .{ .eflags = true },
28336 .each = .{ .once = &.{
28337 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
28338 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
28339 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
28340 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
28341 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
28342 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
28343 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
28344 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28345 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
28346 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
28347 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
28348 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
28349 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
28350 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
28351 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
28352 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
28353 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28354 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
28355 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
28356 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
28357 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28358 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28359 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28360 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28361 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28362 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28363 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28364 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28365 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28366 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28367 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28368 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28369 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
28370 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
28371 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
28372 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
28373 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
28374 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
28375 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
28376 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28377 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
28378 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
28379 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
28380 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
28381 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28382 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
28383 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28384 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
28385 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28386 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28387 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28388 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28389 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28390 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28391 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28392 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
28393 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28394 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
28395 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28396 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28397 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
28398 .{ ._, ._c, .st, ._, ._, ._, ._ },
28399 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28400 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28401 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28402 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28403 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28404 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28405 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28406 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28407 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
28408 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
28409 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
28410 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28411 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28412 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28413 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
28414 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
28415 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
28416 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28417 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
28418 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
28419 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
28420 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
28421 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
28422 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
28423 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
28424 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
28425 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28426 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
28427 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
28428 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
28429 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
28430 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
28431 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
28432 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .ui(1), ._ },
28433 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp9q, ._, ._ },
28434 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
28435 } },
28436 }, .{
28437 .required_features = .{ .@"64bit", .cmov, null, null },
28438 .src_constraints = .{
28439 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
28440 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
28441 .any,
28442 },
28443 .patterns = &.{
28444 .{ .src = .{ .to_mem, .to_mem, .none } },
28445 },
28446 .extra_temps = .{
28447 .{ .type = .isize, .kind = .{ .reg = .rdi } },
28448 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28449 .{ .type = .usize, .kind = .{ .reg = .rcx } },
28450 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28451 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28452 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28453 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28454 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
28455 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28456 .{ .type = .u64, .kind = .{ .reg = .rax } },
28457 .{ .type = .u64, .kind = .{ .reg = .rdx } },
28458 },
28459 .dst_temps = .{ .mem, .unused },
28460 .clobbers = .{ .eflags = true },
28461 .each = .{ .once = &.{
28462 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
28463 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
28464 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
28465 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
28466 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
28467 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
28468 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
28469 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28470 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
28471 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
28472 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
28473 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
28474 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
28475 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
28476 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
28477 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
28478 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28479 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
28480 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
28481 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
28482 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28483 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28484 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28485 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28486 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28487 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28488 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28489 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28490 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28491 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28492 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28493 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28494 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
28495 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
28496 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
28497 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
28498 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
28499 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
28500 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
28501 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28502 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
28503 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
28504 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
28505 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
28506 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28507 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
28508 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28509 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
28510 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28511 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28512 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28513 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28514 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28515 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28516 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28517 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
28518 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28519 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
28520 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28521 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28522 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
28523 .{ ._, ._c, .st, ._, ._, ._, ._ },
28524 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28525 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28526 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28527 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28528 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28529 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28530 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28531 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28532 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
28533 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
28534 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
28535 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28536 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28537 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28538 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
28539 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
28540 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
28541 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28542 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
28543 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
28544 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
28545 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
28546 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
28547 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
28548 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
28549 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
28550 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28551 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
28552 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
28553 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
28554 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
28555 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
28556 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
28557 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .ui(1), ._ },
28558 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp9q, ._, ._ },
28559 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
28560 } },
28561 }, .{
28562 .required_features = .{ .@"64bit", .slow_incdec, null, null },
28563 .src_constraints = .{
28564 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
28565 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
28566 .any,
28567 },
28568 .patterns = &.{
28569 .{ .src = .{ .to_mem, .to_mem, .none } },
28570 },
28571 .extra_temps = .{
28572 .{ .type = .isize, .kind = .{ .reg = .rdi } },
28573 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28574 .{ .type = .usize, .kind = .{ .reg = .rcx } },
28575 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28576 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28577 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28578 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28579 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
28580 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28581 .{ .type = .u64, .kind = .{ .reg = .rax } },
28582 .{ .type = .u64, .kind = .{ .reg = .rdx } },
28583 },
28584 .dst_temps = .{ .mem, .unused },
28585 .clobbers = .{ .eflags = true },
28586 .each = .{ .once = &.{
28587 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
28588 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
28589 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
28590 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
28591 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
28592 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
28593 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
28594 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28595 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
28596 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
28597 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
28598 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
28599 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
28600 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
28601 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
28602 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
28603 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28604 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
28605 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
28606 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
28607 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28608 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28609 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28610 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28611 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28612 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28613 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28614 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28615 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28616 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28617 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28618 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28619 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
28620 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
28621 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
28622 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
28623 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
28624 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
28625 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
28626 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28627 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
28628 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
28629 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
28630 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28631 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28632 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
28633 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28634 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
28635 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28636 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28637 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28638 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28639 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28640 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28641 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28642 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
28643 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28644 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
28645 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28646 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28647 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
28648 .{ ._, ._c, .st, ._, ._, ._, ._ },
28649 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28650 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28651 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28652 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28653 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28654 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28655 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28656 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28657 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
28658 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
28659 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
28660 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28661 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28662 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28663 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
28664 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
28665 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
28666 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28667 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
28668 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
28669 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
28670 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
28671 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
28672 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
28673 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
28674 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
28675 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28676 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
28677 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
28678 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
28679 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
28680 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
28681 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
28682 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .ui(1), ._ },
28683 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp9q, ._, ._ },
28684 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
28685 } },
28686 }, .{
28687 .required_features = .{ .@"64bit", null, null, null },
28688 .src_constraints = .{
28689 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
28690 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
28691 .any,
28692 },
28693 .patterns = &.{
28694 .{ .src = .{ .to_mem, .to_mem, .none } },
28695 },
28696 .extra_temps = .{
28697 .{ .type = .isize, .kind = .{ .reg = .rdi } },
28698 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28699 .{ .type = .usize, .kind = .{ .reg = .rcx } },
28700 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28701 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28702 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28703 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28704 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
28705 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28706 .{ .type = .u64, .kind = .{ .reg = .rax } },
28707 .{ .type = .u64, .kind = .{ .reg = .rdx } },
28708 },
28709 .dst_temps = .{ .mem, .unused },
28710 .clobbers = .{ .eflags = true },
28711 .each = .{ .once = &.{
28712 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
28713 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
28714 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
28715 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
28716 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
28717 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
28718 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
28719 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28720 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
28721 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
28722 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
28723 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
28724 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
28725 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
28726 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
28727 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
28728 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28729 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
28730 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
28731 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
28732 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28733 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28734 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28735 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28736 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28737 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28738 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28739 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28740 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28741 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28742 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28743 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28744 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
28745 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
28746 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
28747 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
28748 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
28749 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
28750 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
28751 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28752 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
28753 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
28754 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
28755 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28756 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28757 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
28758 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28759 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
28760 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28761 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28762 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28763 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28764 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28765 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28766 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28767 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
28768 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28769 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
28770 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28771 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28772 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
28773 .{ ._, ._c, .st, ._, ._, ._, ._ },
28774 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28775 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28776 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28777 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28778 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28779 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28780 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28781 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28782 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
28783 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
28784 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
28785 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28786 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28787 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28788 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
28789 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
28790 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
28791 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28792 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
28793 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
28794 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
28795 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
28796 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
28797 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
28798 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
28799 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
28800 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28801 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
28802 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
28803 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
28804 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
28805 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
28806 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
28807 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .ui(1), ._ },
28808 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp9q, ._, ._ },
28809 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
28810 } },
28811 }, .{
28812 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
28813 .src_constraints = .{
28814 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 1 } },
28815 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 1 } },
28816 .any,
28817 },
28818 .patterns = &.{
28819 .{ .src = .{ .to_mem, .to_mem, .none } },
28820 },
28821 .extra_temps = .{
28822 .{ .type = .isize, .kind = .{ .reg = .rdi } },
28823 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28824 .{ .type = .usize, .kind = .{ .reg = .rcx } },
28825 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28826 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28827 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28828 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28829 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
28830 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28831 .{ .type = .u64, .kind = .{ .reg = .rax } },
28832 .{ .type = .u64, .kind = .{ .reg = .rdx } },
28833 },
28834 .dst_temps = .{ .mem, .unused },
28835 .clobbers = .{ .eflags = true },
28836 .each = .{ .once = &.{
28837 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
28838 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
28839 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
28840 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
28841 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
28842 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
28843 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
28844 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28845 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
28846 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
28847 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
28848 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
28849 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
28850 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
28851 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
28852 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
28853 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28854 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
28855 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
28856 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
28857 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28858 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28859 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28860 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28861 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28862 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28863 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28864 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28865 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28866 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28867 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28868 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28869 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
28870 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
28871 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
28872 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
28873 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
28874 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
28875 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
28876 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28877 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
28878 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
28879 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
28880 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
28881 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28882 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
28883 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28884 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
28885 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28886 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28887 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28888 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28889 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28890 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28891 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
28892 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
28893 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28894 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
28895 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28896 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
28897 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
28898 .{ ._, ._c, .st, ._, ._, ._, ._ },
28899 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28900 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28901 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
28902 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
28903 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
28904 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
28905 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
28906 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28907 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
28908 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
28909 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
28910 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28911 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28912 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
28913 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
28914 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
28915 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
28916 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
28917 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
28918 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
28919 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
28920 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
28921 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
28922 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
28923 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
28924 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
28925 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
28926 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
28927 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
28928 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
28929 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
28930 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
28931 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
28932 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
28933 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
28934 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
28935 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
28936 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
28937 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
28938 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ },
28939 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
28940 } },
28941 }, .{
28942 .required_features = .{ .@"64bit", .cmov, null, null },
28943 .src_constraints = .{
28944 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 1 } },
28945 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 1 } },
28946 .any,
28947 },
28948 .patterns = &.{
28949 .{ .src = .{ .to_mem, .to_mem, .none } },
28950 },
28951 .extra_temps = .{
28952 .{ .type = .isize, .kind = .{ .reg = .rdi } },
28953 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28954 .{ .type = .usize, .kind = .{ .reg = .rcx } },
28955 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28956 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28957 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28958 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28959 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
28960 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
28961 .{ .type = .u64, .kind = .{ .reg = .rax } },
28962 .{ .type = .u64, .kind = .{ .reg = .rdx } },
28963 },
28964 .dst_temps = .{ .mem, .unused },
28965 .clobbers = .{ .eflags = true },
28966 .each = .{ .once = &.{
28967 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
28968 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
28969 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
28970 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
28971 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
28972 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
28973 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
28974 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
28975 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
28976 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
28977 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
28978 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
28979 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
28980 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
28981 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
28982 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
28983 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28984 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
28985 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
28986 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
28987 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
28988 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
28989 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
28990 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
28991 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
28992 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
28993 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
28994 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
28995 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
28996 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
28997 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
28998 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
28999 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
29000 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
29001 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
29002 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
29003 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
29004 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
29005 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
29006 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29007 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
29008 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
29009 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
29010 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
29011 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29012 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
29013 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29014 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
29015 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29016 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29017 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29018 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29019 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29020 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29021 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29022 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
29023 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29024 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
29025 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29026 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29027 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
29028 .{ ._, ._c, .st, ._, ._, ._, ._ },
29029 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29030 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29031 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29032 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29033 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29034 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29035 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29036 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29037 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
29038 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
29039 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
29040 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29041 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29042 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29043 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
29044 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
29045 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
29046 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29047 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
29048 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
29049 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
29050 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29051 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29052 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29053 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
29054 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29055 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29056 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29057 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29058 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
29059 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29060 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29061 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29062 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
29063 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
29064 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
29065 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
29066 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29067 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
29068 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ },
29069 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
29070 } },
29071 }, .{
29072 .required_features = .{ .@"64bit", .slow_incdec, null, null },
29073 .src_constraints = .{
29074 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 1 } },
29075 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 1 } },
29076 .any,
29077 },
29078 .patterns = &.{
29079 .{ .src = .{ .to_mem, .to_mem, .none } },
29080 },
29081 .extra_temps = .{
29082 .{ .type = .isize, .kind = .{ .reg = .rdi } },
29083 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29084 .{ .type = .usize, .kind = .{ .reg = .rcx } },
29085 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29086 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29087 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
29088 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29089 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
29090 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29091 .{ .type = .u64, .kind = .{ .reg = .rax } },
29092 .{ .type = .u64, .kind = .{ .reg = .rdx } },
29093 },
29094 .dst_temps = .{ .mem, .unused },
29095 .clobbers = .{ .eflags = true },
29096 .each = .{ .once = &.{
29097 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
29098 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
29099 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
29100 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
29101 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
29102 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
29103 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
29104 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29105 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
29106 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
29107 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
29108 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
29109 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
29110 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
29111 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
29112 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
29113 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29114 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
29115 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
29116 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
29117 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
29118 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
29119 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
29120 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
29121 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
29122 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
29123 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29124 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29125 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
29126 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
29127 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
29128 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
29129 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
29130 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
29131 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
29132 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
29133 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
29134 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
29135 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
29136 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29137 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
29138 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
29139 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
29140 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29141 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29142 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
29143 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29144 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
29145 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29146 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29147 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29148 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29149 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29150 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29151 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29152 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
29153 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29154 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
29155 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29156 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29157 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
29158 .{ ._, ._c, .st, ._, ._, ._, ._ },
29159 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29160 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29161 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29162 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29163 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29164 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29165 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29166 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29167 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
29168 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
29169 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
29170 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29171 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29172 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29173 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
29174 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
29175 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
29176 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29177 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
29178 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
29179 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
29180 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29181 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29182 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29183 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
29184 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29185 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29186 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29187 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29188 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
29189 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29190 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29191 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29192 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
29193 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
29194 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
29195 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
29196 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29197 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
29198 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ },
29199 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
29200 } },
29201 }, .{
29202 .required_features = .{ .@"64bit", null, null, null },
29203 .src_constraints = .{
29204 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 1 } },
29205 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 1 } },
29206 .any,
29207 },
29208 .patterns = &.{
29209 .{ .src = .{ .to_mem, .to_mem, .none } },
29210 },
29211 .extra_temps = .{
29212 .{ .type = .isize, .kind = .{ .reg = .rdi } },
29213 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29214 .{ .type = .usize, .kind = .{ .reg = .rcx } },
29215 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29216 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29217 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
29218 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29219 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
29220 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29221 .{ .type = .u64, .kind = .{ .reg = .rax } },
29222 .{ .type = .u64, .kind = .{ .reg = .rdx } },
29223 },
29224 .dst_temps = .{ .mem, .unused },
29225 .clobbers = .{ .eflags = true },
29226 .each = .{ .once = &.{
29227 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
29228 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
29229 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
29230 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
29231 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
29232 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
29233 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
29234 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29235 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
29236 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
29237 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
29238 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
29239 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
29240 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
29241 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
29242 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
29243 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29244 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
29245 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
29246 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
29247 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
29248 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
29249 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
29250 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
29251 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
29252 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
29253 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29254 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29255 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
29256 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
29257 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
29258 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
29259 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
29260 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
29261 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
29262 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
29263 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
29264 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
29265 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
29266 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29267 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
29268 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
29269 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
29270 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29271 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29272 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
29273 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29274 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
29275 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29276 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29277 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29278 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29279 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29280 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29281 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29282 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
29283 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29284 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
29285 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29286 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29287 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
29288 .{ ._, ._c, .st, ._, ._, ._, ._ },
29289 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29290 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29291 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29292 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29293 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29294 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29295 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29296 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29297 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
29298 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
29299 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
29300 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29301 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29302 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29303 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
29304 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
29305 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
29306 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29307 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
29308 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
29309 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
29310 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29311 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29312 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29313 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
29314 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29315 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29316 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29317 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29318 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
29319 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29320 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29321 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29322 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
29323 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
29324 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
29325 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
29326 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29327 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
29328 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ },
29329 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
29330 } },
29331 }, .{
29332 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
29333 .src_constraints = .{
29334 .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } },
29335 .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } },
29336 .any,
29337 },
29338 .patterns = &.{
29339 .{ .src = .{ .to_mem, .to_mem, .none } },
29340 },
29341 .extra_temps = .{
29342 .{ .type = .isize, .kind = .{ .reg = .rdi } },
29343 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29344 .{ .type = .usize, .kind = .{ .reg = .rcx } },
29345 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29346 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29347 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
29348 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29349 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
29350 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29351 .{ .type = .u64, .kind = .{ .reg = .rax } },
29352 .{ .type = .u64, .kind = .{ .reg = .rdx } },
29353 },
29354 .dst_temps = .{ .mem, .unused },
29355 .clobbers = .{ .eflags = true },
29356 .each = .{ .once = &.{
29357 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
29358 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
29359 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
29360 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
29361 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
29362 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
29363 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
29364 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29365 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
29366 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
29367 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
29368 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
29369 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
29370 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
29371 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
29372 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
29373 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29374 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
29375 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
29376 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
29377 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
29378 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
29379 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
29380 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
29381 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
29382 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
29383 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29384 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29385 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
29386 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
29387 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
29388 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
29389 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
29390 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
29391 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
29392 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
29393 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
29394 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
29395 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
29396 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29397 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
29398 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
29399 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
29400 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
29401 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29402 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
29403 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29404 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
29405 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29406 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29407 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29408 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29409 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29410 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29411 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29412 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
29413 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29414 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
29415 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29416 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29417 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
29418 .{ ._, ._c, .st, ._, ._, ._, ._ },
29419 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29420 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29421 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29422 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29423 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29424 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29425 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29426 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29427 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
29428 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
29429 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
29430 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29431 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29432 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29433 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
29434 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
29435 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
29436 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29437 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
29438 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
29439 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
29440 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29441 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29442 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29443 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
29444 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29445 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29446 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29447 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29448 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
29449 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29450 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29451 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29452 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
29453 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
29454 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
29455 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
29456 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29457 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
29458 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .uia(65, .dst0, .sub_bit_size_rem_64), ._ },
29459 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp9q, ._, ._ },
29460 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
29461 } },
29462 }, .{
29463 .required_features = .{ .@"64bit", .cmov, null, null },
29464 .src_constraints = .{
29465 .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } },
29466 .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } },
29467 .any,
29468 },
29469 .patterns = &.{
29470 .{ .src = .{ .to_mem, .to_mem, .none } },
29471 },
29472 .extra_temps = .{
29473 .{ .type = .isize, .kind = .{ .reg = .rdi } },
29474 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29475 .{ .type = .usize, .kind = .{ .reg = .rcx } },
29476 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29477 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29478 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
29479 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29480 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
29481 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29482 .{ .type = .u64, .kind = .{ .reg = .rax } },
29483 .{ .type = .u64, .kind = .{ .reg = .rdx } },
29484 },
29485 .dst_temps = .{ .mem, .unused },
29486 .clobbers = .{ .eflags = true },
29487 .each = .{ .once = &.{
29488 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
29489 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
29490 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
29491 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
29492 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
29493 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
29494 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
29495 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29496 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
29497 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
29498 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
29499 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
29500 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
29501 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
29502 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
29503 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
29504 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29505 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
29506 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
29507 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
29508 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
29509 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
29510 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
29511 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
29512 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
29513 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
29514 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29515 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29516 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
29517 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
29518 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
29519 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
29520 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
29521 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
29522 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
29523 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
29524 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
29525 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
29526 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
29527 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29528 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
29529 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
29530 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
29531 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
29532 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29533 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
29534 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29535 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
29536 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29537 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29538 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29539 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29540 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29541 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29542 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29543 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
29544 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29545 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
29546 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29547 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29548 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
29549 .{ ._, ._c, .st, ._, ._, ._, ._ },
29550 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29551 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29552 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29553 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29554 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29555 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29556 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29557 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29558 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
29559 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
29560 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
29561 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29562 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29563 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29564 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
29565 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
29566 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
29567 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29568 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
29569 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
29570 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
29571 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29572 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29573 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29574 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
29575 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29576 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29577 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29578 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29579 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
29580 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29581 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29582 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29583 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
29584 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
29585 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
29586 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
29587 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29588 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
29589 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .uia(65, .dst0, .sub_bit_size_rem_64), ._ },
29590 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp9q, ._, ._ },
29591 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
29592 } },
29593 }, .{
29594 .required_features = .{ .@"64bit", .slow_incdec, null, null },
29595 .src_constraints = .{
29596 .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } },
29597 .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } },
29598 .any,
29599 },
29600 .patterns = &.{
29601 .{ .src = .{ .to_mem, .to_mem, .none } },
29602 },
29603 .extra_temps = .{
29604 .{ .type = .isize, .kind = .{ .reg = .rdi } },
29605 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29606 .{ .type = .usize, .kind = .{ .reg = .rcx } },
29607 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29608 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29609 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
29610 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29611 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
29612 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29613 .{ .type = .u64, .kind = .{ .reg = .rax } },
29614 .{ .type = .u64, .kind = .{ .reg = .rdx } },
29615 },
29616 .dst_temps = .{ .mem, .unused },
29617 .clobbers = .{ .eflags = true },
29618 .each = .{ .once = &.{
29619 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
29620 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
29621 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
29622 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
29623 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
29624 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
29625 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
29626 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29627 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
29628 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
29629 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
29630 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
29631 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
29632 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
29633 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
29634 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
29635 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29636 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
29637 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
29638 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
29639 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
29640 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
29641 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
29642 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
29643 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
29644 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
29645 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29646 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29647 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
29648 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
29649 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
29650 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
29651 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
29652 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
29653 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
29654 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
29655 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
29656 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
29657 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
29658 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29659 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
29660 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
29661 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
29662 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29663 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29664 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
29665 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29666 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
29667 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29668 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29669 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29670 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29671 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29672 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29673 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29674 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
29675 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29676 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
29677 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29678 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29679 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
29680 .{ ._, ._c, .st, ._, ._, ._, ._ },
29681 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29682 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29683 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29684 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29685 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29686 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29687 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29688 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29689 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
29690 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
29691 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
29692 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29693 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29694 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29695 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
29696 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
29697 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
29698 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29699 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
29700 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
29701 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
29702 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29703 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29704 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29705 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
29706 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29707 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29708 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29709 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29710 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
29711 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29712 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29713 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29714 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
29715 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
29716 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
29717 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
29718 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29719 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
29720 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .uia(65, .dst0, .sub_bit_size_rem_64), ._ },
29721 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp9q, ._, ._ },
29722 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
29723 } },
29724 }, .{
29725 .required_features = .{ .@"64bit", null, null, null },
29726 .src_constraints = .{
29727 .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } },
29728 .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } },
29729 .any,
29730 },
29731 .patterns = &.{
29732 .{ .src = .{ .to_mem, .to_mem, .none } },
29733 },
29734 .extra_temps = .{
29735 .{ .type = .isize, .kind = .{ .reg = .rdi } },
29736 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29737 .{ .type = .usize, .kind = .{ .reg = .rcx } },
29738 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29739 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29740 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
29741 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29742 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
29743 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29744 .{ .type = .u64, .kind = .{ .reg = .rax } },
29745 .{ .type = .u64, .kind = .{ .reg = .rdx } },
29746 },
29747 .dst_temps = .{ .mem, .unused },
29748 .clobbers = .{ .eflags = true },
29749 .each = .{ .once = &.{
29750 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
29751 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
29752 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
29753 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
29754 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
29755 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
29756 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
29757 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29758 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
29759 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
29760 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
29761 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
29762 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
29763 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
29764 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
29765 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
29766 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29767 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
29768 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
29769 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
29770 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
29771 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
29772 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
29773 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
29774 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
29775 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
29776 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29777 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29778 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
29779 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
29780 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
29781 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
29782 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
29783 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
29784 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
29785 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
29786 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
29787 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
29788 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
29789 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29790 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
29791 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
29792 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
29793 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29794 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29795 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
29796 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29797 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
29798 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29799 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29800 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29801 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29802 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29803 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29804 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29805 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
29806 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29807 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
29808 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29809 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29810 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
29811 .{ ._, ._c, .st, ._, ._, ._, ._ },
29812 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29813 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29814 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29815 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29816 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29817 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29818 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29819 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29820 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
29821 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
29822 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
29823 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29824 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29825 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29826 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
29827 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
29828 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
29829 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29830 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
29831 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
29832 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -16), ._, ._ },
29833 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29834 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29835 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29836 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
29837 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29838 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29839 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29840 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29841 .{ ._, ._, .xor, .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
29842 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29843 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29844 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29845 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
29846 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
29847 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
29848 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
29849 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29850 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
29851 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .uia(65, .dst0, .sub_bit_size_rem_64), ._ },
29852 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp9q, ._, ._ },
29853 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
29854 } },
29855 }, .{
29856 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
29857 .src_constraints = .{
29858 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 65 } },
29859 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 65 } },
29860 .any,
29861 },
29862 .patterns = &.{
29863 .{ .src = .{ .to_mem, .to_mem, .none } },
29864 },
29865 .extra_temps = .{
29866 .{ .type = .isize, .kind = .{ .reg = .rdi } },
29867 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29868 .{ .type = .usize, .kind = .{ .reg = .rcx } },
29869 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29870 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29871 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
29872 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29873 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
29874 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29875 .{ .type = .u64, .kind = .{ .reg = .rax } },
29876 .{ .type = .u64, .kind = .{ .reg = .rdx } },
29877 },
29878 .dst_temps = .{ .mem, .unused },
29879 .clobbers = .{ .eflags = true },
29880 .each = .{ .once = &.{
29881 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
29882 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
29883 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
29884 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
29885 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
29886 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
29887 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
29888 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
29889 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
29890 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29891 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
29892 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
29893 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
29894 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
29895 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
29896 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
29897 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
29898 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
29899 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29900 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
29901 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
29902 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
29903 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
29904 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
29905 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
29906 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
29907 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
29908 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
29909 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29910 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
29911 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
29912 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
29913 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
29914 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
29915 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
29916 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
29917 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
29918 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
29919 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
29920 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
29921 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
29922 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29923 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
29924 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
29925 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
29926 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
29927 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29928 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
29929 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29930 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
29931 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29932 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29933 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29934 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29935 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29936 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29937 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
29938 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
29939 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29940 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
29941 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
29942 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
29943 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
29944 .{ ._, ._c, .st, ._, ._, ._, ._ },
29945 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29946 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29947 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
29948 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
29949 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
29950 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
29951 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
29952 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
29953 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
29954 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
29955 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
29956 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29957 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
29958 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
29959 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
29960 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
29961 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
29962 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
29963 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
29964 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
29965 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -8), ._, ._ },
29966 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
29967 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29968 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
29969 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
29970 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29971 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
29972 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
29973 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
29974 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
29975 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
29976 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
29977 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
29978 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
29979 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
29980 } },
29981 }, .{
29982 .required_features = .{ .@"64bit", .cmov, null, null },
29983 .src_constraints = .{
29984 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 65 } },
29985 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 65 } },
29986 .any,
29987 },
29988 .patterns = &.{
29989 .{ .src = .{ .to_mem, .to_mem, .none } },
29990 },
29991 .extra_temps = .{
29992 .{ .type = .isize, .kind = .{ .reg = .rdi } },
29993 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29994 .{ .type = .usize, .kind = .{ .reg = .rcx } },
29995 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29996 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29997 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
29998 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
29999 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
30000 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30001 .{ .type = .u64, .kind = .{ .reg = .rax } },
30002 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30003 },
30004 .dst_temps = .{ .mem, .unused },
30005 .clobbers = .{ .eflags = true },
30006 .each = .{ .once = &.{
30007 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
30008 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
30009 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
30010 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
30011 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30012 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
30013 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
30014 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
30015 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
30016 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30017 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
30018 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
30019 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
30020 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
30021 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30022 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
30023 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
30024 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
30025 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30026 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
30027 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
30028 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
30029 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
30030 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
30031 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
30032 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
30033 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
30034 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
30035 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30036 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30037 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
30038 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
30039 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
30040 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
30041 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
30042 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
30043 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
30044 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
30045 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
30046 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
30047 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30048 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30049 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
30050 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
30051 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
30052 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
30053 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30054 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
30055 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30056 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
30057 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30058 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30059 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30060 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30061 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30062 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30063 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30064 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
30065 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30066 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
30067 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30068 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30069 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
30070 .{ ._, ._c, .st, ._, ._, ._, ._ },
30071 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30072 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30073 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30074 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30075 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30076 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30077 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30078 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30079 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
30080 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
30081 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
30082 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30083 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30084 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30085 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
30086 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
30087 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
30088 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30089 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
30090 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
30091 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -8), ._, ._ },
30092 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
30093 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30094 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30095 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
30096 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
30097 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
30098 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30099 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
30100 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
30101 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
30102 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
30103 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
30104 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30105 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
30106 } },
30107 }, .{
30108 .required_features = .{ .@"64bit", .slow_incdec, null, null },
30109 .src_constraints = .{
30110 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 65 } },
30111 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 65 } },
30112 .any,
30113 },
30114 .patterns = &.{
30115 .{ .src = .{ .to_mem, .to_mem, .none } },
30116 },
30117 .extra_temps = .{
30118 .{ .type = .isize, .kind = .{ .reg = .rdi } },
30119 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30120 .{ .type = .usize, .kind = .{ .reg = .rcx } },
30121 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30122 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30123 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
30124 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30125 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
30126 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30127 .{ .type = .u64, .kind = .{ .reg = .rax } },
30128 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30129 },
30130 .dst_temps = .{ .mem, .unused },
30131 .clobbers = .{ .eflags = true },
30132 .each = .{ .once = &.{
30133 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
30134 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
30135 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
30136 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
30137 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30138 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
30139 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
30140 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
30141 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
30142 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30143 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
30144 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
30145 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
30146 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
30147 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30148 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
30149 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
30150 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
30151 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30152 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
30153 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
30154 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
30155 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
30156 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
30157 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
30158 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
30159 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
30160 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
30161 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30162 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30163 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
30164 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
30165 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
30166 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
30167 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
30168 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
30169 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
30170 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
30171 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
30172 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
30173 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30174 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30175 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
30176 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
30177 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
30178 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30179 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30180 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
30181 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30182 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
30183 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30184 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30185 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30186 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30187 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30188 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30189 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30190 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
30191 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30192 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
30193 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30194 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30195 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
30196 .{ ._, ._c, .st, ._, ._, ._, ._ },
30197 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30198 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30199 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30200 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30201 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30202 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30203 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30204 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30205 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
30206 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
30207 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
30208 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30209 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30210 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30211 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
30212 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
30213 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
30214 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30215 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
30216 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
30217 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -8), ._, ._ },
30218 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
30219 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30220 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30221 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
30222 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
30223 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
30224 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30225 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
30226 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
30227 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
30228 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
30229 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
30230 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30231 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
30232 } },
30233 }, .{
30234 .required_features = .{ .@"64bit", null, null, null },
30235 .src_constraints = .{
30236 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 65 } },
30237 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 65 } },
30238 .any,
30239 },
30240 .patterns = &.{
30241 .{ .src = .{ .to_mem, .to_mem, .none } },
30242 },
30243 .extra_temps = .{
30244 .{ .type = .isize, .kind = .{ .reg = .rdi } },
30245 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30246 .{ .type = .usize, .kind = .{ .reg = .rcx } },
30247 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30248 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30249 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
30250 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30251 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
30252 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30253 .{ .type = .u64, .kind = .{ .reg = .rax } },
30254 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30255 },
30256 .dst_temps = .{ .mem, .unused },
30257 .clobbers = .{ .eflags = true },
30258 .each = .{ .once = &.{
30259 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
30260 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
30261 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
30262 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
30263 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30264 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
30265 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
30266 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
30267 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
30268 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30269 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
30270 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
30271 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
30272 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
30273 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30274 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
30275 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
30276 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
30277 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30278 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
30279 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
30280 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
30281 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
30282 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
30283 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
30284 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
30285 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
30286 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
30287 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30288 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30289 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
30290 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
30291 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
30292 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
30293 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
30294 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
30295 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
30296 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
30297 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
30298 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
30299 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30300 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30301 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
30302 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
30303 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
30304 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30305 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30306 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
30307 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30308 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
30309 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30310 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30311 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30312 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30313 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30314 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30315 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30316 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
30317 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30318 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
30319 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30320 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30321 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
30322 .{ ._, ._c, .st, ._, ._, ._, ._ },
30323 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30324 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30325 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30326 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30327 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30328 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30329 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30330 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30331 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
30332 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
30333 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
30334 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30335 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30336 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30337 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
30338 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
30339 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
30340 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30341 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
30342 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
30343 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -8), ._, ._ },
30344 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
30345 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30346 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30347 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
30348 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
30349 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
30350 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30351 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
30352 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
30353 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
30354 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
30355 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
30356 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30357 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ },
30358 } },
30359 }, .{
30360 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
30361 .src_constraints = .{
30362 .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } },
30363 .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } },
30364 .any,
30365 },
30366 .patterns = &.{
30367 .{ .src = .{ .to_mem, .to_mem, .none } },
30368 },
30369 .extra_temps = .{
30370 .{ .type = .isize, .kind = .{ .reg = .rdi } },
30371 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30372 .{ .type = .usize, .kind = .{ .reg = .rcx } },
30373 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30374 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30375 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
30376 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30377 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
30378 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30379 .{ .type = .u64, .kind = .{ .reg = .rax } },
30380 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30381 },
30382 .dst_temps = .{ .mem, .unused },
30383 .clobbers = .{ .eflags = true },
30384 .each = .{ .once = &.{
30385 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
30386 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
30387 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
30388 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
30389 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30390 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
30391 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
30392 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
30393 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
30394 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30395 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
30396 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
30397 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
30398 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
30399 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30400 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
30401 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
30402 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
30403 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30404 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
30405 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
30406 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
30407 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
30408 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
30409 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
30410 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
30411 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
30412 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
30413 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30414 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30415 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
30416 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
30417 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
30418 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
30419 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
30420 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
30421 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
30422 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
30423 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
30424 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
30425 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30426 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30427 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
30428 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
30429 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
30430 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
30431 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30432 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
30433 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30434 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
30435 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30436 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30437 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30438 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30439 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30440 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30441 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30442 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
30443 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30444 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
30445 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30446 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30447 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
30448 .{ ._, ._c, .st, ._, ._, ._, ._ },
30449 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30450 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30451 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30452 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30453 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30454 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30455 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30456 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30457 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
30458 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
30459 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
30460 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30461 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30462 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30463 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
30464 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
30465 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
30466 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30467 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
30468 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
30469 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -8), ._, ._ },
30470 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
30471 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30472 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30473 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
30474 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
30475 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
30476 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30477 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
30478 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
30479 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
30480 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
30481 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
30482 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30483 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .uia(65, .dst0, .sub_bit_size_rem_64), ._ },
30484 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp9q, ._, ._ },
30485 } },
30486 }, .{
30487 .required_features = .{ .@"64bit", .cmov, null, null },
30488 .src_constraints = .{
30489 .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } },
30490 .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } },
30491 .any,
30492 },
30493 .patterns = &.{
30494 .{ .src = .{ .to_mem, .to_mem, .none } },
30495 },
30496 .extra_temps = .{
30497 .{ .type = .isize, .kind = .{ .reg = .rdi } },
30498 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30499 .{ .type = .usize, .kind = .{ .reg = .rcx } },
30500 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30501 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30502 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
30503 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30504 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
30505 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30506 .{ .type = .u64, .kind = .{ .reg = .rax } },
30507 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30508 },
30509 .dst_temps = .{ .mem, .unused },
30510 .clobbers = .{ .eflags = true },
30511 .each = .{ .once = &.{
30512 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
30513 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
30514 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
30515 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
30516 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30517 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
30518 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
30519 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
30520 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
30521 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30522 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
30523 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
30524 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
30525 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
30526 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30527 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
30528 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
30529 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
30530 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30531 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
30532 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
30533 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
30534 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
30535 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
30536 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
30537 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
30538 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
30539 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
30540 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30541 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30542 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
30543 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
30544 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
30545 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
30546 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
30547 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
30548 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
30549 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
30550 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
30551 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
30552 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30553 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30554 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
30555 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
30556 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
30557 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
30558 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30559 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
30560 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30561 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
30562 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30563 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30564 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30565 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30566 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30567 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30568 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30569 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
30570 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30571 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
30572 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30573 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30574 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
30575 .{ ._, ._c, .st, ._, ._, ._, ._ },
30576 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30577 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30578 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30579 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30580 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30581 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30582 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30583 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30584 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
30585 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
30586 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
30587 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30588 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30589 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30590 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
30591 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
30592 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
30593 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30594 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
30595 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
30596 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -8), ._, ._ },
30597 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
30598 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30599 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30600 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
30601 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
30602 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
30603 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30604 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
30605 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
30606 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
30607 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
30608 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
30609 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30610 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .uia(65, .dst0, .sub_bit_size_rem_64), ._ },
30611 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp9q, ._, ._ },
30612 } },
30613 }, .{
30614 .required_features = .{ .@"64bit", .slow_incdec, null, null },
30615 .src_constraints = .{
30616 .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } },
30617 .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } },
30618 .any,
30619 },
30620 .patterns = &.{
30621 .{ .src = .{ .to_mem, .to_mem, .none } },
30622 },
30623 .extra_temps = .{
30624 .{ .type = .isize, .kind = .{ .reg = .rdi } },
30625 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30626 .{ .type = .usize, .kind = .{ .reg = .rcx } },
30627 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30628 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30629 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
30630 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30631 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
30632 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30633 .{ .type = .u64, .kind = .{ .reg = .rax } },
30634 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30635 },
30636 .dst_temps = .{ .mem, .unused },
30637 .clobbers = .{ .eflags = true },
30638 .each = .{ .once = &.{
30639 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
30640 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
30641 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
30642 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
30643 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30644 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
30645 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
30646 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
30647 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
30648 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30649 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
30650 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
30651 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
30652 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
30653 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30654 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
30655 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
30656 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
30657 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30658 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
30659 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
30660 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
30661 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
30662 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
30663 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
30664 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
30665 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
30666 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
30667 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30668 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30669 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
30670 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
30671 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
30672 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
30673 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
30674 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
30675 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
30676 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
30677 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
30678 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
30679 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30680 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30681 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
30682 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
30683 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
30684 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30685 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30686 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
30687 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30688 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
30689 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30690 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30691 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30692 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30693 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30694 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30695 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30696 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
30697 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30698 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
30699 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30700 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30701 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
30702 .{ ._, ._c, .st, ._, ._, ._, ._ },
30703 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30704 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30705 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30706 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30707 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30708 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30709 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30710 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30711 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
30712 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
30713 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
30714 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30715 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30716 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30717 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
30718 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
30719 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
30720 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30721 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
30722 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
30723 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -8), ._, ._ },
30724 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
30725 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30726 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30727 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
30728 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
30729 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
30730 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30731 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
30732 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
30733 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
30734 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
30735 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
30736 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30737 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .uia(65, .dst0, .sub_bit_size_rem_64), ._ },
30738 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp9q, ._, ._ },
30739 } },
30740 }, .{
30741 .required_features = .{ .@"64bit", null, null, null },
30742 .src_constraints = .{
30743 .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } },
30744 .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } },
30745 .any,
30746 },
30747 .patterns = &.{
30748 .{ .src = .{ .to_mem, .to_mem, .none } },
30749 },
30750 .extra_temps = .{
30751 .{ .type = .isize, .kind = .{ .reg = .rdi } },
30752 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30753 .{ .type = .usize, .kind = .{ .reg = .rcx } },
30754 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30755 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30756 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
30757 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30758 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
30759 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30760 .{ .type = .u64, .kind = .{ .reg = .rax } },
30761 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30762 },
30763 .dst_temps = .{ .mem, .unused },
30764 .clobbers = .{ .eflags = true },
30765 .each = .{ .once = &.{
30766 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
30767 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
30768 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
30769 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
30770 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30771 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
30772 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
30773 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
30774 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
30775 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30776 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
30777 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
30778 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
30779 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
30780 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30781 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_size), ._, ._ },
30782 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
30783 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
30784 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30785 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
30786 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
30787 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
30788 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
30789 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_size), .tmp9q, ._, ._ },
30790 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
30791 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
30792 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
30793 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
30794 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30795 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
30796 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
30797 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
30798 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
30799 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
30800 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
30801 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
30802 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
30803 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
30804 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
30805 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_size, -8), ._, ._ },
30806 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30807 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30808 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
30809 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
30810 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
30811 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30812 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30813 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
30814 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30815 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
30816 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30817 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30818 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30819 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30820 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30821 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30822 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
30823 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
30824 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30825 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
30826 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30827 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
30828 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
30829 .{ ._, ._c, .st, ._, ._, ._, ._ },
30830 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30831 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30832 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
30833 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
30834 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
30835 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_size, -8), .tmp8q, ._, ._ },
30836 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
30837 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
30838 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
30839 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
30840 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
30841 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30842 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
30843 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
30844 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
30845 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
30846 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp8q, ._, ._ },
30847 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
30848 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
30849 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
30850 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_size, -8), ._, ._ },
30851 .{ ._, ._, .mov, .tmp2q, .tmp0q, ._, ._ },
30852 .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30853 .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ },
30854 .{ ._, ._, .xor, .tmp2q, .tmp0q, ._, ._ },
30855 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
30856 .{ ._, ._, .@"or", .tmp4q, .tmp2q, ._, ._ },
30857 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30858 .{ ._, ._, .xor, .tmp1q, .tmp3q, ._, ._ },
30859 .{ ._, ._, .mov, .tmp9q, .tmp1q, ._, ._ },
30860 .{ ._, ._, .not, .tmp9q, ._, ._, ._ },
30861 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
30862 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
30863 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30864 .{ ._, ._rd, .sh, .tmp9q, .tmp1q, .uia(65, .dst0, .sub_bit_size_rem_64), ._ },
30865 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp9q, ._, ._ },
30866 } },
30867 }, .{
30868 .required_features = .{ .@"64bit", .bmi2, .adx, null },
30869 .src_constraints = .{
30870 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
30871 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
30872 .any,
30873 },
30874 .patterns = &.{
30875 .{ .src = .{ .to_mem, .to_mem, .none } },
30876 },
30877 .extra_temps = .{
30878 .{ .type = .isize, .kind = .{ .reg = .rax } },
30879 .{ .type = .usize, .kind = .{ .reg = .rdi } },
30880 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30881 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30882 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30883 .{ .type = .isize, .kind = .{ .reg = .rcx } },
30884 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30885 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30886 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30887 .unused,
30888 .unused,
30889 },
30890 .dst_temps = .{ .mem, .unused },
30891 .clobbers = .{ .eflags = true },
30892 .each = .{ .once = &.{
30893 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
30894 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
30895 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
30896 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
30897 .{ .@"0:", ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30898 .{ ._, ._, .@"or", .tmp4q, .memi(.src0q, .tmp0), ._, ._ },
30899 .{ ._, ._z, .j, .@"2f", ._, ._, ._ },
30900 .{ ._, ._, .lea, .tmp5p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ },
30901 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30902 .{ .@"1:", ._x, .mul, .tmp8q, .tmp7q, .leai(.tmp1q, .tmp5), ._ },
30903 .{ ._, ._x, .adc, .tmp7q, .tmp6q, ._, ._ },
30904 .{ ._, ._, .mov, .memiad(.dst0q, .tmp5, .add_size, -8), .tmp7q, ._, ._ },
30905 .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ },
30906 .{ ._, ._x, .ado, .tmp8q, .memia(.dst0q, .tmp5, .add_size), ._, ._ },
30907 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
30908 .{ ._, ._, .lea, .tmp5p, .lead(.tmp5, 8), ._, ._ },
30909 .{ ._, ._mp, .j, .@"1b", ._, ._, ._ },
30910 .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ },
30911 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30912 .{ .@"1:", ._, .mov, .tmp4d, .tmp0d, ._, ._ },
30913 .{ ._, ._x, .ado, .tmp8q, .tmp3q, ._, ._ },
30914 .{ ._, ._x, .adc, .tmp8q, .tmp3q, ._, ._ },
30915 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30916 .{ .@"1:", ._, .@"or", .tmp8q, .leaid(.tmp1q, .tmp4, 8), ._, ._ },
30917 .{ .@"2:", ._, .sub, .tmp4d, .si(8), ._, ._ },
30918 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
30919 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
30920 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
30921 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
30922 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
30923 .{ ._, ._, .@"test", .tmp2q, .tmp2q, ._, ._ },
30924 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30925 .{ ._, ._, .mov, .tmp0q, .si(-1), ._, ._ },
30926 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
30927 .{ ._, ._, .mov, .tmp5d, .sa(.dst0, .add_size_div_8), ._, ._ },
30928 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30929 } },
30930 }, .{
30931 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
30932 .src_constraints = .{
30933 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
30934 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
30935 .any,
30936 },
30937 .patterns = &.{
30938 .{ .src = .{ .to_mem, .to_mem, .none } },
30939 },
30940 .extra_temps = .{
30941 .{ .type = .isize, .kind = .{ .reg = .rax } },
30942 .{ .type = .usize, .kind = .{ .reg = .rdi } },
30943 .{ .type = .u64, .kind = .{ .reg = .rcx } },
30944 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
30945 .{ .type = .u64, .kind = .{ .reg = .rdx } },
30946 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
30947 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30948 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30949 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
30950 .unused,
30951 .unused,
30952 },
30953 .dst_temps = .{ .mem, .unused },
30954 .clobbers = .{ .eflags = true },
30955 .each = .{ .once = &.{
30956 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
30957 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
30958 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
30959 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
30960 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
30961 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
30962 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
30963 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
30964 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
30965 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
30966 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
30967 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
30968 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
30969 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
30970 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
30971 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ },
30972 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
30973 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
30974 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
30975 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
30976 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
30977 .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ },
30978 .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ },
30979 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
30980 .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
30981 .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ },
30982 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
30983 .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ },
30984 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
30985 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
30986 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
30987 .{ ._, ._, .@"test", .tmp2q, .tmp2q, ._, ._ },
30988 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
30989 .{ ._, ._, .mov, .tmp0q, .si(-1), ._, ._ },
30990 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
30991 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
30992 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
30993 } },
30994 }, .{
30995 .required_features = .{ .@"64bit", .bmi2, null, null },
30996 .src_constraints = .{
30997 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
30998 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
30999 .any,
31000 },
31001 .patterns = &.{
31002 .{ .src = .{ .to_mem, .to_mem, .none } },
31003 },
31004 .extra_temps = .{
31005 .{ .type = .isize, .kind = .{ .reg = .rax } },
31006 .{ .type = .usize, .kind = .{ .reg = .rdi } },
31007 .{ .type = .u64, .kind = .{ .reg = .rcx } },
31008 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31009 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31010 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31011 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31012 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31013 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31014 .unused,
31015 .unused,
31016 },
31017 .dst_temps = .{ .mem, .unused },
31018 .clobbers = .{ .eflags = true },
31019 .each = .{ .once = &.{
31020 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31021 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31022 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31023 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31024 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31025 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31026 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31027 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31028 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31029 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31030 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31031 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31032 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31033 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31034 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31035 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ },
31036 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31037 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31038 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31039 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31040 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31041 .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ },
31042 .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ },
31043 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31044 .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31045 .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ },
31046 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
31047 .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ },
31048 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31049 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
31050 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
31051 .{ ._, ._, .@"test", .tmp2q, .tmp2q, ._, ._ },
31052 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31053 .{ ._, ._, .mov, .tmp0q, .si(-1), ._, ._ },
31054 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
31055 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
31056 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31057 } },
31058 }, .{
31059 .required_features = .{ .@"64bit", .slow_incdec, null, null },
31060 .src_constraints = .{
31061 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
31062 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
31063 .any,
31064 },
31065 .patterns = &.{
31066 .{ .src = .{ .to_mem, .to_mem, .none } },
31067 },
31068 .extra_temps = .{
31069 .{ .type = .isize, .kind = .{ .reg = .rdi } },
31070 .{ .type = .usize, .kind = .{ .reg = .rcx } },
31071 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31072 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31073 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31074 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31075 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31076 .{ .type = .u64, .kind = .{ .reg = .rax } },
31077 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31078 .unused,
31079 .unused,
31080 },
31081 .dst_temps = .{ .mem, .unused },
31082 .clobbers = .{ .eflags = true },
31083 .each = .{ .once = &.{
31084 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31085 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31086 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31087 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31088 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31089 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31090 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31091 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31092 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31093 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31094 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31095 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31096 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31097 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31098 .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ },
31099 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ },
31100 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31101 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31102 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31103 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31104 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31105 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31106 .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ },
31107 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31108 .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31109 .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ },
31110 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31111 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31112 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31113 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
31114 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31115 .{ ._, ._, .@"test", .tmp2q, .tmp2q, ._, ._ },
31116 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31117 .{ ._, ._, .mov, .tmp7q, .si(-1), ._, ._ },
31118 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
31119 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_size_div_8), ._, ._ },
31120 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31121 } },
31122 }, .{
31123 .required_features = .{ .@"64bit", null, null, null },
31124 .src_constraints = .{
31125 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
31126 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
31127 .any,
31128 },
31129 .patterns = &.{
31130 .{ .src = .{ .to_mem, .to_mem, .none } },
31131 },
31132 .extra_temps = .{
31133 .{ .type = .isize, .kind = .{ .reg = .rdi } },
31134 .{ .type = .usize, .kind = .{ .reg = .rcx } },
31135 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31136 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31137 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31138 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31139 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31140 .{ .type = .u64, .kind = .{ .reg = .rax } },
31141 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31142 .unused,
31143 .unused,
31144 },
31145 .dst_temps = .{ .mem, .unused },
31146 .clobbers = .{ .eflags = true },
31147 .each = .{ .once = &.{
31148 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31149 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31150 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31151 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31152 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31153 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31154 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31155 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31156 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31157 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31158 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31159 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31160 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31161 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31162 .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ },
31163 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ },
31164 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31165 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31166 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31167 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31168 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31169 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31170 .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ },
31171 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31172 .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31173 .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ },
31174 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
31175 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31176 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31177 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
31178 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
31179 .{ ._, ._, .@"test", .tmp2q, .tmp2q, ._, ._ },
31180 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31181 .{ ._, ._, .mov, .tmp7q, .si(-1), ._, ._ },
31182 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
31183 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_size_div_8), ._, ._ },
31184 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31185 } },
31186 }, .{
31187 .required_features = .{ .@"64bit", .bmi2, .adx, null },
31188 .src_constraints = .{
31189 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31190 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31191 .any,
31192 },
31193 .patterns = &.{
31194 .{ .src = .{ .to_mem, .to_mem, .none } },
31195 },
31196 .extra_temps = .{
31197 .{ .type = .isize, .kind = .{ .reg = .rax } },
31198 .{ .type = .usize, .kind = .{ .reg = .rdi } },
31199 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31200 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31201 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31202 .{ .type = .isize, .kind = .{ .reg = .rcx } },
31203 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31204 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31205 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31206 .unused,
31207 .unused,
31208 },
31209 .dst_temps = .{ .mem, .unused },
31210 .clobbers = .{ .eflags = true },
31211 .each = .{ .once = &.{
31212 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
31213 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
31214 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31215 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
31216 .{ .@"0:", ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31217 .{ ._, ._, .@"or", .tmp4q, .memi(.src0q, .tmp0), ._, ._ },
31218 .{ ._, ._z, .j, .@"2f", ._, ._, ._ },
31219 .{ ._, ._, .lea, .tmp5p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ },
31220 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31221 .{ .@"1:", ._x, .mul, .tmp8q, .tmp7q, .leai(.tmp1q, .tmp5), ._ },
31222 .{ ._, ._x, .adc, .tmp7q, .tmp6q, ._, ._ },
31223 .{ ._, ._, .mov, .memiad(.dst0q, .tmp5, .add_size, -8), .tmp7q, ._, ._ },
31224 .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ },
31225 .{ ._, ._x, .ado, .tmp8q, .memia(.dst0q, .tmp5, .add_size), ._, ._ },
31226 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31227 .{ ._, ._, .lea, .tmp5p, .lead(.tmp5, 8), ._, ._ },
31228 .{ ._, ._mp, .j, .@"1b", ._, ._, ._ },
31229 .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ },
31230 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31231 .{ .@"1:", ._, .mov, .tmp4d, .tmp0d, ._, ._ },
31232 .{ ._, ._x, .ado, .tmp8q, .tmp3q, ._, ._ },
31233 .{ ._, ._x, .adc, .tmp8q, .tmp3q, ._, ._ },
31234 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31235 .{ .@"1:", ._, .@"or", .tmp8q, .leai(.tmp1q, .tmp4), ._, ._ },
31236 .{ .@"2:", ._, .sub, .tmp4d, .si(8), ._, ._ },
31237 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31238 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31239 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31240 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
31241 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31242 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31243 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31244 .{ ._, ._, .mov, .tmp0q, .si(-1), ._, ._ },
31245 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
31246 .{ ._, ._, .mov, .tmp5d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
31247 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31248 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31249 } },
31250 }, .{
31251 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
31252 .src_constraints = .{
31253 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31254 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31255 .any,
31256 },
31257 .patterns = &.{
31258 .{ .src = .{ .to_mem, .to_mem, .none } },
31259 },
31260 .extra_temps = .{
31261 .{ .type = .isize, .kind = .{ .reg = .rax } },
31262 .{ .type = .usize, .kind = .{ .reg = .rdi } },
31263 .{ .type = .u64, .kind = .{ .reg = .rcx } },
31264 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31265 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31266 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31267 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31268 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31269 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31270 .unused,
31271 .unused,
31272 },
31273 .dst_temps = .{ .mem, .unused },
31274 .clobbers = .{ .eflags = true },
31275 .each = .{ .once = &.{
31276 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31277 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31278 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31279 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31280 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31281 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31282 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31283 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31284 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31285 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31286 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31287 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31288 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31289 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31290 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31291 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ },
31292 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31293 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31294 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31295 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31296 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31297 .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ },
31298 .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ },
31299 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31300 .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31301 .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ },
31302 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31303 .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ },
31304 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31305 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
31306 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31307 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31308 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31309 .{ ._, ._, .mov, .tmp0q, .si(-1), ._, ._ },
31310 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
31311 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
31312 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31313 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31314 } },
31315 }, .{
31316 .required_features = .{ .@"64bit", .bmi2, null, null },
31317 .src_constraints = .{
31318 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31319 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31320 .any,
31321 },
31322 .patterns = &.{
31323 .{ .src = .{ .to_mem, .to_mem, .none } },
31324 },
31325 .extra_temps = .{
31326 .{ .type = .isize, .kind = .{ .reg = .rax } },
31327 .{ .type = .usize, .kind = .{ .reg = .rdi } },
31328 .{ .type = .u64, .kind = .{ .reg = .rcx } },
31329 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31330 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31331 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31332 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31333 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31334 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31335 .unused,
31336 .unused,
31337 },
31338 .dst_temps = .{ .mem, .unused },
31339 .clobbers = .{ .eflags = true },
31340 .each = .{ .once = &.{
31341 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31342 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31343 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31344 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31345 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31346 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31347 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31348 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31349 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31350 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31351 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31352 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31353 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31354 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31355 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31356 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ },
31357 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31358 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31359 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31360 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31361 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31362 .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ },
31363 .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ },
31364 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31365 .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31366 .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ },
31367 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
31368 .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ },
31369 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31370 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
31371 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
31372 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31373 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31374 .{ ._, ._, .mov, .tmp0q, .si(-1), ._, ._ },
31375 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
31376 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
31377 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31378 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31379 } },
31380 }, .{
31381 .required_features = .{ .@"64bit", .slow_incdec, null, null },
31382 .src_constraints = .{
31383 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31384 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31385 .any,
31386 },
31387 .patterns = &.{
31388 .{ .src = .{ .to_mem, .to_mem, .none } },
31389 },
31390 .extra_temps = .{
31391 .{ .type = .isize, .kind = .{ .reg = .rdi } },
31392 .{ .type = .usize, .kind = .{ .reg = .rcx } },
31393 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31394 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31395 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31396 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31397 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31398 .{ .type = .u64, .kind = .{ .reg = .rax } },
31399 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31400 .unused,
31401 .unused,
31402 },
31403 .dst_temps = .{ .mem, .unused },
31404 .clobbers = .{ .eflags = true },
31405 .each = .{ .once = &.{
31406 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31407 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31408 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31409 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31410 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31411 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31412 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31413 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31414 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31415 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31416 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31417 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31418 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31419 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31420 .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ },
31421 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ },
31422 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31423 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31424 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31425 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31426 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31427 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31428 .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ },
31429 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31430 .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31431 .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ },
31432 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31433 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31434 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31435 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
31436 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31437 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31438 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31439 .{ ._, ._, .mov, .tmp7q, .si(-1), ._, ._ },
31440 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
31441 .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
31442 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31443 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31444 } },
31445 }, .{
31446 .required_features = .{ .@"64bit", null, null, null },
31447 .src_constraints = .{
31448 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31449 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
31450 .any,
31451 },
31452 .patterns = &.{
31453 .{ .src = .{ .to_mem, .to_mem, .none } },
31454 },
31455 .extra_temps = .{
31456 .{ .type = .isize, .kind = .{ .reg = .rdi } },
31457 .{ .type = .usize, .kind = .{ .reg = .rcx } },
31458 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31459 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31460 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31461 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31462 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31463 .{ .type = .u64, .kind = .{ .reg = .rax } },
31464 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31465 .unused,
31466 .unused,
31467 },
31468 .dst_temps = .{ .mem, .unused },
31469 .clobbers = .{ .eflags = true },
31470 .each = .{ .once = &.{
31471 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31472 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31473 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31474 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31475 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31476 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31477 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31478 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31479 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31480 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31481 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31482 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31483 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31484 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31485 .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ },
31486 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ },
31487 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31488 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31489 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31490 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31491 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31492 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31493 .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ },
31494 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31495 .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31496 .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ },
31497 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
31498 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31499 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31500 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
31501 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
31502 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31503 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31504 .{ ._, ._, .mov, .tmp7q, .si(-1), ._, ._ },
31505 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
31506 .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
31507 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31508 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31509 } },
31510 }, .{
31511 .required_features = .{ .@"64bit", .bmi2, .adx, null },
31512 .src_constraints = .{
31513 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31514 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31515 .any,
31516 },
31517 .patterns = &.{
31518 .{ .src = .{ .to_mem, .to_mem, .none } },
31519 },
31520 .extra_temps = .{
31521 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31522 .{ .type = .usize, .kind = .{ .reg = .rax } },
31523 .{ .type = .u64, .kind = .{ .reg = .rdi } },
31524 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31525 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31526 .{ .type = .isize, .kind = .{ .reg = .rcx } },
31527 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31528 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31529 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31530 .unused,
31531 .unused,
31532 },
31533 .dst_temps = .{ .mem, .unused },
31534 .clobbers = .{ .eflags = true },
31535 .each = .{ .once = &.{
31536 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
31537 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
31538 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31539 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
31540 .{ .@"0:", ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31541 .{ ._, ._, .@"or", .tmp4q, .memi(.src0q, .tmp0), ._, ._ },
31542 .{ ._, ._z, .j, .@"2f", ._, ._, ._ },
31543 .{ ._, ._, .lea, .tmp5p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ },
31544 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31545 .{ .@"1:", ._x, .mul, .tmp8q, .tmp7q, .leai(.tmp1q, .tmp5), ._ },
31546 .{ ._, ._x, .adc, .tmp7q, .tmp6q, ._, ._ },
31547 .{ ._, ._, .mov, .memiad(.dst0q, .tmp5, .add_size, -8), .tmp7q, ._, ._ },
31548 .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ },
31549 .{ ._, ._x, .ado, .tmp8q, .memia(.dst0q, .tmp5, .add_size), ._, ._ },
31550 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31551 .{ ._, ._, .lea, .tmp5p, .lead(.tmp5, 8), ._, ._ },
31552 .{ ._, ._mp, .j, .@"1b", ._, ._, ._ },
31553 .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ },
31554 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31555 .{ .@"1:", ._, .mov, .tmp4d, .tmp0d, ._, ._ },
31556 .{ ._, ._x, .ado, .tmp8q, .tmp3q, ._, ._ },
31557 .{ ._, ._x, .adc, .tmp8q, .tmp3q, ._, ._ },
31558 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31559 .{ .@"1:", ._, .@"or", .tmp8q, .leai(.tmp1q, .tmp4), ._, ._ },
31560 .{ .@"2:", ._, .sub, .tmp4d, .si(8), ._, ._ },
31561 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31562 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31563 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31564 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
31565 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31566 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31567 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -16), ._, ._ },
31568 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31569 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
31570 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31571 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
31572 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31573 .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
31574 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
31575 .{ ._, ._, .mov, .tmp5d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
31576 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31577 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
31578 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp3q, ._, ._ },
31579 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31580 } },
31581 }, .{
31582 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
31583 .src_constraints = .{
31584 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31585 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31586 .any,
31587 },
31588 .patterns = &.{
31589 .{ .src = .{ .to_mem, .to_mem, .none } },
31590 },
31591 .extra_temps = .{
31592 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31593 .{ .type = .usize, .kind = .{ .reg = .rax } },
31594 .{ .type = .u64, .kind = .{ .reg = .rdi } },
31595 .{ .type = .isize, .kind = .{ .reg = .rcx } },
31596 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31597 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31598 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31599 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31600 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31601 .unused,
31602 .unused,
31603 },
31604 .dst_temps = .{ .mem, .unused },
31605 .clobbers = .{ .eflags = true },
31606 .each = .{ .once = &.{
31607 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31608 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31609 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31610 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31611 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31612 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31613 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31614 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31615 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31616 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31617 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31618 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31619 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31620 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31621 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31622 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ },
31623 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31624 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31625 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31626 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31627 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31628 .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ },
31629 .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ },
31630 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31631 .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31632 .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ },
31633 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31634 .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ },
31635 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31636 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
31637 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31638 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31639 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -16), ._, ._ },
31640 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31641 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
31642 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31643 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
31644 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31645 .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
31646 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
31647 .{ ._, ._, .mov, .tmp3d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
31648 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31649 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
31650 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp3q, ._, ._ },
31651 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31652 } },
31653 }, .{
31654 .required_features = .{ .@"64bit", .bmi2, null, null },
31655 .src_constraints = .{
31656 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31657 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31658 .any,
31659 },
31660 .patterns = &.{
31661 .{ .src = .{ .to_mem, .to_mem, .none } },
31662 },
31663 .extra_temps = .{
31664 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31665 .{ .type = .usize, .kind = .{ .reg = .rax } },
31666 .{ .type = .u64, .kind = .{ .reg = .rdi } },
31667 .{ .type = .isize, .kind = .{ .reg = .rcx } },
31668 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31669 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31670 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31671 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31672 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31673 .unused,
31674 .unused,
31675 },
31676 .dst_temps = .{ .mem, .unused },
31677 .clobbers = .{ .eflags = true },
31678 .each = .{ .once = &.{
31679 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31680 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31681 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31682 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31683 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31684 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31685 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31686 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31687 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31688 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31689 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31690 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31691 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31692 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31693 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31694 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ },
31695 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31696 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31697 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31698 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31699 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31700 .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ },
31701 .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ },
31702 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31703 .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31704 .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ },
31705 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
31706 .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ },
31707 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31708 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
31709 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
31710 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31711 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -16), ._, ._ },
31712 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31713 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
31714 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31715 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
31716 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31717 .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
31718 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
31719 .{ ._, ._, .mov, .tmp3d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
31720 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31721 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
31722 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp3q, ._, ._ },
31723 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31724 } },
31725 }, .{
31726 .required_features = .{ .@"64bit", .slow_incdec, null, null },
31727 .src_constraints = .{
31728 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31729 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31730 .any,
31731 },
31732 .patterns = &.{
31733 .{ .src = .{ .to_mem, .to_mem, .none } },
31734 },
31735 .extra_temps = .{
31736 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31737 .{ .type = .usize, .kind = .{ .reg = .rdi } },
31738 .{ .type = .u64, .kind = .{ .reg = .rcx } },
31739 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31740 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31741 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31742 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31743 .{ .type = .u64, .kind = .{ .reg = .rax } },
31744 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31745 .unused,
31746 .unused,
31747 },
31748 .dst_temps = .{ .mem, .unused },
31749 .clobbers = .{ .eflags = true },
31750 .each = .{ .once = &.{
31751 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31752 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31753 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31754 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31755 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31756 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31757 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31758 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31759 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31760 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31761 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31762 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31763 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31764 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31765 .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ },
31766 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ },
31767 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31768 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31769 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31770 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31771 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31772 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31773 .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ },
31774 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31775 .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31776 .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ },
31777 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31778 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31779 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31780 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
31781 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31782 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
31783 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -16), ._, ._ },
31784 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31785 .{ ._, ._, .mov, .tmp3q, .tmp0q, ._, ._ },
31786 .{ ._, ._, .@"and", .tmp3q, .tmp1q, ._, ._ },
31787 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31788 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
31789 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31790 .{ ._, ._, .mov, .tmp7q, .si(-1), ._, ._ },
31791 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
31792 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
31793 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31794 .{ ._, ._, .mov, .tmp3q, .tmp0q, ._, ._ },
31795 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp3q, ._, ._ },
31796 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31797 } },
31798 }, .{
31799 .required_features = .{ .@"64bit", null, null, null },
31800 .src_constraints = .{
31801 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31802 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } },
31803 .any,
31804 },
31805 .patterns = &.{
31806 .{ .src = .{ .to_mem, .to_mem, .none } },
31807 },
31808 .extra_temps = .{
31809 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31810 .{ .type = .usize, .kind = .{ .reg = .rdi } },
31811 .{ .type = .u64, .kind = .{ .reg = .rcx } },
31812 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31813 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31814 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31815 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31816 .{ .type = .u64, .kind = .{ .reg = .rax } },
31817 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31818 .unused,
31819 .unused,
31820 },
31821 .dst_temps = .{ .mem, .unused },
31822 .clobbers = .{ .eflags = true },
31823 .each = .{ .once = &.{
31824 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31825 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31826 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31827 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31828 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31829 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31830 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31831 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31832 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31833 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31834 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31835 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31836 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31837 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31838 .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ },
31839 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ },
31840 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31841 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31842 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31843 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31844 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31845 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31846 .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ },
31847 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31848 .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31849 .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ },
31850 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
31851 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31852 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31853 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
31854 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
31855 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
31856 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -16), ._, ._ },
31857 .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_size, -8), ._, ._ },
31858 .{ ._, ._, .mov, .tmp3q, .tmp0q, ._, ._ },
31859 .{ ._, ._, .@"and", .tmp3q, .tmp1q, ._, ._ },
31860 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31861 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
31862 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31863 .{ ._, ._, .mov, .tmp7q, .si(-1), ._, ._ },
31864 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
31865 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
31866 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31867 .{ ._, ._, .mov, .tmp3q, .tmp0q, ._, ._ },
31868 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp3q, ._, ._ },
31869 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .ui(0), ._, ._ },
31870 } },
31871 }, .{
31872 .required_features = .{ .@"64bit", .bmi2, .adx, null },
31873 .src_constraints = .{
31874 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
31875 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
31876 .any,
31877 },
31878 .patterns = &.{
31879 .{ .src = .{ .to_mem, .to_mem, .none } },
31880 },
31881 .extra_temps = .{
31882 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31883 .{ .type = .usize, .kind = .{ .reg = .rax } },
31884 .{ .type = .u64, .kind = .{ .reg = .rdi } },
31885 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31886 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31887 .{ .type = .isize, .kind = .{ .reg = .rcx } },
31888 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31889 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31890 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31891 .unused,
31892 .unused,
31893 },
31894 .dst_temps = .{ .mem, .unused },
31895 .clobbers = .{ .eflags = true },
31896 .each = .{ .once = &.{
31897 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
31898 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
31899 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31900 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
31901 .{ .@"0:", ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31902 .{ ._, ._, .@"or", .tmp4q, .memi(.src0q, .tmp0), ._, ._ },
31903 .{ ._, ._z, .j, .@"2f", ._, ._, ._ },
31904 .{ ._, ._, .lea, .tmp5p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ },
31905 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31906 .{ .@"1:", ._x, .mul, .tmp8q, .tmp7q, .leai(.tmp1q, .tmp5), ._ },
31907 .{ ._, ._x, .adc, .tmp7q, .tmp6q, ._, ._ },
31908 .{ ._, ._, .mov, .memiad(.dst0q, .tmp5, .add_size, -8), .tmp7q, ._, ._ },
31909 .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ },
31910 .{ ._, ._x, .ado, .tmp8q, .memia(.dst0q, .tmp5, .add_size), ._, ._ },
31911 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31912 .{ ._, ._, .lea, .tmp5p, .lead(.tmp5, 8), ._, ._ },
31913 .{ ._, ._mp, .j, .@"1b", ._, ._, ._ },
31914 .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ },
31915 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31916 .{ .@"1:", ._, .mov, .tmp4d, .tmp0d, ._, ._ },
31917 .{ ._, ._x, .ado, .tmp8q, .tmp3q, ._, ._ },
31918 .{ ._, ._x, .adc, .tmp8q, .tmp3q, ._, ._ },
31919 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31920 .{ .@"1:", ._, .@"or", .tmp8q, .leai(.tmp1q, .tmp4), ._, ._ },
31921 .{ .@"2:", ._, .sub, .tmp4d, .si(8), ._, ._ },
31922 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31923 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
31924 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31925 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
31926 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31927 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31928 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -8), ._, ._ },
31929 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
31930 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31931 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
31932 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
31933 .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
31934 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
31935 .{ ._, ._, .mov, .tmp5d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
31936 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
31937 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
31938 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp3q, ._, ._ },
31939 } },
31940 }, .{
31941 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
31942 .src_constraints = .{
31943 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
31944 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
31945 .any,
31946 },
31947 .patterns = &.{
31948 .{ .src = .{ .to_mem, .to_mem, .none } },
31949 },
31950 .extra_temps = .{
31951 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31952 .{ .type = .usize, .kind = .{ .reg = .rax } },
31953 .{ .type = .u64, .kind = .{ .reg = .rdi } },
31954 .{ .type = .isize, .kind = .{ .reg = .rcx } },
31955 .{ .type = .u64, .kind = .{ .reg = .rdx } },
31956 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
31957 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31958 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31959 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
31960 .unused,
31961 .unused,
31962 },
31963 .dst_temps = .{ .mem, .unused },
31964 .clobbers = .{ .eflags = true },
31965 .each = .{ .once = &.{
31966 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
31967 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
31968 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
31969 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
31970 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
31971 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
31972 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
31973 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
31974 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
31975 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
31976 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
31977 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
31978 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
31979 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
31980 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
31981 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ },
31982 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
31983 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
31984 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
31985 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
31986 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
31987 .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ },
31988 .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ },
31989 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
31990 .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
31991 .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ },
31992 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
31993 .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ },
31994 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
31995 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
31996 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
31997 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
31998 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -8), ._, ._ },
31999 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
32000 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
32001 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
32002 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
32003 .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
32004 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
32005 .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
32006 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
32007 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
32008 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp3q, ._, ._ },
32009 } },
32010 }, .{
32011 .required_features = .{ .@"64bit", .bmi2, null, null },
32012 .src_constraints = .{
32013 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
32014 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
32015 .any,
32016 },
32017 .patterns = &.{
32018 .{ .src = .{ .to_mem, .to_mem, .none } },
32019 },
32020 .extra_temps = .{
32021 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32022 .{ .type = .usize, .kind = .{ .reg = .rax } },
32023 .{ .type = .u64, .kind = .{ .reg = .rdi } },
32024 .{ .type = .isize, .kind = .{ .reg = .rcx } },
32025 .{ .type = .u64, .kind = .{ .reg = .rdx } },
32026 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
32027 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
32028 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
32029 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
32030 .unused,
32031 .unused,
32032 },
32033 .dst_temps = .{ .mem, .unused },
32034 .clobbers = .{ .eflags = true },
32035 .each = .{ .once = &.{
32036 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
32037 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
32038 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
32039 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
32040 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
32041 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
32042 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
32043 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
32044 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
32045 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
32046 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
32047 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
32048 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
32049 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
32050 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
32051 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ },
32052 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
32053 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
32054 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
32055 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
32056 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
32057 .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ },
32058 .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ },
32059 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
32060 .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
32061 .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ },
32062 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
32063 .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ },
32064 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
32065 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
32066 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
32067 .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
32068 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -8), ._, ._ },
32069 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
32070 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
32071 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
32072 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
32073 .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
32074 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
32075 .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
32076 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
32077 .{ ._, ._, .bzhi, .tmp3q, .tmp1q, .tmp0q, ._ },
32078 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp3q, ._, ._ },
32079 } },
32080 }, .{
32081 .required_features = .{ .@"64bit", .slow_incdec, null, null },
32082 .src_constraints = .{
32083 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
32084 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
32085 .any,
32086 },
32087 .patterns = &.{
32088 .{ .src = .{ .to_mem, .to_mem, .none } },
32089 },
32090 .extra_temps = .{
32091 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32092 .{ .type = .usize, .kind = .{ .reg = .rdi } },
32093 .{ .type = .u64, .kind = .{ .reg = .rcx } },
32094 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32095 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
32096 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
32097 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
32098 .{ .type = .u64, .kind = .{ .reg = .rax } },
32099 .{ .type = .u64, .kind = .{ .reg = .rdx } },
32100 .unused,
32101 .unused,
32102 },
32103 .dst_temps = .{ .mem, .unused },
32104 .clobbers = .{ .eflags = true },
32105 .each = .{ .once = &.{
32106 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
32107 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
32108 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
32109 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
32110 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
32111 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
32112 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
32113 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
32114 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
32115 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
32116 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
32117 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
32118 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
32119 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
32120 .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ },
32121 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ },
32122 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
32123 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
32124 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
32125 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
32126 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
32127 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
32128 .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ },
32129 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
32130 .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
32131 .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ },
32132 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
32133 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
32134 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
32135 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
32136 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
32137 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
32138 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -8), ._, ._ },
32139 .{ ._, ._, .mov, .tmp3q, .tmp0q, ._, ._ },
32140 .{ ._, ._, .@"and", .tmp3q, .tmp1q, ._, ._ },
32141 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
32142 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
32143 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
32144 .{ ._, ._, .mov, .tmp7q, .si(-1), ._, ._ },
32145 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
32146 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
32147 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
32148 .{ ._, ._, .mov, .tmp3q, .tmp0q, ._, ._ },
32149 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp3q, ._, ._ },
32150 } },
32151 }, .{
32152 .required_features = .{ .@"64bit", null, null, null },
32153 .src_constraints = .{
32154 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
32155 .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } },
32156 .any,
32157 },
32158 .patterns = &.{
32159 .{ .src = .{ .to_mem, .to_mem, .none } },
32160 },
32161 .extra_temps = .{
32162 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32163 .{ .type = .usize, .kind = .{ .reg = .rdi } },
32164 .{ .type = .u64, .kind = .{ .reg = .rcx } },
32165 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32166 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
32167 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
32168 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
32169 .{ .type = .u64, .kind = .{ .reg = .rax } },
32170 .{ .type = .u64, .kind = .{ .reg = .rdx } },
32171 .unused,
32172 .unused,
32173 },
32174 .dst_temps = .{ .mem, .unused },
32175 .clobbers = .{ .eflags = true },
32176 .each = .{ .once = &.{
32177 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
32178 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
32179 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
32180 .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
32181 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
32182 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
32183 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
32184 .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
32185 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
32186 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ },
32187 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
32188 .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_size), ._, ._ },
32189 .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ },
32190 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
32191 .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ },
32192 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ },
32193 .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ },
32194 .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ },
32195 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_size), .tmp7q, ._, ._ },
32196 .{ ._, ._c, .in, .tmp3p, ._, ._, ._ },
32197 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
32198 .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ },
32199 .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ },
32200 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
32201 .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
32202 .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ },
32203 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
32204 .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ },
32205 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
32206 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
32207 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
32208 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
32209 .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_size, -8), ._, ._ },
32210 .{ ._, ._, .mov, .tmp3q, .tmp0q, ._, ._ },
32211 .{ ._, ._, .@"and", .tmp3q, .tmp1q, ._, ._ },
32212 .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ },
32213 .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ },
32214 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
32215 .{ ._, ._, .mov, .tmp7q, .si(-1), ._, ._ },
32216 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
32217 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
32218 .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ },
32219 .{ ._, ._, .mov, .tmp3q, .tmp0q, ._, ._ },
32220 .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp3q, ._, ._ },
32221 } },
32222 } }) catch |err| switch (err) {
32223 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
32224 @tagName(air_tag),
32225 cg.typeOf(bin_op.lhs).fmt(pt),
32226 ops[0].tracking(cg),
32227 ops[1].tracking(cg),
32228 }),
32229 else => |e| return e,
32230 };
32231 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
32232 },
32233 .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) {
32234 else => unreachable,
32235 .div_float, .div_float_optimized => .div_float,
32236 .div_exact, .div_exact_optimized => .div_exact,
32237 }) else {
32238 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
32239 const ty = cg.typeOf(bin_op.lhs);
32240 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
32241 var res: [1]Temp = undefined;
32242 (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{
32243 .required_features = .{ .f16c, null, null, null },
32244 .src_constraints = .{
32245 .{ .scalar_float = .{ .of = .word, .is = .word } },
32246 .{ .scalar_float = .{ .of = .word, .is = .word } },
32247 .any,
32248 },
32249 .patterns = &.{
32250 .{ .src = .{ .to_sse, .to_sse, .none } },
32251 },
32252 .extra_temps = .{
32253 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
32254 .unused,
32255 .unused,
32256 .unused,
32257 .unused,
32258 .unused,
32259 .unused,
32260 .unused,
32261 .unused,
32262 .unused,
32263 .unused,
32264 },
32265 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32266 .each = .{ .once = &.{
32267 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
32268 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
32269 .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
32270 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
32271 } },
32272 }, .{
32273 .required_features = .{ .sse, null, null, null },
32274 .src_constraints = .{
32275 .{ .scalar_float = .{ .of = .word, .is = .word } },
32276 .{ .scalar_float = .{ .of = .word, .is = .word } },
32277 .any,
32278 },
32279 .patterns = &.{
32280 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
32281 },
32282 .call_frame = .{ .alignment = .@"16" },
32283 .extra_temps = .{
32284 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
32285 .unused,
32286 .unused,
32287 .unused,
32288 .unused,
32289 .unused,
32290 .unused,
32291 .unused,
32292 .unused,
32293 .unused,
32294 .unused,
32295 },
32296 .dst_temps = .{ .{ .ref = .src0 }, .unused },
32297 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
32298 .each = .{ .once = &.{
32299 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
32300 } },
32301 }, .{
32302 .required_features = .{ .f16c, null, null, null },
32303 .src_constraints = .{
32304 .{ .scalar_float = .{ .of = .qword, .is = .word } },
32305 .{ .scalar_float = .{ .of = .qword, .is = .word } },
32306 .any,
32307 },
32308 .patterns = &.{
32309 .{ .src = .{ .mem, .mem, .none } },
32310 .{ .src = .{ .to_sse, .mem, .none } },
32311 .{ .src = .{ .mem, .to_sse, .none } },
32312 .{ .src = .{ .to_sse, .to_sse, .none } },
32313 },
32314 .extra_temps = .{
32315 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
32316 .unused,
32317 .unused,
32318 .unused,
32319 .unused,
32320 .unused,
32321 .unused,
32322 .unused,
32323 .unused,
32324 .unused,
32325 .unused,
32326 },
32327 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32328 .each = .{ .once = &.{
32329 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
32330 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
32331 .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
32332 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
32333 } },
32334 }, .{
32335 .required_features = .{ .f16c, null, null, null },
32336 .src_constraints = .{
32337 .{ .scalar_float = .{ .of = .xword, .is = .word } },
32338 .{ .scalar_float = .{ .of = .xword, .is = .word } },
32339 .any,
32340 },
32341 .patterns = &.{
32342 .{ .src = .{ .mem, .mem, .none } },
32343 .{ .src = .{ .to_sse, .mem, .none } },
32344 .{ .src = .{ .mem, .to_sse, .none } },
32345 .{ .src = .{ .to_sse, .to_sse, .none } },
32346 },
32347 .extra_temps = .{
32348 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
32349 .unused,
32350 .unused,
32351 .unused,
32352 .unused,
32353 .unused,
32354 .unused,
32355 .unused,
32356 .unused,
32357 .unused,
32358 .unused,
32359 },
32360 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32361 .each = .{ .once = &.{
32362 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
32363 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
32364 .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },
32365 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
32366 } },
32367 }, .{
32368 .required_features = .{ .f16c, null, null, null },
32369 .src_constraints = .{
32370 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
32371 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
32372 .any,
32373 },
32374 .patterns = &.{
32375 .{ .src = .{ .to_mem, .to_mem, .none } },
32376 },
32377 .extra_temps = .{
32378 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32379 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
32380 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
32381 .unused,
32382 .unused,
32383 .unused,
32384 .unused,
32385 .unused,
32386 .unused,
32387 .unused,
32388 .unused,
32389 },
32390 .dst_temps = .{ .mem, .unused },
32391 .clobbers = .{ .eflags = true },
32392 .each = .{ .once = &.{
32393 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32394 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
32395 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
32396 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },
32397 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
32398 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
32399 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32400 } },
32401 }, .{
32402 .required_features = .{ .avx, null, null, null },
32403 .src_constraints = .{
32404 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
32405 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
32406 .any,
32407 },
32408 .patterns = &.{
32409 .{ .src = .{ .to_mem, .to_mem, .none } },
32410 },
32411 .call_frame = .{ .alignment = .@"16" },
32412 .extra_temps = .{
32413 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32414 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
32415 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
32416 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
32417 .unused,
32418 .unused,
32419 .unused,
32420 .unused,
32421 .unused,
32422 .unused,
32423 .unused,
32424 },
32425 .dst_temps = .{ .mem, .unused },
32426 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
32427 .each = .{ .once = &.{
32428 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32429 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
32430 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
32431 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },
32432 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
32433 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
32434 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
32435 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32436 } },
32437 }, .{
32438 .required_features = .{ .sse4_1, null, null, null },
32439 .src_constraints = .{
32440 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
32441 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
32442 .any,
32443 },
32444 .patterns = &.{
32445 .{ .src = .{ .to_mem, .to_mem, .none } },
32446 },
32447 .call_frame = .{ .alignment = .@"16" },
32448 .extra_temps = .{
32449 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32450 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
32451 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
32452 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
32453 .unused,
32454 .unused,
32455 .unused,
32456 .unused,
32457 .unused,
32458 .unused,
32459 .unused,
32460 },
32461 .dst_temps = .{ .mem, .unused },
32462 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
32463 .each = .{ .once = &.{
32464 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32465 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
32466 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
32467 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
32468 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
32469 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
32470 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
32471 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
32472 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32473 } },
32474 }, .{
32475 .required_features = .{ .sse2, null, null, null },
32476 .src_constraints = .{
32477 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
32478 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
32479 .any,
32480 },
32481 .patterns = &.{
32482 .{ .src = .{ .to_mem, .to_mem, .none } },
32483 },
32484 .call_frame = .{ .alignment = .@"16" },
32485 .extra_temps = .{
32486 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32487 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
32488 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
32489 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
32490 .{ .type = .f16, .kind = .{ .reg = .ax } },
32491 .unused,
32492 .unused,
32493 .unused,
32494 .unused,
32495 .unused,
32496 .unused,
32497 },
32498 .dst_temps = .{ .mem, .unused },
32499 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
32500 .each = .{ .once = &.{
32501 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32502 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
32503 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
32504 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
32505 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
32506 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
32507 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },
32508 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ },
32509 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
32510 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32511 } },
32512 }, .{
32513 .required_features = .{ .sse, null, null, null },
32514 .src_constraints = .{
32515 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
32516 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
32517 .any,
32518 },
32519 .patterns = &.{
32520 .{ .src = .{ .to_mem, .to_mem, .none } },
32521 },
32522 .call_frame = .{ .alignment = .@"16" },
32523 .extra_temps = .{
32524 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32525 .{ .type = .f16, .kind = .{ .reg = .ax } },
32526 .{ .type = .f32, .kind = .mem },
32527 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
32528 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
32529 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
32530 .unused,
32531 .unused,
32532 .unused,
32533 .unused,
32534 .unused,
32535 },
32536 .dst_temps = .{ .mem, .unused },
32537 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
32538 .each = .{ .once = &.{
32539 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32540 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
32541 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
32542 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
32543 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
32544 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
32545 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
32546 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
32547 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
32548 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
32549 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
32550 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
32551 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32552 } },
32553 }, .{
32554 .required_features = .{ .avx, null, null, null },
32555 .src_constraints = .{
32556 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
32557 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
32558 .any,
32559 },
32560 .patterns = &.{
32561 .{ .src = .{ .to_sse, .mem, .none } },
32562 .{ .src = .{ .to_sse, .to_sse, .none } },
32563 },
32564 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32565 .each = .{ .once = &.{
32566 .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },
32567 } },
32568 }, .{
32569 .required_features = .{ .sse, null, null, null },
32570 .src_constraints = .{
32571 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
32572 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
32573 .any,
32574 },
32575 .patterns = &.{
32576 .{ .src = .{ .to_mut_sse, .mem, .none } },
32577 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
32578 },
32579 .dst_temps = .{ .{ .ref = .src0 }, .unused },
32580 .each = .{ .once = &.{
32581 .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
32582 } },
32583 }, .{
32584 .required_features = .{ .avx, null, null, null },
32585 .src_constraints = .{
32586 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
32587 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
32588 .any,
32589 },
32590 .patterns = &.{
32591 .{ .src = .{ .to_sse, .mem, .none } },
32592 .{ .src = .{ .to_sse, .to_sse, .none } },
32593 },
32594 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32595 .each = .{ .once = &.{
32596 .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },
32597 } },
32598 }, .{
32599 .required_features = .{ .sse, null, null, null },
32600 .src_constraints = .{
32601 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
32602 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
32603 .any,
32604 },
32605 .patterns = &.{
32606 .{ .src = .{ .to_mut_sse, .mem, .none } },
32607 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
32608 },
32609 .dst_temps = .{ .{ .ref = .src0 }, .unused },
32610 .each = .{ .once = &.{
32611 .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },
32612 } },
32613 }, .{
32614 .required_features = .{ .avx, null, null, null },
32615 .src_constraints = .{
32616 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
32617 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
32618 .any,
32619 },
32620 .patterns = &.{
32621 .{ .src = .{ .to_sse, .mem, .none } },
32622 .{ .src = .{ .to_sse, .to_sse, .none } },
32623 },
32624 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32625 .each = .{ .once = &.{
32626 .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
32627 } },
32628 }, .{
32629 .required_features = .{ .avx, null, null, null },
32630 .src_constraints = .{
32631 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
32632 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
32633 .any,
32634 },
32635 .patterns = &.{
32636 .{ .src = .{ .to_mem, .to_mem, .none } },
32637 },
32638 .extra_temps = .{
32639 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32640 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
32641 .unused,
32642 .unused,
32643 .unused,
32644 .unused,
32645 .unused,
32646 .unused,
32647 .unused,
32648 .unused,
32649 .unused,
32650 },
32651 .dst_temps = .{ .mem, .unused },
32652 .clobbers = .{ .eflags = true },
32653 .each = .{ .once = &.{
32654 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32655 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
32656 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
32657 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
32658 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
32659 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32660 } },
32661 }, .{
32662 .required_features = .{ .sse, null, null, null },
32663 .src_constraints = .{
32664 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
32665 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
32666 .any,
32667 },
32668 .patterns = &.{
32669 .{ .src = .{ .to_mem, .to_mem, .none } },
32670 },
32671 .extra_temps = .{
32672 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32673 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
32674 .unused,
32675 .unused,
32676 .unused,
32677 .unused,
32678 .unused,
32679 .unused,
32680 .unused,
32681 .unused,
32682 .unused,
32683 },
32684 .dst_temps = .{ .mem, .unused },
32685 .clobbers = .{ .eflags = true },
32686 .each = .{ .once = &.{
32687 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32688 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
32689 .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
32690 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
32691 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
32692 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32693 } },
32694 }, .{
32695 .required_features = .{ .avx, null, null, null },
32696 .src_constraints = .{
32697 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
32698 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
32699 .any,
32700 },
32701 .patterns = &.{
32702 .{ .src = .{ .to_sse, .mem, .none } },
32703 .{ .src = .{ .to_sse, .to_sse, .none } },
32704 },
32705 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32706 .each = .{ .once = &.{
32707 .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
32708 } },
32709 }, .{
32710 .required_features = .{ .sse2, null, null, null },
32711 .src_constraints = .{
32712 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
32713 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
32714 .any,
32715 },
32716 .patterns = &.{
32717 .{ .src = .{ .to_mut_sse, .mem, .none } },
32718 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
32719 },
32720 .dst_temps = .{ .{ .ref = .src0 }, .unused },
32721 .each = .{ .once = &.{
32722 .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
32723 } },
32724 }, .{
32725 .required_features = .{ .x87, null, null, null },
32726 .src_constraints = .{
32727 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
32728 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
32729 .any,
32730 },
32731 .patterns = &.{
32732 .{ .src = .{ .mem, .mem, .none } },
32733 },
32734 .extra_temps = .{
32735 .{ .type = .f64, .kind = .{ .reg = .st6 } },
32736 .{ .type = .f64, .kind = .{ .reg = .st7 } },
32737 .unused,
32738 .unused,
32739 .unused,
32740 .unused,
32741 .unused,
32742 .unused,
32743 .unused,
32744 .unused,
32745 .unused,
32746 },
32747 .dst_temps = .{ .mem, .unused },
32748 .each = .{ .once = &.{
32749 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
32750 .{ ._, .f_, .div, .src1q, ._, ._, ._ },
32751 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
32752 } },
32753 }, .{
32754 .required_features = .{ .avx, null, null, null },
32755 .src_constraints = .{
32756 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
32757 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
32758 .any,
32759 },
32760 .patterns = &.{
32761 .{ .src = .{ .to_sse, .mem, .none } },
32762 .{ .src = .{ .to_sse, .to_sse, .none } },
32763 },
32764 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32765 .each = .{ .once = &.{
32766 .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },
32767 } },
32768 }, .{
32769 .required_features = .{ .sse2, null, null, null },
32770 .src_constraints = .{
32771 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
32772 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
32773 .any,
32774 },
32775 .patterns = &.{
32776 .{ .src = .{ .to_mut_sse, .mem, .none } },
32777 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
32778 },
32779 .dst_temps = .{ .{ .ref = .src0 }, .unused },
32780 .each = .{ .once = &.{
32781 .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },
32782 } },
32783 }, .{
32784 .required_features = .{ .avx, null, null, null },
32785 .src_constraints = .{
32786 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
32787 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
32788 .any,
32789 },
32790 .patterns = &.{
32791 .{ .src = .{ .to_sse, .mem, .none } },
32792 .{ .src = .{ .to_sse, .to_sse, .none } },
32793 },
32794 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
32795 .each = .{ .once = &.{
32796 .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },
32797 } },
32798 }, .{
32799 .required_features = .{ .avx, null, null, null },
32800 .src_constraints = .{
32801 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
32802 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
32803 .any,
32804 },
32805 .patterns = &.{
32806 .{ .src = .{ .to_mem, .to_mem, .none } },
32807 },
32808 .extra_temps = .{
32809 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32810 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
32811 .unused,
32812 .unused,
32813 .unused,
32814 .unused,
32815 .unused,
32816 .unused,
32817 .unused,
32818 .unused,
32819 .unused,
32820 },
32821 .dst_temps = .{ .mem, .unused },
32822 .clobbers = .{ .eflags = true },
32823 .each = .{ .once = &.{
32824 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32825 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
32826 .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
32827 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
32828 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
32829 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32830 } },
32831 }, .{
32832 .required_features = .{ .sse2, null, null, null },
32833 .src_constraints = .{
32834 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
32835 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
32836 .any,
32837 },
32838 .patterns = &.{
32839 .{ .src = .{ .to_mem, .to_mem, .none } },
32840 },
32841 .extra_temps = .{
32842 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32843 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
32844 .unused,
32845 .unused,
32846 .unused,
32847 .unused,
32848 .unused,
32849 .unused,
32850 .unused,
32851 .unused,
32852 .unused,
32853 },
32854 .dst_temps = .{ .mem, .unused },
32855 .clobbers = .{ .eflags = true },
32856 .each = .{ .once = &.{
32857 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32858 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
32859 .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
32860 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
32861 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
32862 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32863 } },
32864 }, .{
32865 .required_features = .{ .x87, null, null, null },
32866 .src_constraints = .{
32867 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
32868 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
32869 .any,
32870 },
32871 .patterns = &.{
32872 .{ .src = .{ .to_mem, .to_mem, .none } },
32873 },
32874 .extra_temps = .{
32875 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32876 .{ .type = .f64, .kind = .{ .reg = .st6 } },
32877 .{ .type = .f64, .kind = .{ .reg = .st7 } },
32878 .unused,
32879 .unused,
32880 .unused,
32881 .unused,
32882 .unused,
32883 .unused,
32884 .unused,
32885 .unused,
32886 },
32887 .dst_temps = .{ .mem, .unused },
32888 .clobbers = .{ .eflags = true },
32889 .each = .{ .once = &.{
32890 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
32891 .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
32892 .{ ._, .f_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },
32893 .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
32894 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
32895 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
32896 } },
32897 }, .{
32898 .required_features = .{ .x87, null, null, null },
32899 .src_constraints = .{
32900 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
32901 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
32902 .any,
32903 },
32904 .patterns = &.{
32905 .{ .src = .{ .mem, .mem, .none } },
32906 },
32907 .extra_temps = .{
32908 .{ .type = .f80, .kind = .{ .reg = .st6 } },
32909 .{ .type = .f80, .kind = .{ .reg = .st7 } },
32910 .unused,
32911 .unused,
32912 .unused,
32913 .unused,
32914 .unused,
32915 .unused,
32916 .unused,
32917 .unused,
32918 .unused,
32919 },
32920 .dst_temps = .{ .{ .rc = .x87 }, .unused },
32921 .each = .{ .once = &.{
32922 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
32923 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
32924 .{ ._, .f_p, .div, ._, ._, ._, ._ },
32925 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
32926 } },
32927 }, .{
32928 .required_features = .{ .x87, null, null, null },
32929 .src_constraints = .{
32930 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
32931 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
32932 .any,
32933 },
32934 .patterns = &.{
32935 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
32936 },
32937 .extra_temps = .{
32938 .{ .type = .f80, .kind = .{ .reg = .st7 } },
32939 .unused,
32940 .unused,
32941 .unused,
32942 .unused,
32943 .unused,
32944 .unused,
32945 .unused,
32946 .unused,
32947 .unused,
32948 .unused,
32949 },
32950 .dst_temps = .{ .{ .rc = .x87 }, .unused },
32951 .each = .{ .once = &.{
32952 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
32953 .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ },
32954 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
32955 } },
32956 }, .{
32957 .required_features = .{ .x87, null, null, null },
32958 .src_constraints = .{
32959 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
32960 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
32961 .any,
32962 },
32963 .patterns = &.{
32964 .{ .src = .{ .mem, .to_x87, .none } },
32965 .{ .src = .{ .to_x87, .to_x87, .none } },
32966 },
32967 .extra_temps = .{
32968 .{ .type = .f80, .kind = .{ .reg = .st7 } },
32969 .unused,
32970 .unused,
32971 .unused,
32972 .unused,
32973 .unused,
32974 .unused,
32975 .unused,
32976 .unused,
32977 .unused,
32978 .unused,
32979 },
32980 .dst_temps = .{ .{ .rc = .x87 }, .unused },
32981 .each = .{ .once = &.{
32982 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
32983 .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ },
32984 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
32985 } },
32986 }, .{
32987 .required_features = .{ .x87, null, null, null },
32988 .src_constraints = .{
32989 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
32990 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
32991 .any,
32992 },
32993 .patterns = &.{
32994 .{ .src = .{ .to_mem, .to_mem, .none } },
32995 },
32996 .extra_temps = .{
32997 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
32998 .{ .type = .f80, .kind = .{ .reg = .st6 } },
32999 .{ .type = .f80, .kind = .{ .reg = .st7 } },
33000 .unused,
33001 .unused,
33002 .unused,
33003 .unused,
33004 .unused,
33005 .unused,
33006 .unused,
33007 .unused,
33008 },
33009 .dst_temps = .{ .mem, .unused },
33010 .clobbers = .{ .eflags = true },
33011 .each = .{ .once = &.{
33012 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
33013 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
33014 .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },
33015 .{ ._, .f_p, .div, ._, ._, ._, ._ },
33016 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
33017 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
33018 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
33019 } },
33020 }, .{
33021 .required_features = .{ .sse, null, null, null },
33022 .src_constraints = .{
33023 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
33024 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
33025 .any,
33026 },
33027 .patterns = &.{
33028 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
33029 },
33030 .call_frame = .{ .alignment = .@"16" },
33031 .extra_temps = .{
33032 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
33033 .unused,
33034 .unused,
33035 .unused,
33036 .unused,
33037 .unused,
33038 .unused,
33039 .unused,
33040 .unused,
33041 .unused,
33042 .unused,
33043 },
33044 .dst_temps = .{ .{ .ref = .src0 }, .unused },
33045 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
33046 .each = .{ .once = &.{
33047 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
33048 } },
33049 }, .{
33050 .required_features = .{ .avx, null, null, null },
33051 .src_constraints = .{
33052 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
33053 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
33054 .any,
33055 },
33056 .patterns = &.{
33057 .{ .src = .{ .to_mem, .to_mem, .none } },
33058 },
33059 .call_frame = .{ .alignment = .@"16" },
33060 .extra_temps = .{
33061 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
33062 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
33063 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
33064 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
33065 .unused,
33066 .unused,
33067 .unused,
33068 .unused,
33069 .unused,
33070 .unused,
33071 .unused,
33072 },
33073 .dst_temps = .{ .mem, .unused },
33074 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
33075 .each = .{ .once = &.{
33076 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
33077 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
33078 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
33079 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
33080 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
33081 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
33082 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
33083 } },
33084 }, .{
33085 .required_features = .{ .sse2, null, null, null },
33086 .src_constraints = .{
33087 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
33088 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
33089 .any,
33090 },
33091 .patterns = &.{
33092 .{ .src = .{ .to_mem, .to_mem, .none } },
33093 },
33094 .call_frame = .{ .alignment = .@"16" },
27878 .extra_temps = .{33095 .extra_temps = .{
27879 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },33096 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
27880 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },33097 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
...@@ -31476,7 +36693,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -31476,7 +36693,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
31476 },36693 },
31477 .extra_temps = .{36694 .extra_temps = .{
31478 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },36695 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31479 .{ .type = .i8, .kind = .{ .reg = .ah } },36696 .{ .type = .i16, .kind = .{ .reg = .ax } },
31480 .unused,36697 .unused,
31481 .unused,36698 .unused,
31482 .unused,36699 .unused,
...@@ -31493,7 +36710,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -31493,7 +36710,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
31493 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },36710 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
31494 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },36711 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
31495 .{ ._, .i_, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },36712 .{ ._, .i_, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
31496 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },36713 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1h, ._, ._ },
31497 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },36714 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
31498 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },36715 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
31499 } },36716 } },
...@@ -31508,7 +36725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -31508,7 +36725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
31508 },36725 },
31509 .extra_temps = .{36726 .extra_temps = .{
31510 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },36727 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31511 .{ .type = .i8, .kind = .{ .reg = .ah } },36728 .{ .type = .i16, .kind = .{ .reg = .ax } },
31512 .unused,36729 .unused,
31513 .unused,36730 .unused,
31514 .unused,36731 .unused,
...@@ -31525,7 +36742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -31525,7 +36742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
31525 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },36742 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
31526 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },36743 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
31527 .{ ._, .i_, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },36744 .{ ._, .i_, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
31528 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },36745 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1h, ._, ._ },
31529 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },36746 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
31530 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },36747 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
31531 } },36748 } },
...@@ -31541,7 +36758,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -31541,7 +36758,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
31541 },36758 },
31542 .extra_temps = .{36759 .extra_temps = .{
31543 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },36760 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31544 .{ .type = .u8, .kind = .{ .reg = .ah } },36761 .{ .type = .u16, .kind = .{ .reg = .ax } },
31545 .unused,36762 .unused,
31546 .unused,36763 .unused,
31547 .unused,36764 .unused,
...@@ -31558,7 +36775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -31558,7 +36775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
31558 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },36775 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
31559 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },36776 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
31560 .{ ._, ._, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },36777 .{ ._, ._, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
31561 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },36778 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1h, ._, ._ },
31562 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },36779 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
31563 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },36780 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
31564 } },36781 } },
...@@ -31573,7 +36790,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -31573,7 +36790,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
31573 },36790 },
31574 .extra_temps = .{36791 .extra_temps = .{
31575 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },36792 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
31576 .{ .type = .u8, .kind = .{ .reg = .ah } },36793 .{ .type = .u16, .kind = .{ .reg = .ax } },
31577 .unused,36794 .unused,
31578 .unused,36795 .unused,
31579 .unused,36796 .unused,
...@@ -31590,7 +36807,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -31590,7 +36807,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
31590 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },36807 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
31591 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },36808 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
31592 .{ ._, ._, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },36809 .{ ._, ._, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
31593 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },36810 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1h, ._, ._ },
31594 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },36811 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
31595 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },36812 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
31596 } },36813 } },
...@@ -38951,7 +44168,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -38951,7 +44168,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
38951 },44168 },
38952 .extra_temps = .{44169 .extra_temps = .{
38953 .{ .type = .f80, .kind = .{ .reg = .st7 } },44170 .{ .type = .f80, .kind = .{ .reg = .st7 } },
38954 .{ .type = .u8, .kind = .{ .reg = .ah } },44171 .{ .type = .u16, .kind = .{ .reg = .ax } },
38955 .unused,44172 .unused,
38956 .unused,44173 .unused,
38957 .unused,44174 .unused,
...@@ -38994,7 +44211,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -38994,7 +44211,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
38994 },44211 },
38995 .extra_temps = .{44212 .extra_temps = .{
38996 .{ .type = .f80, .kind = .{ .reg = .st7 } },44213 .{ .type = .f80, .kind = .{ .reg = .st7 } },
38997 .{ .type = .u8, .kind = .{ .reg = .ah } },44214 .{ .type = .u16, .kind = .{ .reg = .ax } },
38998 .unused,44215 .unused,
38999 .unused,44216 .unused,
39000 .unused,44217 .unused,
...@@ -39011,13 +44228,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -39011,13 +44228,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
39011 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },44228 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
39012 .{ ._, .f_, .xam, ._, ._, ._, ._ },44229 .{ ._, .f_, .xam, ._, ._, ._, ._ },
39013 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },44230 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
39014 .{ ._, ._, .@"test", .tmp1b, .si(0b1_000_100), ._, ._ },44231 .{ ._, ._, .@"test", .tmp1h, .si(0b1_000_100), ._, ._ },
39015 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },44232 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
39016 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },44233 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
39017 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },44234 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },
39018 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },44235 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
39019 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },44236 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
39020 .{ ._, ._, .@"test", .tmp1b, .si(0b0_000_001), ._, ._ },44237 .{ ._, ._, .@"test", .tmp1h, .si(0b0_000_001), ._, ._ },
39021 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },44238 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
39022 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },44239 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },
39023 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },44240 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
...@@ -39077,7 +44294,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -39077,7 +44294,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
39077 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },44294 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
39078 .{ .type = .f80, .kind = .{ .reg = .st6 } },44295 .{ .type = .f80, .kind = .{ .reg = .st6 } },
39079 .{ .type = .f80, .kind = .{ .reg = .st7 } },44296 .{ .type = .f80, .kind = .{ .reg = .st7 } },
39080 .{ .type = .u8, .kind = .{ .reg = .ah } },44297 .{ .type = .u16, .kind = .{ .reg = .ax } },
39081 .unused,44298 .unused,
39082 .unused,44299 .unused,
39083 .unused,44300 .unused,
...@@ -39123,7 +44340,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -39123,7 +44340,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
39123 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },44340 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
39124 .{ .type = .f80, .kind = .{ .reg = .st6 } },44341 .{ .type = .f80, .kind = .{ .reg = .st6 } },
39125 .{ .type = .f80, .kind = .{ .reg = .st7 } },44342 .{ .type = .f80, .kind = .{ .reg = .st7 } },
39126 .{ .type = .u8, .kind = .{ .reg = .ah } },44343 .{ .type = .u16, .kind = .{ .reg = .ax } },
39127 .unused,44344 .unused,
39128 .unused,44345 .unused,
39129 .unused,44346 .unused,
...@@ -39140,13 +44357,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -39140,13 +44357,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
39140 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },44357 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
39141 .{ ._, .f_, .xam, ._, ._, ._, ._ },44358 .{ ._, .f_, .xam, ._, ._, ._, ._ },
39142 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },44359 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
39143 .{ ._, ._, .@"test", .tmp3b, .si(0b1_000_100), ._, ._ },44360 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
39144 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },44361 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
39145 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },44362 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
39146 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },44363 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
39147 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },44364 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
39148 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },44365 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
39149 .{ ._, ._, .@"test", .tmp3b, .si(0b0_000_001), ._, ._ },44366 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
39150 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },44367 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
39151 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },44368 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
39152 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },44369 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
...@@ -43108,7 +48325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43108,7 +48325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43108 },48325 },
43109 .extra_temps = .{48326 .extra_temps = .{
43110 .{ .type = .f80, .kind = .{ .reg = .st7 } },48327 .{ .type = .f80, .kind = .{ .reg = .st7 } },
43111 .{ .type = .u8, .kind = .{ .reg = .ah } },48328 .{ .type = .u16, .kind = .{ .reg = .ax } },
43112 .unused,48329 .unused,
43113 .unused,48330 .unused,
43114 .unused,48331 .unused,
...@@ -43149,7 +48366,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43149,7 +48366,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43149 },48366 },
43150 .extra_temps = .{48367 .extra_temps = .{
43151 .{ .type = .f80, .kind = .{ .reg = .st7 } },48368 .{ .type = .f80, .kind = .{ .reg = .st7 } },
43152 .{ .type = .u8, .kind = .{ .reg = .ah } },48369 .{ .type = .u16, .kind = .{ .reg = .ax } },
43153 .unused,48370 .unused,
43154 .unused,48371 .unused,
43155 .unused,48372 .unused,
...@@ -43166,11 +48383,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43166,11 +48383,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43166 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },48383 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
43167 .{ ._, .f_, .xam, ._, ._, ._, ._ },48384 .{ ._, .f_, .xam, ._, ._, ._, ._ },
43168 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },48385 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
43169 .{ ._, ._, .@"test", .tmp1b, .si(0b1_000_100), ._, ._ },48386 .{ ._, ._, .@"test", .tmp1h, .si(0b1_000_100), ._, ._ },
43170 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },48387 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
43171 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },48388 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },
43172 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },48389 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
43173 .{ ._, ._, .@"test", .tmp1b, .si(0b0_000_001), ._, ._ },48390 .{ ._, ._, .@"test", .tmp1h, .si(0b0_000_001), ._, ._ },
43174 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },48391 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
43175 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },48392 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },
43176 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },48393 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
...@@ -43228,7 +48445,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43228,7 +48445,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43228 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },48445 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
43229 .{ .type = .f80, .kind = .{ .reg = .st6 } },48446 .{ .type = .f80, .kind = .{ .reg = .st6 } },
43230 .{ .type = .f80, .kind = .{ .reg = .st7 } },48447 .{ .type = .f80, .kind = .{ .reg = .st7 } },
43231 .{ .type = .u8, .kind = .{ .reg = .ah } },48448 .{ .type = .u16, .kind = .{ .reg = .ax } },
43232 .unused,48449 .unused,
43233 .unused,48450 .unused,
43234 .unused,48451 .unused,
...@@ -43272,7 +48489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43272,7 +48489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43272 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },48489 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
43273 .{ .type = .f80, .kind = .{ .reg = .st6 } },48490 .{ .type = .f80, .kind = .{ .reg = .st6 } },
43274 .{ .type = .f80, .kind = .{ .reg = .st7 } },48491 .{ .type = .f80, .kind = .{ .reg = .st7 } },
43275 .{ .type = .u8, .kind = .{ .reg = .ah } },48492 .{ .type = .u16, .kind = .{ .reg = .ax } },
43276 .unused,48493 .unused,
43277 .unused,48494 .unused,
43278 .unused,48495 .unused,
...@@ -43289,11 +48506,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43289,11 +48506,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43289 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },48506 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
43290 .{ ._, .f_, .xam, ._, ._, ._, ._ },48507 .{ ._, .f_, .xam, ._, ._, ._, ._ },
43291 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },48508 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
43292 .{ ._, ._, .@"test", .tmp3b, .si(0b1_000_100), ._, ._ },48509 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
43293 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },48510 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
43294 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },48511 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
43295 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },48512 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
43296 .{ ._, ._, .@"test", .tmp3b, .si(0b0_000_001), ._, ._ },48513 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
43297 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },48514 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
43298 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },48515 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
43299 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },48516 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
...@@ -43897,8 +49114,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43897,8 +49114,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43897 }, .{49114 }, .{
43898 .required_features = .{ .@"64bit", null, null, null },49115 .required_features = .{ .@"64bit", null, null, null },
43899 .src_constraints = .{49116 .src_constraints = .{
43900 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },49117 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
43901 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },49118 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
43902 .any,49119 .any,
43903 },49120 },
43904 .patterns = &.{49121 .patterns = &.{
...@@ -43937,8 +49154,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43937,8 +49154,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43937 }, .{49154 }, .{
43938 .required_features = .{ .@"64bit", null, null, null },49155 .required_features = .{ .@"64bit", null, null, null },
43939 .src_constraints = .{49156 .src_constraints = .{
43940 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },49157 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
43941 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },49158 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
43942 .any,49159 .any,
43943 },49160 },
43944 .patterns = &.{49161 .patterns = &.{
...@@ -43972,8 +49189,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -43972,8 +49189,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
43972 }, .{49189 }, .{
43973 .required_features = .{ .@"64bit", null, null, null },49190 .required_features = .{ .@"64bit", null, null, null },
43974 .src_constraints = .{49191 .src_constraints = .{
43975 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },49192 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
43976 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },49193 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
43977 .any,49194 .any,
43978 },49195 },
43979 .patterns = &.{49196 .patterns = &.{
...@@ -44009,8 +49226,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -44009,8 +49226,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
44009 }, .{49226 }, .{
44010 .required_features = .{ .@"64bit", null, null, null },49227 .required_features = .{ .@"64bit", null, null, null },
44011 .src_constraints = .{49228 .src_constraints = .{
44012 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },49229 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
44013 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },49230 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
44014 .any,49231 .any,
44015 },49232 },
44016 .patterns = &.{49233 .patterns = &.{
...@@ -44803,8 +50020,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -44803,8 +50020,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
44803 }, .{50020 }, .{
44804 .required_features = .{ .@"64bit", null, null, null },50021 .required_features = .{ .@"64bit", null, null, null },
44805 .src_constraints = .{50022 .src_constraints = .{
44806 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },50023 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
44807 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },50024 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
44808 .any,50025 .any,
44809 },50026 },
44810 .patterns = &.{50027 .patterns = &.{
...@@ -44843,8 +50060,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -44843,8 +50060,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
44843 }, .{50060 }, .{
44844 .required_features = .{ .@"64bit", null, null, null },50061 .required_features = .{ .@"64bit", null, null, null },
44845 .src_constraints = .{50062 .src_constraints = .{
44846 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },50063 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
44847 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },50064 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
44848 .any,50065 .any,
44849 },50066 },
44850 .patterns = &.{50067 .patterns = &.{
...@@ -44878,8 +50095,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -44878,8 +50095,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
44878 }, .{50095 }, .{
44879 .required_features = .{ .@"64bit", null, null, null },50096 .required_features = .{ .@"64bit", null, null, null },
44880 .src_constraints = .{50097 .src_constraints = .{
44881 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },50098 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
44882 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },50099 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
44883 .any,50100 .any,
44884 },50101 },
44885 .patterns = &.{50102 .patterns = &.{
...@@ -44915,8 +50132,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -44915,8 +50132,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
44915 }, .{50132 }, .{
44916 .required_features = .{ .@"64bit", null, null, null },50133 .required_features = .{ .@"64bit", null, null, null },
44917 .src_constraints = .{50134 .src_constraints = .{
44918 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },50135 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
44919 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },50136 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
44920 .any,50137 .any,
44921 },50138 },
44922 .patterns = &.{50139 .patterns = &.{
...@@ -45271,7 +50488,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -45271,7 +50488,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
45271 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },50488 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },
45272 },50489 },
45273 .extra_temps = .{50490 .extra_temps = .{
45274 .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },50491 .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } } },
45275 .unused,50492 .unused,
45276 .unused,50493 .unused,
45277 .unused,50494 .unused,
...@@ -45401,7 +50618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -45401,7 +50618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
45401 .{ ._, ._, .mul, .src1w, ._, ._, ._ },50618 .{ ._, ._, .mul, .src1w, ._, ._, ._ },
45402 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },50619 .{ ._, ._, .mov, .tmp1d, .dst0d, ._, ._ },
45403 .{ ._, ._, .@"and", .dst0w, .ua(.src0, .add_umax), ._, ._ },50620 .{ ._, ._, .@"and", .dst0w, .ua(.src0, .add_umax), ._, ._ },
45404 .{ ._, ._, .@"and", .tmp1w, .uia(std.math.maxInt(u16), .src0, .sub_umax), ._, ._ },50621 .{ ._, ._, .@"and", .tmp1w, .sa(.src0, .add_2_smin), ._, ._ },
45405 .{ ._, ._, .@"or", .tmp1w, .tmp0w, ._, ._ },50622 .{ ._, ._, .@"or", .tmp1w, .tmp0w, ._, ._ },
45406 } },50623 } },
45407 }, .{50624 }, .{
...@@ -45692,8 +50909,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -45692,8 +50909,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
45692 }, .{50909 }, .{
45693 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },50910 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
45694 .src_constraints = .{50911 .src_constraints = .{
45695 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },50912 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
45696 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },50913 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
45697 .any,50914 .any,
45698 },50915 },
45699 .patterns = &.{50916 .patterns = &.{
...@@ -45803,8 +51020,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -45803,8 +51020,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
45803 }, .{51020 }, .{
45804 .required_features = .{ .@"64bit", .cmov, null, null },51021 .required_features = .{ .@"64bit", .cmov, null, null },
45805 .src_constraints = .{51022 .src_constraints = .{
45806 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },51023 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
45807 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },51024 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
45808 .any,51025 .any,
45809 },51026 },
45810 .patterns = &.{51027 .patterns = &.{
...@@ -45914,8 +51131,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -45914,8 +51131,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
45914 }, .{51131 }, .{
45915 .required_features = .{ .@"64bit", .slow_incdec, null, null },51132 .required_features = .{ .@"64bit", .slow_incdec, null, null },
45916 .src_constraints = .{51133 .src_constraints = .{
45917 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },51134 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
45918 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },51135 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
45919 .any,51136 .any,
45920 },51137 },
45921 .patterns = &.{51138 .patterns = &.{
...@@ -46025,353 +51242,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -46025,353 +51242,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
46025 }, .{51242 }, .{
46026 .required_features = .{ .@"64bit", null, null, null },51243 .required_features = .{ .@"64bit", null, null, null },
46027 .src_constraints = .{51244 .src_constraints = .{
46028 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },51245 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
46029 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },51246 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
46030 .any,
46031 },
46032 .patterns = &.{
46033 .{ .src = .{ .to_mem, .to_mem, .none } },
46034 },
46035 .extra_temps = .{
46036 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
46037 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46038 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
46039 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46040 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46041 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
46042 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46043 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
46044 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46045 .{ .type = .u64, .kind = .{ .reg = .rax } },
46046 .{ .type = .u64, .kind = .{ .reg = .rdx } },
46047 },
46048 .dst_temps = .{ .mem, .{ .cc = .nz } },
46049 .clobbers = .{ .eflags = true },
46050 .each = .{ .once = &.{
46051 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
46052 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
46053 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
46054 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
46055 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
46056 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
46057 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
46058 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
46059 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
46060 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46061 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
46062 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
46063 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
46064 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
46065 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
46066 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), ._, ._ },
46067 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
46068 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
46069 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
46070 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
46071 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
46072 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
46073 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
46074 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), .tmp9q, ._, ._ },
46075 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
46076 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
46077 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
46078 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
46079 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
46080 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
46081 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
46082 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
46083 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
46084 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
46085 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
46086 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
46087 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
46088 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
46089 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
46090 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
46091 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
46092 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46093 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
46094 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
46095 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
46096 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
46097 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
46098 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
46099 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
46100 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
46101 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
46102 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
46103 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
46104 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
46105 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
46106 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
46107 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
46108 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
46109 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
46110 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
46111 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
46112 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
46113 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
46114 .{ ._, ._c, .st, ._, ._, ._, ._ },
46115 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
46116 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
46117 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
46118 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
46119 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
46120 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
46121 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
46122 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
46123 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
46124 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
46125 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
46126 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
46127 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46128 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
46129 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
46130 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
46131 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp8q, ._, ._ },
46132 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
46133 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
46134 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
46135 } },
46136 }, .{
46137 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
46138 .src_constraints = .{
46139 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },
46140 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },
46141 .any,
46142 },
46143 .patterns = &.{
46144 .{ .src = .{ .to_mem, .to_mem, .none } },
46145 },
46146 .extra_temps = .{
46147 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
46148 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46149 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
46150 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46151 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46152 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
46153 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46154 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
46155 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46156 .{ .type = .u64, .kind = .{ .reg = .rax } },
46157 .{ .type = .u64, .kind = .{ .reg = .rdx } },
46158 },
46159 .dst_temps = .{ .mem, .{ .cc = .nz } },
46160 .clobbers = .{ .eflags = true },
46161 .each = .{ .once = &.{
46162 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
46163 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
46164 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
46165 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
46166 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
46167 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
46168 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
46169 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
46170 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
46171 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46172 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
46173 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
46174 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
46175 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
46176 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
46177 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), ._, ._ },
46178 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
46179 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
46180 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
46181 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
46182 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
46183 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
46184 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
46185 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), .tmp9q, ._, ._ },
46186 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
46187 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
46188 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
46189 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
46190 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
46191 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
46192 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
46193 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
46194 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
46195 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
46196 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
46197 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
46198 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
46199 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
46200 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
46201 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
46202 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
46203 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46204 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
46205 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
46206 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
46207 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
46208 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
46209 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
46210 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
46211 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
46212 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
46213 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
46214 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
46215 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
46216 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
46217 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
46218 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
46219 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
46220 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
46221 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
46222 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
46223 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
46224 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
46225 .{ ._, ._c, .st, ._, ._, ._, ._ },
46226 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
46227 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
46228 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
46229 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
46230 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
46231 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
46232 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
46233 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
46234 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
46235 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
46236 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
46237 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
46238 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46239 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
46240 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
46241 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
46242 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp8q, ._, ._ },
46243 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
46244 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
46245 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
46246 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_src0_size, -16), ._, ._ },
46247 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
46248 .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ },
46249 .{ ._, ._, .xor, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
46250 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ },
46251 .{ ._, ._, .@"or", .tmp4q, .tmp1q, ._, ._ },
46252 } },
46253 }, .{
46254 .required_features = .{ .@"64bit", .cmov, null, null },
46255 .src_constraints = .{
46256 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },
46257 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },
46258 .any,
46259 },
46260 .patterns = &.{
46261 .{ .src = .{ .to_mem, .to_mem, .none } },
46262 },
46263 .extra_temps = .{
46264 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
46265 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46266 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
46267 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46268 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46269 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
46270 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46271 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
46272 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
46273 .{ .type = .u64, .kind = .{ .reg = .rax } },
46274 .{ .type = .u64, .kind = .{ .reg = .rdx } },
46275 },
46276 .dst_temps = .{ .mem, .{ .cc = .nz } },
46277 .clobbers = .{ .eflags = true },
46278 .each = .{ .once = &.{
46279 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
46280 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
46281 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
46282 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
46283 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
46284 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
46285 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
46286 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
46287 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
46288 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46289 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
46290 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
46291 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
46292 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
46293 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
46294 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), ._, ._ },
46295 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
46296 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
46297 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
46298 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
46299 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
46300 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
46301 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
46302 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), .tmp9q, ._, ._ },
46303 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
46304 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
46305 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
46306 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
46307 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
46308 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
46309 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
46310 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
46311 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
46312 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
46313 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
46314 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
46315 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
46316 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
46317 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
46318 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
46319 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
46320 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46321 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
46322 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
46323 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
46324 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
46325 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
46326 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
46327 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
46328 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
46329 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
46330 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
46331 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
46332 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
46333 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
46334 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
46335 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
46336 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
46337 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
46338 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
46339 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
46340 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
46341 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
46342 .{ ._, ._c, .st, ._, ._, ._, ._ },
46343 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
46344 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
46345 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
46346 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
46347 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
46348 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
46349 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
46350 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
46351 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
46352 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
46353 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
46354 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
46355 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
46356 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
46357 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
46358 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
46359 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp8q, ._, ._ },
46360 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
46361 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
46362 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
46363 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_src0_size, -16), ._, ._ },
46364 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
46365 .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ },
46366 .{ ._, ._, .xor, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
46367 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ },
46368 .{ ._, ._, .@"or", .tmp4q, .tmp1q, ._, ._ },
46369 } },
46370 }, .{
46371 .required_features = .{ .@"64bit", .slow_incdec, null, null },
46372 .src_constraints = .{
46373 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },
46374 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },
46375 .any,51247 .any,
46376 },51248 },
46377 .patterns = &.{51249 .patterns = &.{
...@@ -46429,6 +51301,345 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -46429,6 +51301,345 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
46429 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },51301 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
46430 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },51302 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
46431 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },51303 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
51304 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
51305 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
51306 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
51307 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
51308 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
51309 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51310 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
51311 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
51312 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
51313 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
51314 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
51315 .{ ._, ._, .lea, .tmp2q, .memad(.src1, .add_size, -8), ._, ._ },
51316 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
51317 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
51318 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
51319 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
51320 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
51321 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
51322 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
51323 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
51324 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
51325 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
51326 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
51327 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
51328 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
51329 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
51330 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
51331 .{ ._, ._c, .st, ._, ._, ._, ._ },
51332 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
51333 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
51334 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
51335 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
51336 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
51337 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
51338 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
51339 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
51340 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
51341 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
51342 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
51343 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
51344 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51345 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
51346 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
51347 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
51348 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp8q, ._, ._ },
51349 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
51350 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
51351 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
51352 } },
51353 }, .{
51354 .required_features = .{ .@"64bit", .cmov, .slow_incdec, null },
51355 .src_constraints = .{
51356 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
51357 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
51358 .any,
51359 },
51360 .patterns = &.{
51361 .{ .src = .{ .to_mem, .to_mem, .none } },
51362 },
51363 .extra_temps = .{
51364 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
51365 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51366 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
51367 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51368 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51369 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
51370 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51371 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
51372 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51373 .{ .type = .u64, .kind = .{ .reg = .rax } },
51374 .{ .type = .u64, .kind = .{ .reg = .rdx } },
51375 },
51376 .dst_temps = .{ .mem, .{ .cc = .nz } },
51377 .clobbers = .{ .eflags = true },
51378 .each = .{ .once = &.{
51379 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
51380 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
51381 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
51382 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
51383 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
51384 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
51385 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
51386 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51387 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
51388 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
51389 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
51390 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
51391 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
51392 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), ._, ._ },
51393 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
51394 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
51395 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
51396 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
51397 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
51398 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
51399 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
51400 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), .tmp9q, ._, ._ },
51401 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
51402 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
51403 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
51404 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
51405 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
51406 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
51407 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
51408 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
51409 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
51410 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
51411 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
51412 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
51413 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
51414 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
51415 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
51416 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
51417 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
51418 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51419 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
51420 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
51421 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
51422 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
51423 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
51424 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
51425 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
51426 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
51427 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
51428 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
51429 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
51430 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
51431 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
51432 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
51433 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
51434 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
51435 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
51436 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
51437 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
51438 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
51439 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
51440 .{ ._, ._c, .st, ._, ._, ._, ._ },
51441 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
51442 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
51443 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
51444 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
51445 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
51446 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
51447 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
51448 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
51449 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
51450 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
51451 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
51452 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
51453 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51454 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
51455 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
51456 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
51457 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp8q, ._, ._ },
51458 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
51459 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
51460 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
51461 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_src0_size, -16), ._, ._ },
51462 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
51463 .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ },
51464 .{ ._, ._, .xor, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
51465 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ },
51466 .{ ._, ._, .@"or", .tmp4q, .tmp1q, ._, ._ },
51467 } },
51468 }, .{
51469 .required_features = .{ .@"64bit", .cmov, null, null },
51470 .src_constraints = .{
51471 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
51472 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
51473 .any,
51474 },
51475 .patterns = &.{
51476 .{ .src = .{ .to_mem, .to_mem, .none } },
51477 },
51478 .extra_temps = .{
51479 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
51480 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51481 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
51482 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51483 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51484 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
51485 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51486 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
51487 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51488 .{ .type = .u64, .kind = .{ .reg = .rax } },
51489 .{ .type = .u64, .kind = .{ .reg = .rdx } },
51490 },
51491 .dst_temps = .{ .mem, .{ .cc = .nz } },
51492 .clobbers = .{ .eflags = true },
51493 .each = .{ .once = &.{
51494 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
51495 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
51496 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
51497 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
51498 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
51499 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
51500 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
51501 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51502 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
51503 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
51504 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
51505 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
51506 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
51507 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), ._, ._ },
51508 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
51509 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
51510 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
51511 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
51512 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
51513 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
51514 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
51515 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), .tmp9q, ._, ._ },
51516 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
51517 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
51518 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
51519 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
51520 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
51521 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
51522 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
51523 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
51524 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
51525 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
51526 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
51527 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
51528 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
51529 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
51530 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
51531 .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
51532 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
51533 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51534 .{ ._, ._, .cmp, .tmp1b, .tmp3b, ._, ._ },
51535 .{ ._, ._e, .j, .@"1f", ._, ._, ._ },
51536 .{ ._, ._, .lea, .tmp2q, .memad(.src0, .add_size, -8), ._, ._ },
51537 .{ ._, ._, .lea, .tmp8q, .memad(.src1, .add_size, -8), ._, ._ },
51538 .{ ._, ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
51539 .{ ._, ._nz, .cmov, .tmp2q, .tmp8q, ._, ._ },
51540 .{ .@"0:", ._, .mov, .tmp8d, .tmp7d, ._, ._ },
51541 .{ ._, ._, .sbb, .tmp8q, .leasi(.tmp2q, .@"8", .tmp0), ._, ._ },
51542 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
51543 .{ ._, ._, .sbb, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
51544 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
51545 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
51546 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
51547 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
51548 .{ ._, ._, .mov, .tmp8d, .tmp7d, ._, ._ },
51549 .{ ._, ._, .sbb, .tmp8q, .lea(.tmp2q), ._, ._ },
51550 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
51551 .{ ._, ._, .sbb, .tmp8q, .tmp5q, ._, ._ },
51552 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
51553 .{ .@"1:", ._, .@"test", .tmp1b, .tmp1b, ._, ._ },
51554 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
51555 .{ ._, ._c, .st, ._, ._, ._, ._ },
51556 .{ .@"0:", ._, .mov, .tmp8q, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), ._, ._ },
51557 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
51558 .{ ._, ._, .adc, .tmp6b, .tmp6b, ._, ._ },
51559 .{ ._, ._, .sbb, .tmp8q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
51560 .{ ._, ._r, .rc, .tmp6b, .ui(1), ._, ._ },
51561 .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_src0_size, -8), .tmp8q, ._, ._ },
51562 .{ ._, ._c, .in, .tmp0q, ._, ._, ._ },
51563 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
51564 .{ ._, ._, .mov, .tmp8q, .tmp5q, ._, ._ },
51565 .{ ._, ._, .sbb, .tmp8q, .memad(.src0q, .add_size, -8), ._, ._ },
51566 .{ ._, ._o, .set, .tmp7b, ._, ._, ._ },
51567 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
51568 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51569 .{ ._, ._, .add, .tmp6b, .tmp6b, ._, ._ },
51570 .{ ._, ._, .sbb, .tmp8q, .memad(.src1q, .add_size, -8), ._, ._ },
51571 .{ .@"2:", ._o, .set, .tmp7b, ._, ._, ._ },
51572 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp8q, ._, ._ },
51573 .{ ._, ._, .@"or", .tmp4b, .tmp7b, ._, ._ },
51574 .{ .@"1:", ._r, .sh, .tmp5q, .ui(63), ._, ._ },
51575 .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ },
51576 .{ ._, ._, .mov, .tmp0q, .memad(.dst0q, .add_src0_size, -16), ._, ._ },
51577 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
51578 .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ },
51579 .{ ._, ._, .xor, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ },
51580 .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ },
51581 .{ ._, ._, .@"or", .tmp4q, .tmp1q, ._, ._ },
51582 } },
51583 }, .{
51584 .required_features = .{ .@"64bit", .slow_incdec, null, null },
51585 .src_constraints = .{
51586 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
51587 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
51588 .any,
51589 },
51590 .patterns = &.{
51591 .{ .src = .{ .to_mem, .to_mem, .none } },
51592 },
51593 .extra_temps = .{
51594 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
51595 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51596 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
51597 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51598 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51599 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
51600 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51601 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
51602 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
51603 .{ .type = .u64, .kind = .{ .reg = .rax } },
51604 .{ .type = .u64, .kind = .{ .reg = .rdx } },
51605 },
51606 .dst_temps = .{ .mem, .{ .cc = .nz } },
51607 .clobbers = .{ .eflags = true },
51608 .each = .{ .once = &.{
51609 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
51610 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
51611 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
51612 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
51613 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
51614 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
51615 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
51616 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
51617 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
51618 .{ ._, ._, .xor, .tmp6q, .tmp1q, ._, ._ },
51619 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
51620 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp6q, ._, ._ },
51621 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
51622 .{ .@"1:", ._, .adc, .tmp10q, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), ._, ._ },
51623 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
51624 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
51625 .{ .@"2:", ._, .mov, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
51626 .{ ._, ._, .xor, .tmp9q, .tmp3q, ._, ._ },
51627 .{ ._, ._, .mul, .tmp6q, ._, ._, ._ },
51628 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
51629 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
51630 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp5, .add_src0_size), .tmp9q, ._, ._ },
51631 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
51632 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
51633 .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ },
51634 .{ ._, ._, .adc, .tmp10q, .si(0), ._, ._ },
51635 .{ ._, ._mp, .j, .@"2f", ._, ._, ._ },
51636 .{ .@"1:", ._, .mov, .tmp6q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ },
51637 .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ },
51638 .{ ._, ._, .@"or", .tmp10q, .tmp6q, ._, ._ },
51639 .{ .@"2:", ._c, .de, .tmp5d, ._, ._, ._ },
51640 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
51641 .{ ._, ._, .@"or", .tmp4q, .tmp10q, ._, ._ },
51642 .{ .@"3:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
46432 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },51643 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
46433 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },51644 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
46434 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },51645 .{ ._, ._, .mov, .tmp0q, .sia(1, .src0, .sub_size_div_8), ._, ._ },
...@@ -46487,8 +51698,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -46487,8 +51698,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
46487 }, .{51698 }, .{
46488 .required_features = .{ .@"64bit", null, null, null },51699 .required_features = .{ .@"64bit", null, null, null },
46489 .src_constraints = .{51700 .src_constraints = .{
46490 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },51701 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
46491 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },51702 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
46492 .any,51703 .any,
46493 },51704 },
46494 .patterns = &.{51705 .patterns = &.{
...@@ -46515,8 +51726,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -46515,8 +51726,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
46515 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },51726 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
46516 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },51727 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
46517 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },51728 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
46518 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
46519 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
46520 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },51729 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
46521 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },51730 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
46522 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },51731 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
...@@ -46632,8 +51841,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -46632,8 +51841,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
46632 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },51841 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
46633 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },51842 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
46634 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },51843 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
46635 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
46636 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
46637 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },51844 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
46638 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },51845 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
46639 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },51846 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
...@@ -46755,8 +51962,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -46755,8 +51962,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
46755 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },51962 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
46756 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },51963 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
46757 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },51964 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
46758 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
46759 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
46760 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },51965 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
46761 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },51966 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
46762 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },51967 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
...@@ -46878,8 +52083,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -46878,8 +52083,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
46878 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },52083 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
46879 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },52084 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
46880 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },52085 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
46881 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
46882 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
46883 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },52086 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
46884 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },52087 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
46885 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },52088 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
...@@ -47001,8 +52204,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47001,8 +52204,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47001 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },52204 .{ ._, ._, .lea, .tmp2p, .memd(.src1, 8), ._, ._ },
47002 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },52205 .{ ._, ._, .mov, .tmp3q, .memad(.src1q, .add_size, -8), ._, ._ },
47003 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },52206 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
47004 .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ },
47005 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
47006 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },52207 .{ .@"0:", ._, .lea, .tmp5p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
47007 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },52208 .{ ._, ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
47008 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },52209 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
...@@ -47568,8 +52769,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47568,8 +52769,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47568 }, .{52769 }, .{
47569 .required_features = .{ .@"64bit", .bmi2, .adx, null },52770 .required_features = .{ .@"64bit", .bmi2, .adx, null },
47570 .src_constraints = .{52771 .src_constraints = .{
47571 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },52772 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47572 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },52773 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47573 .any,52774 .any,
47574 },52775 },
47575 .patterns = &.{52776 .patterns = &.{
...@@ -47626,8 +52827,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47626,8 +52827,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47626 }, .{52827 }, .{
47627 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },52828 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
47628 .src_constraints = .{52829 .src_constraints = .{
47629 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },52830 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47630 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },52831 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47631 .any,52832 .any,
47632 },52833 },
47633 .patterns = &.{52834 .patterns = &.{
...@@ -47685,8 +52886,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47685,8 +52886,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47685 }, .{52886 }, .{
47686 .required_features = .{ .@"64bit", .bmi2, null, null },52887 .required_features = .{ .@"64bit", .bmi2, null, null },
47687 .src_constraints = .{52888 .src_constraints = .{
47688 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },52889 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47689 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },52890 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47690 .any,52891 .any,
47691 },52892 },
47692 .patterns = &.{52893 .patterns = &.{
...@@ -47744,8 +52945,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47744,8 +52945,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47744 }, .{52945 }, .{
47745 .required_features = .{ .@"64bit", .slow_incdec, null, null },52946 .required_features = .{ .@"64bit", .slow_incdec, null, null },
47746 .src_constraints = .{52947 .src_constraints = .{
47747 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },52948 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47748 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },52949 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47749 .any,52950 .any,
47750 },52951 },
47751 .patterns = &.{52952 .patterns = &.{
...@@ -47803,8 +53004,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47803,8 +53004,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47803 }, .{53004 }, .{
47804 .required_features = .{ .@"64bit", null, null, null },53005 .required_features = .{ .@"64bit", null, null, null },
47805 .src_constraints = .{53006 .src_constraints = .{
47806 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },53007 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47807 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },53008 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
47808 .any,53009 .any,
47809 },53010 },
47810 .patterns = &.{53011 .patterns = &.{
...@@ -47862,8 +53063,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47862,8 +53063,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47862 }, .{53063 }, .{
47863 .required_features = .{ .@"64bit", .bmi2, .adx, null },53064 .required_features = .{ .@"64bit", .bmi2, .adx, null },
47864 .src_constraints = .{53065 .src_constraints = .{
47865 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53066 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
47866 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53067 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
47867 .any,53068 .any,
47868 },53069 },
47869 .patterns = &.{53070 .patterns = &.{
...@@ -47921,8 +53122,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47921,8 +53122,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47921 }, .{53122 }, .{
47922 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },53123 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
47923 .src_constraints = .{53124 .src_constraints = .{
47924 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53125 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
47925 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53126 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
47926 .any,53127 .any,
47927 },53128 },
47928 .patterns = &.{53129 .patterns = &.{
...@@ -47981,8 +53182,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -47981,8 +53182,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
47981 }, .{53182 }, .{
47982 .required_features = .{ .@"64bit", .bmi2, null, null },53183 .required_features = .{ .@"64bit", .bmi2, null, null },
47983 .src_constraints = .{53184 .src_constraints = .{
47984 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53185 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
47985 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53186 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
47986 .any,53187 .any,
47987 },53188 },
47988 .patterns = &.{53189 .patterns = &.{
...@@ -48041,8 +53242,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -48041,8 +53242,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
48041 }, .{53242 }, .{
48042 .required_features = .{ .@"64bit", .slow_incdec, null, null },53243 .required_features = .{ .@"64bit", .slow_incdec, null, null },
48043 .src_constraints = .{53244 .src_constraints = .{
48044 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53245 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
48045 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53246 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
48046 .any,53247 .any,
48047 },53248 },
48048 .patterns = &.{53249 .patterns = &.{
...@@ -48101,8 +53302,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -48101,8 +53302,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
48101 }, .{53302 }, .{
48102 .required_features = .{ .@"64bit", null, null, null },53303 .required_features = .{ .@"64bit", null, null, null },
48103 .src_constraints = .{53304 .src_constraints = .{
48104 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53305 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
48105 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },53306 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
48106 .any,53307 .any,
48107 },53308 },
48108 .patterns = &.{53309 .patterns = &.{
...@@ -49647,7 +54848,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -49647,7 +54848,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
49647 }, .{54848 }, .{
49648 .required_features = .{ .@"64bit", .slow_incdec, null, null },54849 .required_features = .{ .@"64bit", .slow_incdec, null, null },
49649 .src_constraints = .{54850 .src_constraints = .{
49650 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },54851 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
49651 .{ .unsigned_int = .byte },54852 .{ .unsigned_int = .byte },
49652 .any,54853 .any,
49653 },54854 },
...@@ -49711,7 +54912,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -49711,7 +54912,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
49711 }, .{54912 }, .{
49712 .required_features = .{ .@"64bit", null, null, null },54913 .required_features = .{ .@"64bit", null, null, null },
49713 .src_constraints = .{54914 .src_constraints = .{
49714 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },54915 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
49715 .{ .unsigned_int = .byte },54916 .{ .unsigned_int = .byte },
49716 .any,54917 .any,
49717 },54918 },
...@@ -49775,7 +54976,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -49775,7 +54976,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
49775 }, .{54976 }, .{
49776 .required_features = .{ .@"64bit", .slow_incdec, null, null },54977 .required_features = .{ .@"64bit", .slow_incdec, null, null },
49777 .src_constraints = .{54978 .src_constraints = .{
49778 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },54979 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
49779 .{ .unsigned_int = .word },54980 .{ .unsigned_int = .word },
49780 .any,54981 .any,
49781 },54982 },
...@@ -49839,7 +55040,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -49839,7 +55040,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
49839 }, .{55040 }, .{
49840 .required_features = .{ .@"64bit", null, null, null },55041 .required_features = .{ .@"64bit", null, null, null },
49841 .src_constraints = .{55042 .src_constraints = .{
49842 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } },55043 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } },
49843 .{ .unsigned_int = .word },55044 .{ .unsigned_int = .word },
49844 .any,55045 .any,
49845 },55046 },
...@@ -49903,7 +55104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -49903,7 +55104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
49903 }, .{55104 }, .{
49904 .required_features = .{ .@"64bit", .slow_incdec, null, null },55105 .required_features = .{ .@"64bit", .slow_incdec, null, null },
49905 .src_constraints = .{55106 .src_constraints = .{
49906 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },55107 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
49907 .{ .unsigned_int = .byte },55108 .{ .unsigned_int = .byte },
49908 .any,55109 .any,
49909 },55110 },
...@@ -49959,7 +55160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -49959,7 +55160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
49959 }, .{55160 }, .{
49960 .required_features = .{ .@"64bit", null, null, null },55161 .required_features = .{ .@"64bit", null, null, null },
49961 .src_constraints = .{55162 .src_constraints = .{
49962 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },55163 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
49963 .{ .unsigned_int = .byte },55164 .{ .unsigned_int = .byte },
49964 .any,55165 .any,
49965 },55166 },
...@@ -50015,7 +55216,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50015,7 +55216,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50015 }, .{55216 }, .{
50016 .required_features = .{ .@"64bit", .slow_incdec, null, null },55217 .required_features = .{ .@"64bit", .slow_incdec, null, null },
50017 .src_constraints = .{55218 .src_constraints = .{
50018 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },55219 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
50019 .{ .unsigned_int = .word },55220 .{ .unsigned_int = .word },
50020 .any,55221 .any,
50021 },55222 },
...@@ -50071,7 +55272,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50071,7 +55272,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50071 }, .{55272 }, .{
50072 .required_features = .{ .@"64bit", null, null, null },55273 .required_features = .{ .@"64bit", null, null, null },
50073 .src_constraints = .{55274 .src_constraints = .{
50074 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } },55275 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } },
50075 .{ .unsigned_int = .word },55276 .{ .unsigned_int = .word },
50076 .any,55277 .any,
50077 },55278 },
...@@ -50127,7 +55328,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50127,7 +55328,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50127 }, .{55328 }, .{
50128 .required_features = .{ .@"64bit", .slow_incdec, null, null },55329 .required_features = .{ .@"64bit", .slow_incdec, null, null },
50129 .src_constraints = .{55330 .src_constraints = .{
50130 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },55331 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
50131 .{ .unsigned_int = .byte },55332 .{ .unsigned_int = .byte },
50132 .any,55333 .any,
50133 },55334 },
...@@ -50191,7 +55392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50191,7 +55392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50191 }, .{55392 }, .{
50192 .required_features = .{ .@"64bit", null, null, null },55393 .required_features = .{ .@"64bit", null, null, null },
50193 .src_constraints = .{55394 .src_constraints = .{
50194 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },55395 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
50195 .{ .unsigned_int = .byte },55396 .{ .unsigned_int = .byte },
50196 .any,55397 .any,
50197 },55398 },
...@@ -50255,7 +55456,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50255,7 +55456,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50255 }, .{55456 }, .{
50256 .required_features = .{ .@"64bit", .slow_incdec, null, null },55457 .required_features = .{ .@"64bit", .slow_incdec, null, null },
50257 .src_constraints = .{55458 .src_constraints = .{
50258 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },55459 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
50259 .{ .unsigned_int = .word },55460 .{ .unsigned_int = .word },
50260 .any,55461 .any,
50261 },55462 },
...@@ -50319,7 +55520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50319,7 +55520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50319 }, .{55520 }, .{
50320 .required_features = .{ .@"64bit", null, null, null },55521 .required_features = .{ .@"64bit", null, null, null },
50321 .src_constraints = .{55522 .src_constraints = .{
50322 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } },55523 .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } },
50323 .{ .unsigned_int = .word },55524 .{ .unsigned_int = .word },
50324 .any,55525 .any,
50325 },55526 },
...@@ -50383,7 +55584,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50383,7 +55584,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50383 }, .{55584 }, .{
50384 .required_features = .{ .@"64bit", .slow_incdec, null, null },55585 .required_features = .{ .@"64bit", .slow_incdec, null, null },
50385 .src_constraints = .{55586 .src_constraints = .{
50386 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },55587 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
50387 .{ .unsigned_int = .byte },55588 .{ .unsigned_int = .byte },
50388 .any,55589 .any,
50389 },55590 },
...@@ -50440,7 +55641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50440,7 +55641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50440 }, .{55641 }, .{
50441 .required_features = .{ .@"64bit", null, null, null },55642 .required_features = .{ .@"64bit", null, null, null },
50442 .src_constraints = .{55643 .src_constraints = .{
50443 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },55644 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
50444 .{ .unsigned_int = .byte },55645 .{ .unsigned_int = .byte },
50445 .any,55646 .any,
50446 },55647 },
...@@ -50497,7 +55698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50497,7 +55698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50497 }, .{55698 }, .{
50498 .required_features = .{ .@"64bit", .slow_incdec, null, null },55699 .required_features = .{ .@"64bit", .slow_incdec, null, null },
50499 .src_constraints = .{55700 .src_constraints = .{
50500 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },55701 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
50501 .{ .unsigned_int = .word },55702 .{ .unsigned_int = .word },
50502 .any,55703 .any,
50503 },55704 },
...@@ -50554,7 +55755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -50554,7 +55755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
50554 }, .{55755 }, .{
50555 .required_features = .{ .@"64bit", null, null, null },55756 .required_features = .{ .@"64bit", null, null, null },
50556 .src_constraints = .{55757 .src_constraints = .{
50557 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } },55758 .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } },
50558 .{ .unsigned_int = .word },55759 .{ .unsigned_int = .word },
50559 .any,55760 .any,
50560 },55761 },
...@@ -54031,7 +59232,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -54031,7 +59232,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
54031 } },59232 } },
54032 }, .{59233 }, .{
54033 .required_features = .{ .@"64bit", null, null, null },59234 .required_features = .{ .@"64bit", null, null, null },
54034 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .dword } }, .any, .any },59235 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 32 } }, .any, .any },
54035 .patterns = &.{59236 .patterns = &.{
54036 .{ .src = .{ .mut_mem, .none, .none } },59237 .{ .src = .{ .mut_mem, .none, .none } },
54037 },59238 },
...@@ -54060,7 +59261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -54060,7 +59261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
54060 } },59261 } },
54061 }, .{59262 }, .{
54062 .required_features = .{ .@"64bit", null, null, null },59263 .required_features = .{ .@"64bit", null, null, null },
54063 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .dword } }, .any, .any },59264 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 32 } }, .any, .any },
54064 .patterns = &.{59265 .patterns = &.{
54065 .{ .src = .{ .to_mem, .none, .none } },59266 .{ .src = .{ .to_mem, .none, .none } },
54066 },59267 },
...@@ -54094,7 +59295,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -54094,7 +59295,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
54094 } },59295 } },
54095 }, .{59296 }, .{
54096 .required_features = .{ .@"64bit", null, null, null },59297 .required_features = .{ .@"64bit", null, null, null },
54097 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },59298 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .qword, .is = 64 } }, .any, .any },
54098 .patterns = &.{59299 .patterns = &.{
54099 .{ .src = .{ .mut_mem, .none, .none } },59300 .{ .src = .{ .mut_mem, .none, .none } },
54100 },59301 },
...@@ -54123,7 +59324,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -54123,7 +59324,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
54123 } },59324 } },
54124 }, .{59325 }, .{
54125 .required_features = .{ .@"64bit", null, null, null },59326 .required_features = .{ .@"64bit", null, null, null },
54126 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },59327 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .qword, .is = 64 } }, .any, .any },
54127 .patterns = &.{59328 .patterns = &.{
54128 .{ .src = .{ .to_mem, .none, .none } },59329 .{ .src = .{ .to_mem, .none, .none } },
54129 },59330 },
...@@ -54153,7 +59354,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -54153,7 +59354,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
54153 } },59354 } },
54154 }, .{59355 }, .{
54155 .required_features = .{ .@"64bit", null, null, null },59356 .required_features = .{ .@"64bit", null, null, null },
54156 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .dword, .is = .dword } }, .any, .any },59357 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .dword, .is = 32 } }, .any, .any },
54157 .patterns = &.{59358 .patterns = &.{
54158 .{ .src = .{ .mut_mem, .none, .none } },59359 .{ .src = .{ .mut_mem, .none, .none } },
54159 },59360 },
...@@ -54181,7 +59382,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -54181,7 +59382,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
54181 } },59382 } },
54182 }, .{59383 }, .{
54183 .required_features = .{ .@"64bit", null, null, null },59384 .required_features = .{ .@"64bit", null, null, null },
54184 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .dword, .is = .dword } }, .any, .any },59385 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .dword, .is = 32 } }, .any, .any },
54185 .patterns = &.{59386 .patterns = &.{
54186 .{ .src = .{ .to_mem, .none, .none } },59387 .{ .src = .{ .to_mem, .none, .none } },
54187 },59388 },
...@@ -55117,7 +60318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55117,7 +60318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55117 .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ },60318 .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ },
55118 .{ ._, ._, .@"and", .tmp0d, .sa(.src0, .add_umax), ._, ._ },60319 .{ ._, ._, .@"and", .tmp0d, .sa(.src0, .add_umax), ._, ._ },
55119 .{ ._, ._r, .bs, .tmp0d, .tmp0d, ._, ._ },60320 .{ ._, ._r, .bs, .tmp0d, .tmp0d, ._, ._ },
55120 .{ ._, ._, .mov, .dst0d, .si(0xff), ._, ._ },60321 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
55121 .{ ._, ._z, .cmov, .tmp0d, .dst0d, ._, ._ },60322 .{ ._, ._z, .cmov, .tmp0d, .dst0d, ._, ._ },
55122 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60323 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55123 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60324 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55147,7 +60348,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55147,7 +60348,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55147 .each = .{ .once = &.{60348 .each = .{ .once = &.{
55148 .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ },60349 .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ },
55149 .{ ._, ._r, .bs, .tmp0d, .tmp0d, ._, ._ },60350 .{ ._, ._r, .bs, .tmp0d, .tmp0d, ._, ._ },
55150 .{ ._, ._, .mov, .dst0d, .si(0xff), ._, ._ },60351 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
55151 .{ ._, ._z, .cmov, .tmp0d, .dst0d, ._, ._ },60352 .{ ._, ._z, .cmov, .tmp0d, .dst0d, ._, ._ },
55152 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60353 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55153 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60354 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55325,7 +60526,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55325,7 +60526,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55325 .each = .{ .once = &.{60526 .each = .{ .once = &.{
55326 .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ },60527 .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ },
55327 .{ ._, ._, .@"and", .dst0d, .sa(.src0, .add_umax), ._, ._ },60528 .{ ._, ._, .@"and", .dst0d, .sa(.src0, .add_umax), ._, ._ },
55328 .{ ._, ._, .mov, .tmp0d, .si(0xff), ._, ._ },60529 .{ ._, ._, .mov, .tmp0d, .si(-1), ._, ._ },
55329 .{ ._, ._r, .bs, .tmp0d, .dst0d, ._, ._ },60530 .{ ._, ._r, .bs, .tmp0d, .dst0d, ._, ._ },
55330 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60531 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55331 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60532 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55353,7 +60554,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55353,7 +60554,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55353 .clobbers = .{ .eflags = true },60554 .clobbers = .{ .eflags = true },
55354 .each = .{ .once = &.{60555 .each = .{ .once = &.{
55355 .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ },60556 .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ },
55356 .{ ._, ._, .mov, .tmp0d, .si(0xff), ._, ._ },60557 .{ ._, ._, .mov, .tmp0d, .si(-1), ._, ._ },
55357 .{ ._, ._r, .bs, .tmp0d, .dst0d, ._, ._ },60558 .{ ._, ._r, .bs, .tmp0d, .dst0d, ._, ._ },
55358 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60559 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55359 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60560 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55383,8 +60584,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55383,8 +60584,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55383 .each = .{ .once = &.{60584 .each = .{ .once = &.{
55384 .{ ._, ._, .@"and", .src0w, .sa(.src0, .add_umax), ._, ._ },60585 .{ ._, ._, .@"and", .src0w, .sa(.src0, .add_umax), ._, ._ },
55385 .{ ._, ._r, .bs, .src0w, .src0w, ._, ._ },60586 .{ ._, ._r, .bs, .src0w, .src0w, ._, ._ },
55386 .{ ._, ._, .mov, .dst0w, .si(0xff), ._, ._ },60587 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
55387 .{ ._, ._z, .cmov, .src0w, .dst0w, ._, ._ },60588 .{ ._, ._z, .cmov, .src0d, .dst0d, ._, ._ },
55388 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60589 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55389 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },60590 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },
55390 } },60591 } },
...@@ -55398,8 +60599,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55398,8 +60599,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55398 .clobbers = .{ .eflags = true },60599 .clobbers = .{ .eflags = true },
55399 .each = .{ .once = &.{60600 .each = .{ .once = &.{
55400 .{ ._, ._r, .bs, .src0w, .src0w, ._, ._ },60601 .{ ._, ._r, .bs, .src0w, .src0w, ._, ._ },
55401 .{ ._, ._, .mov, .dst0w, .si(0xff), ._, ._ },60602 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
55402 .{ ._, ._z, .cmov, .src0w, .dst0w, ._, ._ },60603 .{ ._, ._z, .cmov, .src0d, .dst0d, ._, ._ },
55403 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60604 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55404 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },60605 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },
55405 } },60606 } },
...@@ -55483,7 +60684,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55483,7 +60684,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55483 .clobbers = .{ .eflags = true },60684 .clobbers = .{ .eflags = true },
55484 .each = .{ .once = &.{60685 .each = .{ .once = &.{
55485 .{ ._, ._, .@"and", .src0w, .sa(.src0, .add_umax), ._, ._ },60686 .{ ._, ._, .@"and", .src0w, .sa(.src0, .add_umax), ._, ._ },
55486 .{ ._, ._, .mov, .tmp0w, .si(0xff), ._, ._ },60687 .{ ._, ._, .mov, .tmp0d, .si(-1), ._, ._ },
55487 .{ ._, ._r, .bs, .tmp0w, .src0w, ._, ._ },60688 .{ ._, ._r, .bs, .tmp0w, .src0w, ._, ._ },
55488 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60689 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55489 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60690 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55510,7 +60711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55510,7 +60711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55510 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },60711 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
55511 .clobbers = .{ .eflags = true },60712 .clobbers = .{ .eflags = true },
55512 .each = .{ .once = &.{60713 .each = .{ .once = &.{
55513 .{ ._, ._, .mov, .tmp0w, .si(0xff), ._, ._ },60714 .{ ._, ._, .mov, .tmp0d, .si(-1), ._, ._ },
55514 .{ ._, ._r, .bs, .tmp0w, .src0w, ._, ._ },60715 .{ ._, ._r, .bs, .tmp0w, .src0w, ._, ._ },
55515 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60716 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55516 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60717 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55540,7 +60741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55540,7 +60741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55540 .each = .{ .once = &.{60741 .each = .{ .once = &.{
55541 .{ ._, ._, .@"and", .src0d, .sa(.src0, .add_umax), ._, ._ },60742 .{ ._, ._, .@"and", .src0d, .sa(.src0, .add_umax), ._, ._ },
55542 .{ ._, ._r, .bs, .src0d, .src0d, ._, ._ },60743 .{ ._, ._r, .bs, .src0d, .src0d, ._, ._ },
55543 .{ ._, ._, .mov, .dst0d, .si(0xff), ._, ._ },60744 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
55544 .{ ._, ._z, .cmov, .src0d, .dst0d, ._, ._ },60745 .{ ._, ._z, .cmov, .src0d, .dst0d, ._, ._ },
55545 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60746 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55546 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },60747 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },
...@@ -55555,7 +60756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55555,7 +60756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55555 .clobbers = .{ .eflags = true },60756 .clobbers = .{ .eflags = true },
55556 .each = .{ .once = &.{60757 .each = .{ .once = &.{
55557 .{ ._, ._r, .bs, .src0d, .src0d, ._, ._ },60758 .{ ._, ._r, .bs, .src0d, .src0d, ._, ._ },
55558 .{ ._, ._, .mov, .dst0d, .si(0xff), ._, ._ },60759 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
55559 .{ ._, ._z, .cmov, .src0d, .dst0d, ._, ._ },60760 .{ ._, ._z, .cmov, .src0d, .dst0d, ._, ._ },
55560 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60761 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55561 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },60762 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },
...@@ -55640,7 +60841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55640,7 +60841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55640 .clobbers = .{ .eflags = true },60841 .clobbers = .{ .eflags = true },
55641 .each = .{ .once = &.{60842 .each = .{ .once = &.{
55642 .{ ._, ._, .@"and", .src0d, .sa(.src0, .add_umax), ._, ._ },60843 .{ ._, ._, .@"and", .src0d, .sa(.src0, .add_umax), ._, ._ },
55643 .{ ._, ._, .mov, .tmp0d, .si(0xff), ._, ._ },60844 .{ ._, ._, .mov, .tmp0d, .si(-1), ._, ._ },
55644 .{ ._, ._r, .bs, .tmp0d, .src0d, ._, ._ },60845 .{ ._, ._r, .bs, .tmp0d, .src0d, ._, ._ },
55645 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60846 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55646 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60847 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55667,7 +60868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55667,7 +60868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55667 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },60868 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
55668 .clobbers = .{ .eflags = true },60869 .clobbers = .{ .eflags = true },
55669 .each = .{ .once = &.{60870 .each = .{ .once = &.{
55670 .{ ._, ._, .mov, .tmp0d, .si(0xff), ._, ._ },60871 .{ ._, ._, .mov, .tmp0d, .si(-1), ._, ._ },
55671 .{ ._, ._r, .bs, .tmp0d, .src0d, ._, ._ },60872 .{ ._, ._r, .bs, .tmp0d, .src0d, ._, ._ },
55672 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60873 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55673 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60874 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55712,7 +60913,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55712,7 +60913,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55712 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },60913 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
55713 .{ ._, ._, .@"and", .tmp0q, .src0q, ._, ._ },60914 .{ ._, ._, .@"and", .tmp0q, .src0q, ._, ._ },
55714 .{ ._, ._r, .bs, .tmp0q, .tmp0q, ._, ._ },60915 .{ ._, ._r, .bs, .tmp0q, .tmp0q, ._, ._ },
55715 .{ ._, ._, .mov, .dst0d, .si(0xff), ._, ._ },60916 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
55716 .{ ._, ._z, .cmov, .tmp0d, .dst0d, ._, ._ },60917 .{ ._, ._z, .cmov, .tmp0d, .dst0d, ._, ._ },
55717 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60918 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55718 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },60919 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55727,7 +60928,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55727,7 +60928,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55727 .clobbers = .{ .eflags = true },60928 .clobbers = .{ .eflags = true },
55728 .each = .{ .once = &.{60929 .each = .{ .once = &.{
55729 .{ ._, ._r, .bs, .src0q, .src0q, ._, ._ },60930 .{ ._, ._r, .bs, .src0q, .src0q, ._, ._ },
55730 .{ ._, ._, .mov, .dst0d, .si(0xff), ._, ._ },60931 .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ },
55731 .{ ._, ._z, .cmov, .src0d, .dst0d, ._, ._ },60932 .{ ._, ._z, .cmov, .src0d, .dst0d, ._, ._ },
55732 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },60933 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55733 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },60934 .{ ._, ._, .sub, .dst0b, .src0b, ._, ._ },
...@@ -55831,7 +61032,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55831,7 +61032,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55831 .each = .{ .once = &.{61032 .each = .{ .once = &.{
55832 .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ },61033 .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ },
55833 .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ },61034 .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ },
55834 .{ ._, ._, .mov, .tmp0d, .si(0xff), ._, ._ },61035 .{ ._, ._, .mov, .tmp0d, .si(-1), ._, ._ },
55835 .{ ._, ._r, .bs, .tmp0q, .dst0q, ._, ._ },61036 .{ ._, ._r, .bs, .tmp0q, .dst0q, ._, ._ },
55836 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },61037 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55837 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },61038 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -55859,7 +61060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -55859,7 +61060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
55859 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },61060 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
55860 .clobbers = .{ .eflags = true },61061 .clobbers = .{ .eflags = true },
55861 .each = .{ .once = &.{61062 .each = .{ .once = &.{
55862 .{ ._, ._, .mov, .tmp0d, .si(0xff), ._, ._ },61063 .{ ._, ._, .mov, .tmp0d, .si(-1), ._, ._ },
55863 .{ ._, ._r, .bs, .tmp0q, .src0q, ._, ._ },61064 .{ ._, ._r, .bs, .tmp0q, .src0q, ._, ._ },
55864 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },61065 .{ ._, ._, .mov, .dst0b, .sia(-1, .src0, .add_bit_size), ._, ._ },
55865 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },61066 .{ ._, ._, .sub, .dst0b, .tmp0b, ._, ._ },
...@@ -56597,7 +61798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56597,7 +61798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56597 .clobbers = .{ .eflags = true },61798 .clobbers = .{ .eflags = true },
56598 .each = .{ .once = &.{61799 .each = .{ .once = &.{
56599 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },61800 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
56600 .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },61801 .{ ._, ._, .mov, .tmp1d, .si(-1), ._, ._ },
56601 .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_len), ._, ._ },61802 .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
56602 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },61803 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
56603 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },61804 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
...@@ -56631,7 +61832,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56631,7 +61832,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56631 .clobbers = .{ .eflags = true },61832 .clobbers = .{ .eflags = true },
56632 .each = .{ .once = &.{61833 .each = .{ .once = &.{
56633 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },61834 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
56634 .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },61835 .{ ._, ._, .mov, .tmp1d, .si(-1), ._, ._ },
56635 .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_len), ._, ._ },61836 .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
56636 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },61837 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
56637 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },61838 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
...@@ -56735,7 +61936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56735,7 +61936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56735 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },61936 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
56736 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },61937 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
56737 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },61938 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
56738 .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },61939 .{ ._, ._, .mov, .tmp2d, .si(-1), ._, ._ },
56739 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },61940 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
56740 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },61941 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
56741 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },61942 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
...@@ -56767,7 +61968,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56767,7 +61968,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56767 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },61968 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
56768 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },61969 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
56769 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },61970 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
56770 .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },61971 .{ ._, ._, .mov, .tmp2d, .si(-1), ._, ._ },
56771 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },61972 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
56772 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },61973 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
56773 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },61974 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
...@@ -56798,7 +61999,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56798,7 +61999,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56798 .clobbers = .{ .eflags = true },61999 .clobbers = .{ .eflags = true },
56799 .each = .{ .once = &.{62000 .each = .{ .once = &.{
56800 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62001 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
56801 .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },62002 .{ ._, ._, .mov, .tmp1d, .si(-1), ._, ._ },
56802 .{ .@"0:", ._, .movzx, .tmp2d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },62003 .{ .@"0:", ._, .movzx, .tmp2d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
56803 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },62004 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
56804 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },62005 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
...@@ -56832,7 +62033,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56832,7 +62033,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56832 .clobbers = .{ .eflags = true },62033 .clobbers = .{ .eflags = true },
56833 .each = .{ .once = &.{62034 .each = .{ .once = &.{
56834 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62035 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
56835 .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },62036 .{ ._, ._, .mov, .tmp1d, .si(-1), ._, ._ },
56836 .{ .@"0:", ._, .movzx, .tmp2d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },62037 .{ .@"0:", ._, .movzx, .tmp2d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
56837 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },62038 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
56838 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },62039 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
...@@ -56936,7 +62137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56936,7 +62137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56936 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62137 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
56937 .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },62138 .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
56938 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },62139 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
56939 .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },62140 .{ ._, ._, .mov, .tmp2d, .si(-1), ._, ._ },
56940 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },62141 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
56941 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },62142 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
56942 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },62143 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
...@@ -56968,7 +62169,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56968,7 +62169,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56968 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62169 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
56969 .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },62170 .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
56970 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },62171 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
56971 .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },62172 .{ ._, ._, .mov, .tmp2d, .si(-1), ._, ._ },
56972 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },62173 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
56973 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },62174 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
56974 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },62175 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
...@@ -56999,7 +62200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -56999,7 +62200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
56999 .clobbers = .{ .eflags = true },62200 .clobbers = .{ .eflags = true },
57000 .each = .{ .once = &.{62201 .each = .{ .once = &.{
57001 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62202 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
57002 .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },62203 .{ ._, ._, .mov, .tmp1d, .si(-1), ._, ._ },
57003 .{ .@"0:", ._, .mov, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },62204 .{ .@"0:", ._, .mov, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
57004 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },62205 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
57005 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },62206 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
...@@ -57033,7 +62234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -57033,7 +62234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
57033 .clobbers = .{ .eflags = true },62234 .clobbers = .{ .eflags = true },
57034 .each = .{ .once = &.{62235 .each = .{ .once = &.{
57035 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62236 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
57036 .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },62237 .{ ._, ._, .mov, .tmp1d, .si(-1), ._, ._ },
57037 .{ .@"0:", ._, .mov, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },62238 .{ .@"0:", ._, .mov, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
57038 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },62239 .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
57039 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },62240 .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
...@@ -57137,7 +62338,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -57137,7 +62338,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
57137 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62338 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
57138 .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },62339 .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
57139 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },62340 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
57140 .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },62341 .{ ._, ._, .mov, .tmp2d, .si(-1), ._, ._ },
57141 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },62342 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
57142 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },62343 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
57143 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },62344 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
...@@ -57169,7 +62370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -57169,7 +62370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
57169 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62370 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
57170 .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },62371 .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
57171 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },62372 .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
57172 .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },62373 .{ ._, ._, .mov, .tmp2d, .si(-1), ._, ._ },
57173 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },62374 .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
57174 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },62375 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
57175 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },62376 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
...@@ -57200,7 +62401,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -57200,7 +62401,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
57200 .clobbers = .{ .eflags = true },62401 .clobbers = .{ .eflags = true },
57201 .each = .{ .once = &.{62402 .each = .{ .once = &.{
57202 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62403 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
57203 .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },62404 .{ ._, ._, .mov, .tmp1d, .si(-1), ._, ._ },
57204 .{ .@"0:", ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ },62405 .{ .@"0:", ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ },
57205 .{ ._, ._, .@"and", .tmp2q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },62406 .{ ._, ._, .@"and", .tmp2q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
57206 .{ ._, ._r, .bs, .tmp2q, .tmp2q, ._, ._ },62407 .{ ._, ._r, .bs, .tmp2q, .tmp2q, ._, ._ },
...@@ -57234,7 +62435,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -57234,7 +62435,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
57234 .clobbers = .{ .eflags = true },62435 .clobbers = .{ .eflags = true },
57235 .each = .{ .once = &.{62436 .each = .{ .once = &.{
57236 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62437 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
57237 .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },62438 .{ ._, ._, .mov, .tmp1d, .si(-1), ._, ._ },
57238 .{ .@"0:", ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ },62439 .{ .@"0:", ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ },
57239 .{ ._, ._, .@"and", .tmp2q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },62440 .{ ._, ._, .@"and", .tmp2q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
57240 .{ ._, ._r, .bs, .tmp2q, .tmp2q, ._, ._ },62441 .{ ._, ._r, .bs, .tmp2q, .tmp2q, ._, ._ },
...@@ -57338,7 +62539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -57338,7 +62539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
57338 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62539 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
57339 .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },62540 .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
57340 .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },62541 .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
57341 .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },62542 .{ ._, ._, .mov, .tmp2d, .si(-1), ._, ._ },
57342 .{ ._, ._r, .bs, .tmp2q, .tmp1q, ._, ._ },62543 .{ ._, ._r, .bs, .tmp2q, .tmp1q, ._, ._ },
57343 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },62544 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
57344 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },62545 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
...@@ -57371,7 +62572,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -57371,7 +62572,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
57371 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },62572 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
57372 .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },62573 .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
57373 .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },62574 .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
57374 .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },62575 .{ ._, ._, .mov, .tmp2d, .si(-1), ._, ._ },
57375 .{ ._, ._r, .bs, .tmp2q, .tmp1q, ._, ._ },62576 .{ ._, ._r, .bs, .tmp2q, .tmp1q, ._, ._ },
57376 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },62577 .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
57377 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },62578 .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
...@@ -59339,7 +64540,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59339,7 +64540,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59339 } },64540 } },
59340 }, .{64541 }, .{
59341 .required_features = .{ .@"64bit", .movbe, null, null },64542 .required_features = .{ .@"64bit", .movbe, null, null },
59342 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },64543 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },
59343 .patterns = &.{64544 .patterns = &.{
59344 .{ .src = .{ .to_mem, .none, .none } },64545 .{ .src = .{ .to_mem, .none, .none } },
59345 },64546 },
...@@ -59369,7 +64570,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59369,7 +64570,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59369 } },64570 } },
59370 }, .{64571 }, .{
59371 .required_features = .{ .@"64bit", null, null, null },64572 .required_features = .{ .@"64bit", null, null, null },
59372 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },64573 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },
59373 .patterns = &.{64574 .patterns = &.{
59374 .{ .src = .{ .to_mem, .none, .none } },64575 .{ .src = .{ .to_mem, .none, .none } },
59375 },64576 },
...@@ -59400,7 +64601,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59400,7 +64601,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59400 } },64601 } },
59401 }, .{64602 }, .{
59402 .required_features = .{ .@"64bit", .movbe, null, null },64603 .required_features = .{ .@"64bit", .movbe, null, null },
59403 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },64604 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any, .any },
59404 .patterns = &.{64605 .patterns = &.{
59405 .{ .src = .{ .to_mem, .none, .none } },64606 .{ .src = .{ .to_mem, .none, .none } },
59406 },64607 },
...@@ -59433,7 +64634,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59433,7 +64634,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59433 } },64634 } },
59434 }, .{64635 }, .{
59435 .required_features = .{ .@"64bit", null, null, null },64636 .required_features = .{ .@"64bit", null, null, null },
59436 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },64637 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any, .any },
59437 .patterns = &.{64638 .patterns = &.{
59438 .{ .src = .{ .to_mem, .none, .none } },64639 .{ .src = .{ .to_mem, .none, .none } },
59439 },64640 },
...@@ -59467,7 +64668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59467,7 +64668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59467 } },64668 } },
59468 }, .{64669 }, .{
59469 .required_features = .{ .@"64bit", .movbe, null, null },64670 .required_features = .{ .@"64bit", .movbe, null, null },
59470 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },64671 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any, .any },
59471 .patterns = &.{64672 .patterns = &.{
59472 .{ .src = .{ .to_mem, .none, .none } },64673 .{ .src = .{ .to_mem, .none, .none } },
59473 },64674 },
...@@ -59498,7 +64699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -59498,7 +64699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
59498 } },64699 } },
59499 }, .{64700 }, .{
59500 .required_features = .{ .@"64bit", null, null, null },64701 .required_features = .{ .@"64bit", null, null, null },
59501 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },64702 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any, .any },
59502 .patterns = &.{64703 .patterns = &.{
59503 .{ .src = .{ .to_mem, .none, .none } },64704 .{ .src = .{ .to_mem, .none, .none } },
59504 },64705 },
...@@ -62067,7 +67268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62067,7 +67268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62067 } },67268 } },
62068 }, .{67269 }, .{
62069 .required_features = .{ .avx2, .gfni, null, null },67270 .required_features = .{ .avx2, .gfni, null, null },
62070 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .yword, .is = .yword } }, .any, .any },67271 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .yword, .is = 256 } }, .any, .any },
62071 .patterns = &.{67272 .patterns = &.{
62072 .{ .src = .{ .to_mem, .none, .none } },67273 .{ .src = .{ .to_mem, .none, .none } },
62073 },67274 },
...@@ -62103,7 +67304,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62103,7 +67304,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62103 } },67304 } },
62104 }, .{67305 }, .{
62105 .required_features = .{ .avx, .gfni, null, null },67306 .required_features = .{ .avx, .gfni, null, null },
62106 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .yword, .is = .yword } }, .any, .any },67307 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .yword, .is = 256 } }, .any, .any },
62107 .patterns = &.{67308 .patterns = &.{
62108 .{ .src = .{ .to_mem, .none, .none } },67309 .{ .src = .{ .to_mem, .none, .none } },
62109 },67310 },
...@@ -62139,7 +67340,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62139,7 +67340,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62139 } },67340 } },
62140 }, .{67341 }, .{
62141 .required_features = .{ .avx, .gfni, null, null },67342 .required_features = .{ .avx, .gfni, null, null },
62142 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },67343 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },
62143 .patterns = &.{67344 .patterns = &.{
62144 .{ .src = .{ .to_mem, .none, .none } },67345 .{ .src = .{ .to_mem, .none, .none } },
62145 },67346 },
...@@ -62175,7 +67376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62175,7 +67376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62175 } },67376 } },
62176 }, .{67377 }, .{
62177 .required_features = .{ .@"64bit", .movbe, null, null },67378 .required_features = .{ .@"64bit", .movbe, null, null },
62178 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },67379 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },
62179 .patterns = &.{67380 .patterns = &.{
62180 .{ .src = .{ .to_mem, .none, .none } },67381 .{ .src = .{ .to_mem, .none, .none } },
62181 },67382 },
...@@ -62226,7 +67427,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62226,7 +67427,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62226 } },67427 } },
62227 }, .{67428 }, .{
62228 .required_features = .{ .@"64bit", null, null, null },67429 .required_features = .{ .@"64bit", null, null, null },
62229 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },67430 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },
62230 .patterns = &.{67431 .patterns = &.{
62231 .{ .src = .{ .to_mem, .none, .none } },67432 .{ .src = .{ .to_mem, .none, .none } },
62232 },67433 },
...@@ -62278,7 +67479,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62278,7 +67479,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62278 } },67479 } },
62279 }, .{67480 }, .{
62280 .required_features = .{ .@"64bit", .movbe, null, null },67481 .required_features = .{ .@"64bit", .movbe, null, null },
62281 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },67482 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any, .any },
62282 .patterns = &.{67483 .patterns = &.{
62283 .{ .src = .{ .to_mem, .none, .none } },67484 .{ .src = .{ .to_mem, .none, .none } },
62284 },67485 },
...@@ -62333,7 +67534,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62333,7 +67534,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62333 } },67534 } },
62334 }, .{67535 }, .{
62335 .required_features = .{ .@"64bit", null, null, null },67536 .required_features = .{ .@"64bit", null, null, null },
62336 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },67537 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any, .any },
62337 .patterns = &.{67538 .patterns = &.{
62338 .{ .src = .{ .to_mem, .none, .none } },67539 .{ .src = .{ .to_mem, .none, .none } },
62339 },67540 },
...@@ -62389,7 +67590,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62389,7 +67590,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62389 } },67590 } },
62390 }, .{67591 }, .{
62391 .required_features = .{ .@"64bit", .movbe, null, null },67592 .required_features = .{ .@"64bit", .movbe, null, null },
62392 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },67593 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any, .any },
62393 .patterns = &.{67594 .patterns = &.{
62394 .{ .src = .{ .to_mem, .none, .none } },67595 .{ .src = .{ .to_mem, .none, .none } },
62395 },67596 },
...@@ -62441,7 +67642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -62441,7 +67642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
62441 } },67642 } },
62442 }, .{67643 }, .{
62443 .required_features = .{ .@"64bit", null, null, null },67644 .required_features = .{ .@"64bit", null, null, null },
62444 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },67645 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any, .any },
62445 .patterns = &.{67646 .patterns = &.{
62446 .{ .src = .{ .to_mem, .none, .none } },67647 .{ .src = .{ .to_mem, .none, .none } },
62447 },67648 },
...@@ -64694,7 +69895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -64694,7 +69895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
64694 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },69895 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
64695 .{ .type = .f64, .kind = .{ .reg = .st6 } },69896 .{ .type = .f64, .kind = .{ .reg = .st6 } },
64696 .{ .type = .f64, .kind = .{ .reg = .st7 } },69897 .{ .type = .f64, .kind = .{ .reg = .st7 } },
64697 .{ .type = .u8, .kind = .{ .reg = .ah } },69898 .{ .type = .u16, .kind = .{ .reg = .ax } },
64698 .unused,69899 .unused,
64699 .unused,69900 .unused,
64700 .unused,69901 .unused,
...@@ -64713,8 +69914,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -64713,8 +69914,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
64713 .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ },69914 .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ },
64714 switch (cc) {69915 switch (cc) {
64715 else => unreachable,69916 else => unreachable,
64716 .l => .{ ._, ._, .@"test", .tmp6b, .si(0b1_000_001), ._, ._ },69917 .l => .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_001), ._, ._ },
64717 .le => .{ ._, ._r, .sh, .tmp6b, .ui(1), ._, ._ },69918 .le => .{ ._, ._r, .sh, .tmp6h, .ui(1), ._, ._ },
64718 },69919 },
64719 .{ ._, .fromCond(switch (cc) {69920 .{ ._, .fromCond(switch (cc) {
64720 else => unreachable,69921 else => unreachable,
...@@ -64864,7 +70065,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -64864,7 +70065,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
64864 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },70065 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
64865 .{ .type = .f80, .kind = .{ .reg = .st6 } },70066 .{ .type = .f80, .kind = .{ .reg = .st6 } },
64866 .{ .type = .f80, .kind = .{ .reg = .st7 } },70067 .{ .type = .f80, .kind = .{ .reg = .st7 } },
64867 .{ .type = .u8, .kind = .{ .reg = .ah } },70068 .{ .type = .u16, .kind = .{ .reg = .ax } },
64868 .unused,70069 .unused,
64869 .unused,70070 .unused,
64870 .unused,70071 .unused,
...@@ -64883,8 +70084,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -64883,8 +70084,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
64883 .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ },70084 .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ },
64884 switch (cc) {70085 switch (cc) {
64885 else => unreachable,70086 else => unreachable,
64886 .l => .{ ._, ._, .@"test", .tmp6b, .si(0b1_000_001), ._, ._ },70087 .l => .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_001), ._, ._ },
64887 .le => .{ ._, ._r, .sh, .tmp6b, .ui(1), ._, ._ },70088 .le => .{ ._, ._r, .sh, .tmp6h, .ui(1), ._, ._ },
64888 },70089 },
64889 .{ ._, .fromCond(switch (cc) {70090 .{ ._, .fromCond(switch (cc) {
64890 else => unreachable,70091 else => unreachable,
...@@ -69216,7 +74417,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69216,7 +74417,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69216 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },74417 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
69217 .{ .type = .f64, .kind = .{ .reg = .st6 } },74418 .{ .type = .f64, .kind = .{ .reg = .st6 } },
69218 .{ .type = .f64, .kind = .{ .reg = .st7 } },74419 .{ .type = .f64, .kind = .{ .reg = .st7 } },
69219 .{ .type = .u8, .kind = .{ .reg = .ah } },74420 .{ .type = .u16, .kind = .{ .reg = .ax } },
69220 .unused,74421 .unused,
69221 .unused,74422 .unused,
69222 .unused,74423 .unused,
...@@ -69233,8 +74434,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69233,8 +74434,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69233 .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ },74434 .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ },
69234 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },74435 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },
69235 .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ },74436 .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ },
69236 .{ ._, ._, .xor, .tmp6b, .si(0b1_000_000), ._, ._ },74437 .{ ._, ._, .xor, .tmp6h, .si(0b1_000_000), ._, ._ },
69237 .{ ._, ._, .@"test", .tmp6b, .si(0b1_000_100), ._, ._ },74438 .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_100), ._, ._ },
69238 .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ },74439 .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ },
69239 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },74440 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
69240 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },74441 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
...@@ -69393,7 +74594,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69393,7 +74594,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69393 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },74594 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
69394 .{ .type = .f80, .kind = .{ .reg = .st6 } },74595 .{ .type = .f80, .kind = .{ .reg = .st6 } },
69395 .{ .type = .f80, .kind = .{ .reg = .st7 } },74596 .{ .type = .f80, .kind = .{ .reg = .st7 } },
69396 .{ .type = .u8, .kind = .{ .reg = .ah } },74597 .{ .type = .u16, .kind = .{ .reg = .ax } },
69397 .unused,74598 .unused,
69398 .unused,74599 .unused,
69399 .unused,74600 .unused,
...@@ -69410,8 +74611,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69410,8 +74611,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69410 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },74611 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
69411 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },74612 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },
69412 .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ },74613 .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ },
69413 .{ ._, ._, .xor, .tmp6b, .si(0b1_000_000), ._, ._ },74614 .{ ._, ._, .xor, .tmp6h, .si(0b1_000_000), ._, ._ },
69414 .{ ._, ._, .@"test", .tmp6b, .si(0b1_000_100), ._, ._ },74615 .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_100), ._, ._ },
69415 .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ },74616 .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ },
69416 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },74617 .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
69417 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },74618 .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
...@@ -74953,7 +80154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -74953,7 +80154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
74953 .extra_temps = .{80154 .extra_temps = .{
74954 .{ .type = .f64, .kind = .{ .reg = .st6 } },80155 .{ .type = .f64, .kind = .{ .reg = .st6 } },
74955 .{ .type = .f64, .kind = .{ .reg = .st7 } },80156 .{ .type = .f64, .kind = .{ .reg = .st7 } },
74956 .{ .type = .u8, .kind = .{ .reg = .ah } },80157 .{ .type = .u16, .kind = .{ .reg = .ax } },
74957 .unused,80158 .unused,
74958 .unused,80159 .unused,
74959 .unused,80160 .unused,
...@@ -74984,7 +80185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -74984,7 +80185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
74984 .extra_temps = .{80185 .extra_temps = .{
74985 .{ .type = .f64, .kind = .{ .reg = .st6 } },80186 .{ .type = .f64, .kind = .{ .reg = .st6 } },
74986 .{ .type = .f64, .kind = .{ .reg = .st7 } },80187 .{ .type = .f64, .kind = .{ .reg = .st7 } },
74987 .{ .type = .u8, .kind = .{ .reg = .ah } },80188 .{ .type = .u16, .kind = .{ .reg = .ax } },
74988 .unused,80189 .unused,
74989 .unused,80190 .unused,
74990 .unused,80191 .unused,
...@@ -75005,8 +80206,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75005,8 +80206,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75005 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },80206 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },
75006 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80207 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75007 switch (strict) {80208 switch (strict) {
75008 true => .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_001), ._, ._ },80209 true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ },
75009 false => .{ ._, ._r, .sh, .tmp2b, .ui(1), ._, ._ },80210 false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ },
75010 },80211 },
75011 } },80212 } },
75012 }, .{80213 }, .{
...@@ -75047,7 +80248,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75047,7 +80248,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75047 .extra_temps = .{80248 .extra_temps = .{
75048 .{ .type = .f80, .kind = .{ .reg = .st6 } },80249 .{ .type = .f80, .kind = .{ .reg = .st6 } },
75049 .{ .type = .f80, .kind = .{ .reg = .st7 } },80250 .{ .type = .f80, .kind = .{ .reg = .st7 } },
75050 .{ .type = .u8, .kind = .{ .reg = .ah } },80251 .{ .type = .u16, .kind = .{ .reg = .ax } },
75051 .unused,80252 .unused,
75052 .unused,80253 .unused,
75053 .unused,80254 .unused,
...@@ -75079,7 +80280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75079,7 +80280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75079 .extra_temps = .{80280 .extra_temps = .{
75080 .{ .type = .f80, .kind = .{ .reg = .st6 } },80281 .{ .type = .f80, .kind = .{ .reg = .st6 } },
75081 .{ .type = .f80, .kind = .{ .reg = .st7 } },80282 .{ .type = .f80, .kind = .{ .reg = .st7 } },
75082 .{ .type = .u8, .kind = .{ .reg = .ah } },80283 .{ .type = .u16, .kind = .{ .reg = .ax } },
75083 .unused,80284 .unused,
75084 .unused,80285 .unused,
75085 .unused,80286 .unused,
...@@ -75109,7 +80310,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75109,7 +80310,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75109 .extra_temps = .{80310 .extra_temps = .{
75110 .{ .type = .f80, .kind = .{ .reg = .st6 } },80311 .{ .type = .f80, .kind = .{ .reg = .st6 } },
75111 .{ .type = .f80, .kind = .{ .reg = .st7 } },80312 .{ .type = .f80, .kind = .{ .reg = .st7 } },
75112 .{ .type = .u8, .kind = .{ .reg = .ah } },80313 .{ .type = .u16, .kind = .{ .reg = .ax } },
75113 .unused,80314 .unused,
75114 .unused,80315 .unused,
75115 .unused,80316 .unused,
...@@ -75130,8 +80331,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75130,8 +80331,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75130 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },80331 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },
75131 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80332 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75132 switch (strict) {80333 switch (strict) {
75133 true => .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_001), ._, ._ },80334 true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ },
75134 false => .{ ._, ._r, .sh, .tmp2b, .ui(1), ._, ._ },80335 false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ },
75135 },80336 },
75136 } },80337 } },
75137 }, .{80338 }, .{
...@@ -75144,7 +80345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75144,7 +80345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75144 .extra_temps = .{80345 .extra_temps = .{
75145 .{ .type = .f80, .kind = .{ .reg = .st6 } },80346 .{ .type = .f80, .kind = .{ .reg = .st6 } },
75146 .{ .type = .f80, .kind = .{ .reg = .st7 } },80347 .{ .type = .f80, .kind = .{ .reg = .st7 } },
75147 .{ .type = .u8, .kind = .{ .reg = .ah } },80348 .{ .type = .u16, .kind = .{ .reg = .ax } },
75148 .unused,80349 .unused,
75149 .unused,80350 .unused,
75150 .unused,80351 .unused,
...@@ -75164,8 +80365,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75164,8 +80365,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75164 .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ },80365 .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ },
75165 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80366 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75166 switch (strict) {80367 switch (strict) {
75167 true => .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_001), ._, ._ },80368 true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ },
75168 false => .{ ._, ._r, .sh, .tmp2b, .ui(1), ._, ._ },80369 false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ },
75169 },80370 },
75170 } },80371 } },
75171 }, .{80372 }, .{
...@@ -75458,7 +80659,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75458,7 +80659,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75458 .extra_temps = .{80659 .extra_temps = .{
75459 .{ .type = .f64, .kind = .{ .reg = .st6 } },80660 .{ .type = .f64, .kind = .{ .reg = .st6 } },
75460 .{ .type = .f64, .kind = .{ .reg = .st7 } },80661 .{ .type = .f64, .kind = .{ .reg = .st7 } },
75461 .{ .type = .u8, .kind = .{ .reg = .ah } },80662 .{ .type = .u16, .kind = .{ .reg = .ax } },
75462 .unused,80663 .unused,
75463 .unused,80664 .unused,
75464 .unused,80665 .unused,
...@@ -75489,7 +80690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75489,7 +80690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75489 .extra_temps = .{80690 .extra_temps = .{
75490 .{ .type = .f64, .kind = .{ .reg = .st6 } },80691 .{ .type = .f64, .kind = .{ .reg = .st6 } },
75491 .{ .type = .f64, .kind = .{ .reg = .st7 } },80692 .{ .type = .f64, .kind = .{ .reg = .st7 } },
75492 .{ .type = .u8, .kind = .{ .reg = .ah } },80693 .{ .type = .u16, .kind = .{ .reg = .ax } },
75493 .unused,80694 .unused,
75494 .unused,80695 .unused,
75495 .unused,80696 .unused,
...@@ -75510,15 +80711,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75510,15 +80711,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75510 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },80711 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
75511 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },80712 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },
75512 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80713 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75513 .{ ._, ._, .xor, .tmp2b, .si(0b1_000_000), ._, ._ },80714 .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ },
75514 .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_100), ._, ._ },80715 .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ },
75515 },80716 },
75516 true => &.{80717 true => &.{
75517 .{ ._, .f_, .ld, .src1q, ._, ._, ._ },80718 .{ ._, .f_, .ld, .src1q, ._, ._, ._ },
75518 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },80719 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
75519 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },80720 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },
75520 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80721 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75521 .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_000), ._, ._ },80722 .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ },
75522 },80723 },
75523 } },80724 } },
75524 }, .{80725 }, .{
...@@ -75560,7 +80761,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75560,7 +80761,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75560 .extra_temps = .{80761 .extra_temps = .{
75561 .{ .type = .f80, .kind = .{ .reg = .st6 } },80762 .{ .type = .f80, .kind = .{ .reg = .st6 } },
75562 .{ .type = .f80, .kind = .{ .reg = .st7 } },80763 .{ .type = .f80, .kind = .{ .reg = .st7 } },
75563 .{ .type = .u8, .kind = .{ .reg = .ah } },80764 .{ .type = .u16, .kind = .{ .reg = .ax } },
75564 .unused,80765 .unused,
75565 .unused,80766 .unused,
75566 .unused,80767 .unused,
...@@ -75593,7 +80794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75593,7 +80794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75593 .extra_temps = .{80794 .extra_temps = .{
75594 .{ .type = .f80, .kind = .{ .reg = .st6 } },80795 .{ .type = .f80, .kind = .{ .reg = .st6 } },
75595 .{ .type = .f80, .kind = .{ .reg = .st7 } },80796 .{ .type = .f80, .kind = .{ .reg = .st7 } },
75596 .{ .type = .u8, .kind = .{ .reg = .ah } },80797 .{ .type = .u16, .kind = .{ .reg = .ax } },
75597 .unused,80798 .unused,
75598 .unused,80799 .unused,
75599 .unused,80800 .unused,
...@@ -75623,7 +80824,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75623,7 +80824,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75623 .extra_temps = .{80824 .extra_temps = .{
75624 .{ .type = .f80, .kind = .{ .reg = .st6 } },80825 .{ .type = .f80, .kind = .{ .reg = .st6 } },
75625 .{ .type = .f80, .kind = .{ .reg = .st7 } },80826 .{ .type = .f80, .kind = .{ .reg = .st7 } },
75626 .{ .type = .u8, .kind = .{ .reg = .ah } },80827 .{ .type = .u16, .kind = .{ .reg = .ax } },
75627 .unused,80828 .unused,
75628 .unused,80829 .unused,
75629 .unused,80830 .unused,
...@@ -75644,15 +80845,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75644,15 +80845,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75644 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },80845 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
75645 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },80846 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },
75646 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80847 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75647 .{ ._, ._, .xor, .tmp2b, .si(0b1_000_000), ._, ._ },80848 .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ },
75648 .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_100), ._, ._ },80849 .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ },
75649 },80850 },
75650 true => &.{80851 true => &.{
75651 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },80852 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
75652 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },80853 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
75653 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },80854 .{ ._, .f_pp, .ucom, ._, ._, ._, ._ },
75654 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80855 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75655 .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_000), ._, ._ },80856 .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ },
75656 },80857 },
75657 } },80858 } },
75658 }, .{80859 }, .{
...@@ -75666,7 +80867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75666,7 +80867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75666 .extra_temps = .{80867 .extra_temps = .{
75667 .{ .type = .f80, .kind = .{ .reg = .st6 } },80868 .{ .type = .f80, .kind = .{ .reg = .st6 } },
75668 .{ .type = .f80, .kind = .{ .reg = .st7 } },80869 .{ .type = .f80, .kind = .{ .reg = .st7 } },
75669 .{ .type = .u8, .kind = .{ .reg = .ah } },80870 .{ .type = .u16, .kind = .{ .reg = .ax } },
75670 .unused,80871 .unused,
75671 .unused,80872 .unused,
75672 .unused,80873 .unused,
...@@ -75686,14 +80887,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -75686,14 +80887,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
75686 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },80887 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
75687 .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ },80888 .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ },
75688 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80889 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75689 .{ ._, ._, .xor, .tmp2b, .si(0b1_000_000), ._, ._ },80890 .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ },
75690 .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_100), ._, ._ },80891 .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ },
75691 },80892 },
75692 true => &.{80893 true => &.{
75693 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },80894 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
75694 .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ },80895 .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ },
75695 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },80896 .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ },
75696 .{ ._, ._, .@"test", .tmp2b, .si(0b1_000_000), ._, ._ },80897 .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ },
75697 },80898 },
75698 } },80899 } },
75699 }, .{80900 }, .{
...@@ -83848,7 +89049,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -83848,7 +89049,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
83848 }, .{89049 }, .{
83849 .required_features = .{ .@"64bit", null, null, null },89050 .required_features = .{ .@"64bit", null, null, null },
83850 .src_constraints = .{ .any_int, .any, .any },89051 .src_constraints = .{ .any_int, .any, .any },
83851 .dst_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any },89052 .dst_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any },
83852 .patterns = &.{89053 .patterns = &.{
83853 .{ .src = .{ .to_mem, .none, .none } },89054 .{ .src = .{ .to_mem, .none, .none } },
83854 },89055 },
...@@ -83875,7 +89076,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -83875,7 +89076,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
83875 }, .{89076 }, .{
83876 .required_features = .{ .@"64bit", null, null, null },89077 .required_features = .{ .@"64bit", null, null, null },
83877 .src_constraints = .{ .any_signed_int, .any, .any },89078 .src_constraints = .{ .any_signed_int, .any, .any },
83878 .dst_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any },89079 .dst_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any },
83879 .patterns = &.{89080 .patterns = &.{
83880 .{ .src = .{ .to_mem, .none, .none } },89081 .{ .src = .{ .to_mem, .none, .none } },
83881 },89082 },
...@@ -83973,7 +89174,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -83973,7 +89174,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
83973 }, .{89174 }, .{
83974 .required_features = .{ .@"64bit", null, null, null },89175 .required_features = .{ .@"64bit", null, null, null },
83975 .src_constraints = .{ .any_unsigned_int, .any, .any },89176 .src_constraints = .{ .any_unsigned_int, .any, .any },
83976 .dst_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any },89177 .dst_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any },
83977 .patterns = &.{89178 .patterns = &.{
83978 .{ .src = .{ .to_mem, .none, .none } },89179 .{ .src = .{ .to_mem, .none, .none } },
83979 },89180 },
...@@ -110484,7 +115685,8 @@ fn regClassForType(self: *CodeGen, ty: Type) Register.Class {...@@ -110484,7 +115685,8 @@ fn regClassForType(self: *CodeGen, ty: Type) Register.Class {
110484fn regSetForRegClass(rc: Register.Class) RegisterManager.RegisterBitSet {115685fn regSetForRegClass(rc: Register.Class) RegisterManager.RegisterBitSet {
110485 return switch (rc) {115686 return switch (rc) {
110486 .general_purpose => abi.RegisterClass.gp,115687 .general_purpose => abi.RegisterClass.gp,
110487 .gphi, .segment, .ip, .cr, .dr => unreachable,115688 .gphi => abi.RegisterClass.gphi,
115689 .segment, .ip, .cr, .dr => unreachable,
110488 .x87 => abi.RegisterClass.x87,115690 .x87 => abi.RegisterClass.x87,
110489 .mmx => @panic("TODO"),115691 .mmx => @panic("TODO"),
110490 .sse => abi.RegisterClass.sse,115692 .sse => abi.RegisterClass.sse,
...@@ -122498,10 +127700,7 @@ fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -122498,10 +127700,7 @@ fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void {
122498 else127700 else
122499 return self.fail("invalid modifier: '{s}'", .{modifier}),127701 return self.fail("invalid modifier: '{s}'", .{modifier}),
122500 .register => |reg| if (std.mem.eql(u8, modifier, ""))127702 .register => |reg| if (std.mem.eql(u8, modifier, ""))
122501 .{ .reg = if (mnem_size.use()) |size|127703 .{ .reg = if (mnem_size.use()) |size| reg.toSize(size, self.target) else reg }
122502 registerAlias(reg, @intCast(@divExact(size.bitSize(self.target), 8)))
122503 else
122504 reg }
122505 else127704 else
122506 return self.fail("invalid modifier: '{s}'", .{modifier}),127705 return self.fail("invalid modifier: '{s}'", .{modifier}),
122507 .memory => |addr| if (std.mem.eql(u8, modifier, "") or std.mem.eql(u8, modifier, "P"))127706 .memory => |addr| if (std.mem.eql(u8, modifier, "") or std.mem.eql(u8, modifier, "P"))
...@@ -122887,11 +128086,7 @@ const MoveStrategy = union(enum) {...@@ -122887,11 +128086,7 @@ const MoveStrategy = union(enum) {
122887 .move_through_gpr => {128086 .move_through_gpr => {
122888 const tmp_reg = try cg.register_manager.allocReg(null, abi.RegisterClass.gp);128087 const tmp_reg = try cg.register_manager.allocReg(null, abi.RegisterClass.gp);
122889 try cg.asmRegisterRegister(.{ ._d, .mov }, tmp_reg.to32(), src_reg.to128());128088 try cg.asmRegisterRegister(.{ ._d, .mov }, tmp_reg.to32(), src_reg.to128());
122890 try cg.asmMemoryRegister(128089 try cg.asmMemoryRegister(.{ ._, .mov }, dst_mem, tmp_reg.toSize(dst_mem.mod.rm.size, cg.target));
122891 .{ ._, .mov },
122892 dst_mem,
122893 registerAlias(tmp_reg, @intCast(@divExact(dst_mem.mod.rm.size.bitSize(cg.target), 8))),
122894 );
122895 },128090 },
122896 .load_store_through_frame => {128091 .load_store_through_frame => {
122897 const tmp_frame_index = try cg.allocFrameIndex(.init(.{128092 const tmp_frame_index = try cg.allocFrameIndex(.init(.{
...@@ -129941,7 +135136,7 @@ const Temp = struct {...@@ -129941,7 +135136,7 @@ const Temp = struct {
129941 .{ ._, ._, .@"and", .dst0q, .tmp0q, ._, ._ },135136 .{ ._, ._, .@"and", .dst0q, .tmp0q, ._, ._ },
129942 } },135137 } },
129943 }, .{135138 }, .{
129944 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },135139 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },
129945 .patterns = &.{135140 .patterns = &.{
129946 .{ .src = .{ .mut_mem, .none, .none } },135141 .{ .src = .{ .mut_mem, .none, .none } },
129947 },135142 },
...@@ -129949,7 +135144,7 @@ const Temp = struct {...@@ -129949,7 +135144,7 @@ const Temp = struct {
129949 .each = .{ .once = &.{} },135144 .each = .{ .once = &.{} },
129950 }, .{135145 }, .{
129951 .required_features = .{ .@"64bit", null, null, null },135146 .required_features = .{ .@"64bit", null, null, null },
129952 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },135147 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any, .any },
129953 .patterns = &.{135148 .patterns = &.{
129954 .{ .src = .{ .mut_mem, .none, .none } },135149 .{ .src = .{ .mut_mem, .none, .none } },
129955 },135150 },
...@@ -129975,7 +135170,7 @@ const Temp = struct {...@@ -129975,7 +135170,7 @@ const Temp = struct {
129975 } },135170 } },
129976 }, .{135171 }, .{
129977 .required_features = .{ .@"64bit", null, null, null },135172 .required_features = .{ .@"64bit", null, null, null },
129978 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },135173 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any, .any },
129979 .patterns = &.{135174 .patterns = &.{
129980 .{ .src = .{ .mut_mem, .none, .none } },135175 .{ .src = .{ .mut_mem, .none, .none } },
129981 },135176 },
...@@ -132752,7 +137947,7 @@ const Temp = struct {...@@ -132752,7 +137947,7 @@ const Temp = struct {
132752 .{ ._, .p_, .xor, .src0x, .src1x, ._, ._ },137947 .{ ._, .p_, .xor, .src0x, .src1x, ._, ._ },
132753 .{ ._, .p_b, .cmpeq, .tmp1x, .src0x, ._, ._ },137948 .{ ._, .p_b, .cmpeq, .tmp1x, .src0x, ._, ._ },
132754 .{ ._, .p_b, .movmsk, .tmp0d, .tmp1x, ._, ._ },137949 .{ ._, .p_b, .movmsk, .tmp0d, .tmp1x, ._, ._ },
132755 .{ ._, ._, .xor, .tmp0d, .si(0xffff), ._, ._ },137950 .{ ._, ._, .xor, .tmp0d, .si(std.math.maxInt(u16)), ._, ._ },
132756 } },137951 } },
132757 }, .{137952 }, .{
132758 .required_features = .{ .avx2, null, null, null },137953 .required_features = .{ .avx2, null, null, null },
...@@ -133083,7 +138278,7 @@ const Temp = struct {...@@ -133083,7 +138278,7 @@ const Temp = struct {
133083 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },138278 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
133084 .{ ._, .p_b, .cmpeq, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },138279 .{ ._, .p_b, .cmpeq, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
133085 .{ ._, .p_b, .movmsk, .tmp2d, .tmp1x, ._, ._ },138280 .{ ._, .p_b, .movmsk, .tmp2d, .tmp1x, ._, ._ },
133086 .{ ._, ._, .xor, .tmp2d, .ui(0xffff), ._, ._ },138281 .{ ._, ._, .xor, .tmp2d, .si(std.math.maxInt(u16)), ._, ._ },
133087 .{ ._, ._nz, .j, .@"0f", ._, ._, ._ },138282 .{ ._, ._nz, .j, .@"0f", ._, ._, ._ },
133088 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },138283 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
133089 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },138284 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
...@@ -134513,9 +139708,9 @@ const Select = struct {...@@ -134513,9 +139708,9 @@ const Select = struct {
134513 remainder_int: OfIsSizes,139708 remainder_int: OfIsSizes,
134514 remainder_signed_int: OfIsSizes,139709 remainder_signed_int: OfIsSizes,
134515 remainder_unsigned_int: OfIsSizes,139710 remainder_unsigned_int: OfIsSizes,
134516 exact_remainder_int: OfIsSizes,139711 exact_remainder_int: struct { of: Memory.Size, is: u16 },
134517 exact_remainder_signed_int: OfIsSizes,139712 exact_remainder_signed_int: struct { of: Memory.Size, is: u16 },
134518 exact_remainder_unsigned_int: OfIsSizes,139713 exact_remainder_unsigned_int: struct { of: Memory.Size, is: u16 },
134519 signed_or_exact_remainder_int: OfIsSizes,139714 signed_or_exact_remainder_int: OfIsSizes,
134520 unsigned_or_exact_remainder_int: OfIsSizes,139715 unsigned_or_exact_remainder_int: OfIsSizes,
134521 signed_int: Memory.Size,139716 signed_int: Memory.Size,
...@@ -134676,13 +139871,13 @@ const Select = struct {...@@ -134676,13 +139871,13 @@ const Select = struct {
134676 .remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and139871 .remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and
134677 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,139872 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
134678 .exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info|139873 .exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info|
134679 of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1139874 of_is.is == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1
134680 else139875 else
134681 false,139876 false,
134682 .exact_remainder_signed_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and139877 .exact_remainder_signed_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and
134683 of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,139878 of_is.is == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
134684 .exact_remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and139879 .exact_remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and
134685 of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,139880 of_is.is == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
134686 .signed_or_exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {139881 .signed_or_exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {
134687 .signed => of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,139882 .signed => of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,
134688 .unsigned => of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,139883 .unsigned => of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,
...@@ -135431,11 +140626,12 @@ const Select = struct {...@@ -135431,11 +140626,12 @@ const Select = struct {
135431 const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" };140626 const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" };
135432 const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" };140627 const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" };
135433 const add_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"1" };140628 const add_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"1" };
140629 const add_2_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"2" };
135434 const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" };140630 const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" };
135435 const add_smax: Adjust = .{ .sign = .pos, .lhs = .smax, .op = .mul, .rhs = .@"1" };140631 const add_smax: Adjust = .{ .sign = .pos, .lhs = .smax, .op = .mul, .rhs = .@"1" };
135436 const add_umax: Adjust = .{ .sign = .pos, .lhs = .umax, .op = .mul, .rhs = .@"1" };140632 const add_umax: Adjust = .{ .sign = .pos, .lhs = .umax, .op = .mul, .rhs = .@"1" };
135437 const sub_umax: Adjust = .{ .sign = .neg, .lhs = .umax, .op = .mul, .rhs = .@"1" };
135438 const add_umax_shr_src1: Adjust = .{ .sign = .pos, .lhs = .umax_shr_src1, .op = .mul, .rhs = .@"1" };140633 const add_umax_shr_src1: Adjust = .{ .sign = .pos, .lhs = .umax_shr_src1, .op = .mul, .rhs = .@"1" };
140634 const sub_umax: Adjust = .{ .sign = .neg, .lhs = .umax, .op = .mul, .rhs = .@"1" };
135439 const repeat: Adjust = .{ .sign = .pos, .lhs = .repeat, .op = .mul, .rhs = .@"1" };140635 const repeat: Adjust = .{ .sign = .pos, .lhs = .repeat, .op = .mul, .rhs = .@"1" };
135440 };140636 };
135441 const Ref = enum(u5) {140637 const Ref = enum(u5) {
...@@ -135464,6 +140660,8 @@ const Select = struct {...@@ -135464,6 +140660,8 @@ const Select = struct {
135464 const none: Sized = .{ .ref = .none, .size = .none };140660 const none: Sized = .{ .ref = .none, .size = .none };
135465140661
135466 const tmp0: Sized = .{ .ref = .tmp0, .size = .none };140662 const tmp0: Sized = .{ .ref = .tmp0, .size = .none };
140663 const tmp0l: Sized = .{ .ref = .tmp0, .size = .low_byte };
140664 const tmp0h: Sized = .{ .ref = .tmp0, .size = .high_byte };
135467 const tmp0b: Sized = .{ .ref = .tmp0, .size = .byte };140665 const tmp0b: Sized = .{ .ref = .tmp0, .size = .byte };
135468 const tmp0w: Sized = .{ .ref = .tmp0, .size = .word };140666 const tmp0w: Sized = .{ .ref = .tmp0, .size = .word };
135469 const tmp0d: Sized = .{ .ref = .tmp0, .size = .dword };140667 const tmp0d: Sized = .{ .ref = .tmp0, .size = .dword };
...@@ -135475,6 +140673,8 @@ const Select = struct {...@@ -135475,6 +140673,8 @@ const Select = struct {
135475 const tmp0y: Sized = .{ .ref = .tmp0, .size = .yword };140673 const tmp0y: Sized = .{ .ref = .tmp0, .size = .yword };
135476140674
135477 const tmp1: Sized = .{ .ref = .tmp1, .size = .none };140675 const tmp1: Sized = .{ .ref = .tmp1, .size = .none };
140676 const tmp1l: Sized = .{ .ref = .tmp1, .size = .low_byte };
140677 const tmp1h: Sized = .{ .ref = .tmp1, .size = .high_byte };
135478 const tmp1b: Sized = .{ .ref = .tmp1, .size = .byte };140678 const tmp1b: Sized = .{ .ref = .tmp1, .size = .byte };
135479 const tmp1w: Sized = .{ .ref = .tmp1, .size = .word };140679 const tmp1w: Sized = .{ .ref = .tmp1, .size = .word };
135480 const tmp1d: Sized = .{ .ref = .tmp1, .size = .dword };140680 const tmp1d: Sized = .{ .ref = .tmp1, .size = .dword };
...@@ -135486,6 +140686,8 @@ const Select = struct {...@@ -135486,6 +140686,8 @@ const Select = struct {
135486 const tmp1y: Sized = .{ .ref = .tmp1, .size = .yword };140686 const tmp1y: Sized = .{ .ref = .tmp1, .size = .yword };
135487140687
135488 const tmp2: Sized = .{ .ref = .tmp2, .size = .none };140688 const tmp2: Sized = .{ .ref = .tmp2, .size = .none };
140689 const tmp2l: Sized = .{ .ref = .tmp2, .size = .low_byte };
140690 const tmp2h: Sized = .{ .ref = .tmp2, .size = .high_byte };
135489 const tmp2b: Sized = .{ .ref = .tmp2, .size = .byte };140691 const tmp2b: Sized = .{ .ref = .tmp2, .size = .byte };
135490 const tmp2w: Sized = .{ .ref = .tmp2, .size = .word };140692 const tmp2w: Sized = .{ .ref = .tmp2, .size = .word };
135491 const tmp2d: Sized = .{ .ref = .tmp2, .size = .dword };140693 const tmp2d: Sized = .{ .ref = .tmp2, .size = .dword };
...@@ -135497,6 +140699,8 @@ const Select = struct {...@@ -135497,6 +140699,8 @@ const Select = struct {
135497 const tmp2y: Sized = .{ .ref = .tmp2, .size = .yword };140699 const tmp2y: Sized = .{ .ref = .tmp2, .size = .yword };
135498140700
135499 const tmp3: Sized = .{ .ref = .tmp3, .size = .none };140701 const tmp3: Sized = .{ .ref = .tmp3, .size = .none };
140702 const tmp3l: Sized = .{ .ref = .tmp3, .size = .low_byte };
140703 const tmp3h: Sized = .{ .ref = .tmp3, .size = .high_byte };
135500 const tmp3b: Sized = .{ .ref = .tmp3, .size = .byte };140704 const tmp3b: Sized = .{ .ref = .tmp3, .size = .byte };
135501 const tmp3w: Sized = .{ .ref = .tmp3, .size = .word };140705 const tmp3w: Sized = .{ .ref = .tmp3, .size = .word };
135502 const tmp3d: Sized = .{ .ref = .tmp3, .size = .dword };140706 const tmp3d: Sized = .{ .ref = .tmp3, .size = .dword };
...@@ -135508,6 +140712,8 @@ const Select = struct {...@@ -135508,6 +140712,8 @@ const Select = struct {
135508 const tmp3y: Sized = .{ .ref = .tmp3, .size = .yword };140712 const tmp3y: Sized = .{ .ref = .tmp3, .size = .yword };
135509140713
135510 const tmp4: Sized = .{ .ref = .tmp4, .size = .none };140714 const tmp4: Sized = .{ .ref = .tmp4, .size = .none };
140715 const tmp4l: Sized = .{ .ref = .tmp4, .size = .low_byte };
140716 const tmp4h: Sized = .{ .ref = .tmp4, .size = .high_byte };
135511 const tmp4b: Sized = .{ .ref = .tmp4, .size = .byte };140717 const tmp4b: Sized = .{ .ref = .tmp4, .size = .byte };
135512 const tmp4w: Sized = .{ .ref = .tmp4, .size = .word };140718 const tmp4w: Sized = .{ .ref = .tmp4, .size = .word };
135513 const tmp4d: Sized = .{ .ref = .tmp4, .size = .dword };140719 const tmp4d: Sized = .{ .ref = .tmp4, .size = .dword };
...@@ -135519,6 +140725,8 @@ const Select = struct {...@@ -135519,6 +140725,8 @@ const Select = struct {
135519 const tmp4y: Sized = .{ .ref = .tmp4, .size = .yword };140725 const tmp4y: Sized = .{ .ref = .tmp4, .size = .yword };
135520140726
135521 const tmp5: Sized = .{ .ref = .tmp5, .size = .none };140727 const tmp5: Sized = .{ .ref = .tmp5, .size = .none };
140728 const tmp5l: Sized = .{ .ref = .tmp5, .size = .low_byte };
140729 const tmp5h: Sized = .{ .ref = .tmp5, .size = .high_byte };
135522 const tmp5b: Sized = .{ .ref = .tmp5, .size = .byte };140730 const tmp5b: Sized = .{ .ref = .tmp5, .size = .byte };
135523 const tmp5w: Sized = .{ .ref = .tmp5, .size = .word };140731 const tmp5w: Sized = .{ .ref = .tmp5, .size = .word };
135524 const tmp5d: Sized = .{ .ref = .tmp5, .size = .dword };140732 const tmp5d: Sized = .{ .ref = .tmp5, .size = .dword };
...@@ -135530,6 +140738,8 @@ const Select = struct {...@@ -135530,6 +140738,8 @@ const Select = struct {
135530 const tmp5y: Sized = .{ .ref = .tmp5, .size = .yword };140738 const tmp5y: Sized = .{ .ref = .tmp5, .size = .yword };
135531140739
135532 const tmp6: Sized = .{ .ref = .tmp6, .size = .none };140740 const tmp6: Sized = .{ .ref = .tmp6, .size = .none };
140741 const tmp6l: Sized = .{ .ref = .tmp6, .size = .low_byte };
140742 const tmp6h: Sized = .{ .ref = .tmp6, .size = .high_byte };
135533 const tmp6b: Sized = .{ .ref = .tmp6, .size = .byte };140743 const tmp6b: Sized = .{ .ref = .tmp6, .size = .byte };
135534 const tmp6w: Sized = .{ .ref = .tmp6, .size = .word };140744 const tmp6w: Sized = .{ .ref = .tmp6, .size = .word };
135535 const tmp6d: Sized = .{ .ref = .tmp6, .size = .dword };140745 const tmp6d: Sized = .{ .ref = .tmp6, .size = .dword };
...@@ -135541,6 +140751,8 @@ const Select = struct {...@@ -135541,6 +140751,8 @@ const Select = struct {
135541 const tmp6y: Sized = .{ .ref = .tmp6, .size = .yword };140751 const tmp6y: Sized = .{ .ref = .tmp6, .size = .yword };
135542140752
135543 const tmp7: Sized = .{ .ref = .tmp7, .size = .none };140753 const tmp7: Sized = .{ .ref = .tmp7, .size = .none };
140754 const tmp7l: Sized = .{ .ref = .tmp7, .size = .low_byte };
140755 const tmp7h: Sized = .{ .ref = .tmp7, .size = .high_byte };
135544 const tmp7b: Sized = .{ .ref = .tmp7, .size = .byte };140756 const tmp7b: Sized = .{ .ref = .tmp7, .size = .byte };
135545 const tmp7w: Sized = .{ .ref = .tmp7, .size = .word };140757 const tmp7w: Sized = .{ .ref = .tmp7, .size = .word };
135546 const tmp7d: Sized = .{ .ref = .tmp7, .size = .dword };140758 const tmp7d: Sized = .{ .ref = .tmp7, .size = .dword };
...@@ -135552,6 +140764,8 @@ const Select = struct {...@@ -135552,6 +140764,8 @@ const Select = struct {
135552 const tmp7y: Sized = .{ .ref = .tmp7, .size = .yword };140764 const tmp7y: Sized = .{ .ref = .tmp7, .size = .yword };
135553140765
135554 const tmp8: Sized = .{ .ref = .tmp8, .size = .none };140766 const tmp8: Sized = .{ .ref = .tmp8, .size = .none };
140767 const tmp8l: Sized = .{ .ref = .tmp8, .size = .low_byte };
140768 const tmp8h: Sized = .{ .ref = .tmp8, .size = .high_byte };
135555 const tmp8b: Sized = .{ .ref = .tmp8, .size = .byte };140769 const tmp8b: Sized = .{ .ref = .tmp8, .size = .byte };
135556 const tmp8w: Sized = .{ .ref = .tmp8, .size = .word };140770 const tmp8w: Sized = .{ .ref = .tmp8, .size = .word };
135557 const tmp8d: Sized = .{ .ref = .tmp8, .size = .dword };140771 const tmp8d: Sized = .{ .ref = .tmp8, .size = .dword };
...@@ -135563,6 +140777,8 @@ const Select = struct {...@@ -135563,6 +140777,8 @@ const Select = struct {
135563 const tmp8y: Sized = .{ .ref = .tmp8, .size = .yword };140777 const tmp8y: Sized = .{ .ref = .tmp8, .size = .yword };
135564140778
135565 const tmp9: Sized = .{ .ref = .tmp9, .size = .none };140779 const tmp9: Sized = .{ .ref = .tmp9, .size = .none };
140780 const tmp9l: Sized = .{ .ref = .tmp9, .size = .low_byte };
140781 const tmp9h: Sized = .{ .ref = .tmp9, .size = .high_byte };
135566 const tmp9b: Sized = .{ .ref = .tmp9, .size = .byte };140782 const tmp9b: Sized = .{ .ref = .tmp9, .size = .byte };
135567 const tmp9w: Sized = .{ .ref = .tmp9, .size = .word };140783 const tmp9w: Sized = .{ .ref = .tmp9, .size = .word };
135568 const tmp9d: Sized = .{ .ref = .tmp9, .size = .dword };140784 const tmp9d: Sized = .{ .ref = .tmp9, .size = .dword };
...@@ -135574,6 +140790,8 @@ const Select = struct {...@@ -135574,6 +140790,8 @@ const Select = struct {
135574 const tmp9y: Sized = .{ .ref = .tmp9, .size = .yword };140790 const tmp9y: Sized = .{ .ref = .tmp9, .size = .yword };
135575140791
135576 const tmp10: Sized = .{ .ref = .tmp10, .size = .none };140792 const tmp10: Sized = .{ .ref = .tmp10, .size = .none };
140793 const tmp10l: Sized = .{ .ref = .tmp10, .size = .low_byte };
140794 const tmp10h: Sized = .{ .ref = .tmp10, .size = .high_byte };
135577 const tmp10b: Sized = .{ .ref = .tmp10, .size = .byte };140795 const tmp10b: Sized = .{ .ref = .tmp10, .size = .byte };
135578 const tmp10w: Sized = .{ .ref = .tmp10, .size = .word };140796 const tmp10w: Sized = .{ .ref = .tmp10, .size = .word };
135579 const tmp10d: Sized = .{ .ref = .tmp10, .size = .dword };140797 const tmp10d: Sized = .{ .ref = .tmp10, .size = .dword };
...@@ -135585,6 +140803,8 @@ const Select = struct {...@@ -135585,6 +140803,8 @@ const Select = struct {
135585 const tmp10y: Sized = .{ .ref = .tmp10, .size = .yword };140803 const tmp10y: Sized = .{ .ref = .tmp10, .size = .yword };
135586140804
135587 const dst0: Sized = .{ .ref = .dst0, .size = .none };140805 const dst0: Sized = .{ .ref = .dst0, .size = .none };
140806 const dst0l: Sized = .{ .ref = .dst0, .size = .low_byte };
140807 const dst0h: Sized = .{ .ref = .dst0, .size = .high_byte };
135588 const dst0b: Sized = .{ .ref = .dst0, .size = .byte };140808 const dst0b: Sized = .{ .ref = .dst0, .size = .byte };
135589 const dst0w: Sized = .{ .ref = .dst0, .size = .word };140809 const dst0w: Sized = .{ .ref = .dst0, .size = .word };
135590 const dst0d: Sized = .{ .ref = .dst0, .size = .dword };140810 const dst0d: Sized = .{ .ref = .dst0, .size = .dword };
...@@ -135596,6 +140816,8 @@ const Select = struct {...@@ -135596,6 +140816,8 @@ const Select = struct {
135596 const dst0y: Sized = .{ .ref = .dst0, .size = .yword };140816 const dst0y: Sized = .{ .ref = .dst0, .size = .yword };
135597140817
135598 const dst1: Sized = .{ .ref = .dst1, .size = .none };140818 const dst1: Sized = .{ .ref = .dst1, .size = .none };
140819 const dst1l: Sized = .{ .ref = .dst1, .size = .low_byte };
140820 const dst1h: Sized = .{ .ref = .dst1, .size = .high_byte };
135599 const dst1b: Sized = .{ .ref = .dst1, .size = .byte };140821 const dst1b: Sized = .{ .ref = .dst1, .size = .byte };
135600 const dst1w: Sized = .{ .ref = .dst1, .size = .word };140822 const dst1w: Sized = .{ .ref = .dst1, .size = .word };
135601 const dst1d: Sized = .{ .ref = .dst1, .size = .dword };140823 const dst1d: Sized = .{ .ref = .dst1, .size = .dword };
...@@ -135607,6 +140829,8 @@ const Select = struct {...@@ -135607,6 +140829,8 @@ const Select = struct {
135607 const dst1y: Sized = .{ .ref = .dst1, .size = .yword };140829 const dst1y: Sized = .{ .ref = .dst1, .size = .yword };
135608140830
135609 const src0: Sized = .{ .ref = .src0, .size = .none };140831 const src0: Sized = .{ .ref = .src0, .size = .none };
140832 const src0l: Sized = .{ .ref = .src0, .size = .low_byte };
140833 const src0h: Sized = .{ .ref = .src0, .size = .high_byte };
135610 const src0b: Sized = .{ .ref = .src0, .size = .byte };140834 const src0b: Sized = .{ .ref = .src0, .size = .byte };
135611 const src0w: Sized = .{ .ref = .src0, .size = .word };140835 const src0w: Sized = .{ .ref = .src0, .size = .word };
135612 const src0d: Sized = .{ .ref = .src0, .size = .dword };140836 const src0d: Sized = .{ .ref = .src0, .size = .dword };
...@@ -135618,6 +140842,8 @@ const Select = struct {...@@ -135618,6 +140842,8 @@ const Select = struct {
135618 const src0y: Sized = .{ .ref = .src0, .size = .yword };140842 const src0y: Sized = .{ .ref = .src0, .size = .yword };
135619140843
135620 const src1: Sized = .{ .ref = .src1, .size = .none };140844 const src1: Sized = .{ .ref = .src1, .size = .none };
140845 const src1l: Sized = .{ .ref = .src1, .size = .low_byte };
140846 const src1h: Sized = .{ .ref = .src1, .size = .high_byte };
135621 const src1b: Sized = .{ .ref = .src1, .size = .byte };140847 const src1b: Sized = .{ .ref = .src1, .size = .byte };
135622 const src1w: Sized = .{ .ref = .src1, .size = .word };140848 const src1w: Sized = .{ .ref = .src1, .size = .word };
135623 const src1d: Sized = .{ .ref = .src1, .size = .dword };140849 const src1d: Sized = .{ .ref = .src1, .size = .dword };
...@@ -135629,6 +140855,8 @@ const Select = struct {...@@ -135629,6 +140855,8 @@ const Select = struct {
135629 const src1y: Sized = .{ .ref = .src1, .size = .yword };140855 const src1y: Sized = .{ .ref = .src1, .size = .yword };
135630140856
135631 const src2: Sized = .{ .ref = .src2, .size = .none };140857 const src2: Sized = .{ .ref = .src2, .size = .none };
140858 const src2l: Sized = .{ .ref = .src2, .size = .low_byte };
140859 const src2h: Sized = .{ .ref = .src2, .size = .high_byte };
135632 const src2b: Sized = .{ .ref = .src2, .size = .byte };140860 const src2b: Sized = .{ .ref = .src2, .size = .byte };
135633 const src2w: Sized = .{ .ref = .src2, .size = .word };140861 const src2w: Sized = .{ .ref = .src2, .size = .word };
135634 const src2d: Sized = .{ .ref = .src2, .size = .dword };140862 const src2d: Sized = .{ .ref = .src2, .size = .dword };
...@@ -135669,6 +140897,8 @@ const Select = struct {...@@ -135669,6 +140897,8 @@ const Select = struct {
135669 const @"4b": Select.Operand = .{ .flags = .{ .tag = .backward_label, .base = .{ .ref = .tmp4, .size = .none } } };140897 const @"4b": Select.Operand = .{ .flags = .{ .tag = .backward_label, .base = .{ .ref = .tmp4, .size = .none } } };
135670 const @"4f": Select.Operand = .{ .flags = .{ .tag = .forward_label, .base = .{ .ref = .tmp4, .size = .none } } };140898 const @"4f": Select.Operand = .{ .flags = .{ .tag = .forward_label, .base = .{ .ref = .tmp4, .size = .none } } };
135671140899
140900 const tmp0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0l } };
140901 const tmp0h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0h } };
135672 const tmp0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0b } };140902 const tmp0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0b } };
135673 const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w } };140903 const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w } };
135674 const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d } };140904 const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d } };
...@@ -135679,6 +140909,8 @@ const Select = struct {...@@ -135679,6 +140909,8 @@ const Select = struct {
135679 const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0x } };140909 const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0x } };
135680 const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } };140910 const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } };
135681140911
140912 const tmp1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1l } };
140913 const tmp1h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1h } };
135682 const tmp1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1b } };140914 const tmp1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1b } };
135683 const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w } };140915 const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w } };
135684 const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d } };140916 const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d } };
...@@ -135689,6 +140921,8 @@ const Select = struct {...@@ -135689,6 +140921,8 @@ const Select = struct {
135689 const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1x } };140921 const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1x } };
135690 const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } };140922 const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } };
135691140923
140924 const tmp2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2l } };
140925 const tmp2h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2h } };
135692 const tmp2b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2b } };140926 const tmp2b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2b } };
135693 const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w } };140927 const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w } };
135694 const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d } };140928 const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d } };
...@@ -135699,6 +140933,8 @@ const Select = struct {...@@ -135699,6 +140933,8 @@ const Select = struct {
135699 const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2x } };140933 const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2x } };
135700 const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } };140934 const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } };
135701140935
140936 const tmp3l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3l } };
140937 const tmp3h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3h } };
135702 const tmp3b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3b } };140938 const tmp3b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3b } };
135703 const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w } };140939 const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w } };
135704 const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d } };140940 const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d } };
...@@ -135709,6 +140945,8 @@ const Select = struct {...@@ -135709,6 +140945,8 @@ const Select = struct {
135709 const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3x } };140945 const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3x } };
135710 const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } };140946 const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } };
135711140947
140948 const tmp4l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4l } };
140949 const tmp4h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4h } };
135712 const tmp4b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4b } };140950 const tmp4b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4b } };
135713 const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w } };140951 const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w } };
135714 const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d } };140952 const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d } };
...@@ -135719,6 +140957,8 @@ const Select = struct {...@@ -135719,6 +140957,8 @@ const Select = struct {
135719 const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4x } };140957 const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4x } };
135720 const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } };140958 const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } };
135721140959
140960 const tmp5l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5l } };
140961 const tmp5h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5h } };
135722 const tmp5b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5b } };140962 const tmp5b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5b } };
135723 const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w } };140963 const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w } };
135724 const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d } };140964 const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d } };
...@@ -135729,6 +140969,8 @@ const Select = struct {...@@ -135729,6 +140969,8 @@ const Select = struct {
135729 const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5x } };140969 const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5x } };
135730 const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } };140970 const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } };
135731140971
140972 const tmp6l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6l } };
140973 const tmp6h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6h } };
135732 const tmp6b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6b } };140974 const tmp6b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6b } };
135733 const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w } };140975 const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w } };
135734 const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d } };140976 const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d } };
...@@ -135739,6 +140981,8 @@ const Select = struct {...@@ -135739,6 +140981,8 @@ const Select = struct {
135739 const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6x } };140981 const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6x } };
135740 const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } };140982 const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } };
135741140983
140984 const tmp7l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7l } };
140985 const tmp7h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7h } };
135742 const tmp7b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7b } };140986 const tmp7b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7b } };
135743 const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w } };140987 const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w } };
135744 const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d } };140988 const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d } };
...@@ -135749,6 +140993,8 @@ const Select = struct {...@@ -135749,6 +140993,8 @@ const Select = struct {
135749 const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7x } };140993 const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7x } };
135750 const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } };140994 const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } };
135751140995
140996 const tmp8l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8l } };
140997 const tmp8h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8h } };
135752 const tmp8b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8b } };140998 const tmp8b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8b } };
135753 const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w } };140999 const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w } };
135754 const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d } };141000 const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d } };
...@@ -135759,6 +141005,8 @@ const Select = struct {...@@ -135759,6 +141005,8 @@ const Select = struct {
135759 const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8x } };141005 const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8x } };
135760 const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } };141006 const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } };
135761141007
141008 const tmp9l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9l } };
141009 const tmp9h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9h } };
135762 const tmp9b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9b } };141010 const tmp9b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9b } };
135763 const tmp9w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w } };141011 const tmp9w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w } };
135764 const tmp9d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d } };141012 const tmp9d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d } };
...@@ -135769,6 +141017,8 @@ const Select = struct {...@@ -135769,6 +141017,8 @@ const Select = struct {
135769 const tmp9x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9x } };141017 const tmp9x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9x } };
135770 const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } };141018 const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } };
135771141019
141020 const tmp10l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10l } };
141021 const tmp10h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10h } };
135772 const tmp10b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10b } };141022 const tmp10b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10b } };
135773 const tmp10w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w } };141023 const tmp10w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w } };
135774 const tmp10d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d } };141024 const tmp10d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d } };
...@@ -135779,6 +141029,8 @@ const Select = struct {...@@ -135779,6 +141029,8 @@ const Select = struct {
135779 const tmp10x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10x } };141029 const tmp10x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10x } };
135780 const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } };141030 const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } };
135781141031
141032 const dst0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0l } };
141033 const dst0h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0h } };
135782 const dst0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0b } };141034 const dst0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0b } };
135783 const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w } };141035 const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w } };
135784 const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d } };141036 const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d } };
...@@ -135789,6 +141041,8 @@ const Select = struct {...@@ -135789,6 +141041,8 @@ const Select = struct {
135789 const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0x } };141041 const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0x } };
135790 const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } };141042 const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } };
135791141043
141044 const dst1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1l } };
141045 const dst1h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1h } };
135792 const dst1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1b } };141046 const dst1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1b } };
135793 const dst1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w } };141047 const dst1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w } };
135794 const dst1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d } };141048 const dst1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d } };
...@@ -135799,6 +141053,8 @@ const Select = struct {...@@ -135799,6 +141053,8 @@ const Select = struct {
135799 const dst1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1x } };141053 const dst1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1x } };
135800 const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } };141054 const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } };
135801141055
141056 const src0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0l } };
141057 const src0h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0h } };
135802 const src0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0b } };141058 const src0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0b } };
135803 const src0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w } };141059 const src0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w } };
135804 const src0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d } };141060 const src0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d } };
...@@ -135809,6 +141065,8 @@ const Select = struct {...@@ -135809,6 +141065,8 @@ const Select = struct {
135809 const src0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0x } };141065 const src0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0x } };
135810 const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } };141066 const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } };
135811141067
141068 const src1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1l } };
141069 const src1h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1h } };
135812 const src1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1b } };141070 const src1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1b } };
135813 const src1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w } };141071 const src1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w } };
135814 const src1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d } };141072 const src1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d } };
...@@ -135819,6 +141077,8 @@ const Select = struct {...@@ -135819,6 +141077,8 @@ const Select = struct {
135819 const src1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1x } };141077 const src1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1x } };
135820 const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } };141078 const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } };
135821141079
141080 const src2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2l } };
141081 const src2h: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2h } };
135822 const src2b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2b } };141082 const src2b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2b } };
135823 const src2w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w } };141083 const src2w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w } };
135824 const src2d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d } };141084 const src2d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d } };
...@@ -136194,7 +141454,7 @@ const Select = struct {...@@ -136194,7 +141454,7 @@ const Select = struct {
136194 else => unreachable,141454 else => unreachable,
136195 } },141455 } },
136196 else => |mcv| .{ .mem = try mcv.mem(s.cg, .{ .size = op.flags.base.size }) },141456 else => |mcv| .{ .mem = try mcv.mem(s.cg, .{ .size = op.flags.base.size }) },
136197 .register => |reg| .{ .reg = s.lowerReg(registerAlias(reg, @intCast(@divExact(op.flags.base.size.bitSize(s.cg.target), 8)))) },141457 .register => |reg| .{ .reg = s.lowerReg(reg.toSize(op.flags.base.size, s.cg.target)) },
136198 .lea_symbol => |sym_off| .{ .imm = .rel(sym_off) },141458 .lea_symbol => |sym_off| .{ .imm = .rel(sym_off) },
136199 },141459 },
136200 .simm => .{ .imm = .s(op.adjustedImm(i32, s)) },141460 .simm => .{ .imm = .s(op.adjustedImm(i32, s)) },
...@@ -136203,8 +141463,8 @@ const Select = struct {...@@ -136203,8 +141463,8 @@ const Select = struct {
136203 .base = switch (op.flags.base.ref.valueOf(s)) {141463 .base = switch (op.flags.base.ref.valueOf(s)) {
136204 else => unreachable,141464 else => unreachable,
136205 .none => .none,141465 .none => .none,
136206 .register => |base_reg| .{ .reg = registerAlias(base_reg, @divExact(s.cg.target.ptrBitWidth(), 8)) },141466 .register => |base_reg| .{ .reg = base_reg.toSize(.ptr, s.cg.target) },
136207 .register_offset => |base_reg_off| .{ .reg = registerAlias(base_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)) },141467 .register_offset => |base_reg_off| .{ .reg = base_reg_off.reg.toSize(.ptr, s.cg.target) },
136208 .lea_symbol => |base_sym_off| .{ .reloc = base_sym_off.sym_index },141468 .lea_symbol => |base_sym_off| .{ .reloc = base_sym_off.sym_index },
136209 },141469 },
136210 .mod = .{ .rm = .{141470 .mod = .{ .rm = .{
...@@ -136212,8 +141472,8 @@ const Select = struct {...@@ -136212,8 +141472,8 @@ const Select = struct {
136212 .index = switch (op.flags.index.ref.valueOf(s)) {141472 .index = switch (op.flags.index.ref.valueOf(s)) {
136213 else => unreachable,141473 else => unreachable,
136214 .none => .none,141474 .none => .none,
136215 .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)),141475 .register => |index_reg| index_reg.toSize(.ptr, s.cg.target),
136216 .register_offset => |index_reg_off| registerAlias(index_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)),141476 .register_offset => |index_reg_off| index_reg_off.reg.toSize(.ptr, s.cg.target),
136217 },141477 },
136218 .scale = op.flags.index.scale,141478 .scale = op.flags.index.scale,
136219 .disp = op.adjustedImm(i32, s) + switch (op.flags.base.ref.valueOf(s)) {141479 .disp = op.adjustedImm(i32, s) + switch (op.flags.base.ref.valueOf(s)) {
...@@ -136234,7 +141494,7 @@ const Select = struct {...@@ -136234,7 +141494,7 @@ const Select = struct {
136234 .index = switch (op.flags.index.ref.valueOf(s)) {141494 .index = switch (op.flags.index.ref.valueOf(s)) {
136235 else => unreachable,141495 else => unreachable,
136236 .none => .none,141496 .none => .none,
136237 .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)),141497 .register => |index_reg| index_reg.toSize(.ptr, s.cg.target),
136238 },141498 },
136239 .scale = op.flags.index.scale,141499 .scale = op.flags.index.scale,
136240 .disp = op.adjustedImm(i32, s),141500 .disp = op.adjustedImm(i32, s),
src/arch/x86_64/abi.zig+5
...@@ -578,6 +578,11 @@ pub const RegisterClass = struct {...@@ -578,6 +578,11 @@ pub const RegisterClass = struct {
578 for (allocatable_regs, 0..) |reg, index| if (reg.class() == .general_purpose) set.set(index);578 for (allocatable_regs, 0..) |reg, index| if (reg.class() == .general_purpose) set.set(index);
579 break :blk set;579 break :blk set;
580 };580 };
581 pub const gphi: RegisterBitSet = blk: {
582 var set = RegisterBitSet.initEmpty();
583 for (allocatable_regs, 0..) |reg, index| if (reg.hasHi8()) set.set(index);
584 break :blk set;
585 };
581 pub const x87: RegisterBitSet = blk: {586 pub const x87: RegisterBitSet = blk: {
582 var set = RegisterBitSet.initEmpty();587 var set = RegisterBitSet.initEmpty();
583 for (allocatable_regs, 0..) |reg, index| if (reg.class() == .x87) set.set(index);588 for (allocatable_regs, 0..) |reg, index| if (reg.class() == .x87) set.set(index);
src/arch/x86_64/bits.zig+75-7
...@@ -529,12 +529,36 @@ pub const Register = enum(u8) {...@@ -529,12 +529,36 @@ pub const Register = enum(u8) {
529 16 => reg.to16(),529 16 => reg.to16(),
530 32 => reg.to32(),530 32 => reg.to32(),
531 64 => reg.to64(),531 64 => reg.to64(),
532 80 => reg.to80(),
532 128 => reg.to128(),533 128 => reg.to128(),
533 256 => reg.to256(),534 256 => reg.to256(),
535 512 => reg.to512(),
534 else => unreachable,536 else => unreachable,
535 };537 };
536 }538 }
537539
540 pub fn toSize(reg: Register, size: Memory.Size, target: *const std.Target) Register {
541 return switch (size) {
542 .none => unreachable,
543 .ptr => reg.toBitSize(target.ptrBitWidth()),
544 .gpr => switch (target.cpu.arch) {
545 else => unreachable,
546 .x86 => reg.to32(),
547 .x86_64 => reg.to64(),
548 },
549 .low_byte => reg.toLo8(),
550 .high_byte => reg.toHi8(),
551 .byte => reg.to8(),
552 .word => reg.to16(),
553 .dword => reg.to32(),
554 .qword => reg.to64(),
555 .tbyte => reg.to80(),
556 .xword => reg.to128(),
557 .yword => reg.to256(),
558 .zword => reg.to512(),
559 };
560 }
561
538 fn gpBase(reg: Register) u7 {562 fn gpBase(reg: Register) u7 {
539 return switch (@intFromEnum(reg)) {563 return switch (@intFromEnum(reg)) {
540 // zig fmt: off564 // zig fmt: off
...@@ -549,24 +573,62 @@ pub const Register = enum(u8) {...@@ -549,24 +573,62 @@ pub const Register = enum(u8) {
549 }573 }
550574
551 pub fn to64(reg: Register) Register {575 pub fn to64(reg: Register) Register {
552 return @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.rax));576 return switch (reg.class()) {
577 .general_purpose, .gphi => @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.rax)),
578 .segment => unreachable,
579 .x87, .mmx, .cr, .dr => reg,
580 .sse => reg.to128(),
581 .ip => .rip,
582 };
553 }583 }
554584
555 pub fn to32(reg: Register) Register {585 pub fn to32(reg: Register) Register {
556 return @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.eax));586 return switch (reg.class()) {
587 .general_purpose, .gphi => @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.eax)),
588 .segment => unreachable,
589 .x87, .mmx, .cr, .dr => reg,
590 .sse => reg.to128(),
591 .ip => .eip,
592 };
557 }593 }
558594
559 pub fn to16(reg: Register) Register {595 pub fn to16(reg: Register) Register {
560 return @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.ax));596 return switch (reg.class()) {
597 .general_purpose, .gphi => @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.ax)),
598 .segment, .x87, .mmx, .cr, .dr => reg,
599 .sse => reg.to128(),
600 .ip => .ip,
601 };
561 }602 }
562603
563 pub fn to8(reg: Register) Register {604 pub fn to8(reg: Register) Register {
564 return switch (@intFromEnum(reg)) {605 return switch (reg.class()) {
565 else => @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.al)),606 .general_purpose => reg.toLo8(),
566 @intFromEnum(Register.ah)...@intFromEnum(Register.bh) => reg,607 .gphi, .segment, .x87, .mmx, .cr, .dr => reg,
608 .sse => reg.to128(),
609 .ip => .ip,
567 };610 };
568 }611 }
569612
613 pub fn toLo8(reg: Register) Register {
614 return @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.al));
615 }
616
617 pub fn toHi8(reg: Register) Register {
618 assert(reg.hasHi8());
619 return @enumFromInt(@intFromEnum(reg) - reg.gpBase() + @intFromEnum(Register.ah));
620 }
621
622 pub fn hasHi8(reg: Register) bool {
623 const reg_id = reg.id();
624 return (reg_id >= comptime Register.ah.id()) and reg_id <= comptime Register.bh.id();
625 }
626
627 pub fn to80(reg: Register) Register {
628 assert(reg.class() == .x87);
629 return reg;
630 }
631
570 fn sseBase(reg: Register) u8 {632 fn sseBase(reg: Register) u8 {
571 assert(reg.class() == .sse);633 assert(reg.class() == .sse);
572 return switch (@intFromEnum(reg)) {634 return switch (@intFromEnum(reg)) {
...@@ -577,6 +639,10 @@ pub const Register = enum(u8) {...@@ -577,6 +639,10 @@ pub const Register = enum(u8) {
577 };639 };
578 }640 }
579641
642 pub fn to512(reg: Register) Register {
643 return @enumFromInt(@intFromEnum(reg) - reg.sseBase() + @intFromEnum(Register.zmm0));
644 }
645
580 pub fn to256(reg: Register) Register {646 pub fn to256(reg: Register) Register {
581 return @enumFromInt(@intFromEnum(reg) - reg.sseBase() + @intFromEnum(Register.ymm0));647 return @enumFromInt(@intFromEnum(reg) - reg.sseBase() + @intFromEnum(Register.ymm0));
582 }648 }
...@@ -710,6 +776,8 @@ pub const Memory = struct {...@@ -710,6 +776,8 @@ pub const Memory = struct {
710 none,776 none,
711 ptr,777 ptr,
712 gpr,778 gpr,
779 low_byte,
780 high_byte,
713 byte,781 byte,
714 word,782 word,
715 dword,783 dword,
...@@ -755,7 +823,7 @@ pub const Memory = struct {...@@ -755,7 +823,7 @@ pub const Memory = struct {
755 .x86 => 32,823 .x86 => 32,
756 .x86_64 => 64,824 .x86_64 => 64,
757 },825 },
758 .byte => 8,826 .low_byte, .high_byte, .byte => 8,
759 .word => 16,827 .word => 16,
760 .dword => 32,828 .dword => 32,
761 .qword => 64,829 .qword => 64,
test/behavior/saturating_arithmetic.zig+1-1
...@@ -259,13 +259,13 @@ test "saturating mul i64, i128, wasm only" {...@@ -259,13 +259,13 @@ test "saturating mul i64, i128, wasm only" {
259259
260test "saturating multiplication" {260test "saturating multiplication" {
261 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO261 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
262 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
263 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO262 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
264 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO263 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
265 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO264 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
266 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;265 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
267 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;266 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
268 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;267 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
268 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
269269
270 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isWasm()) {270 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isWasm()) {
271 // https://github.com/ziglang/zig/issues/9660271 // https://github.com/ziglang/zig/issues/9660
test/behavior/x86_64/binary.zig+8
...@@ -5134,6 +5134,14 @@ test mulWrap {...@@ -5134,6 +5134,14 @@ test mulWrap {
5134 try test_mul_wrap.testIntVectors();5134 try test_mul_wrap.testIntVectors();
5135}5135}
51365136
5137inline fn mulSat(comptime Type: type, lhs: Type, rhs: Type) Type {
5138 return lhs *| rhs;
5139}
5140test mulSat {
5141 const test_mul_sat = binary(mulSat, .{});
5142 try test_mul_sat.testInts();
5143}
5144
5137inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) {5145inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) {
5138 return lhs * rhs;5146 return lhs * rhs;
5139}5147}