commit d2e70ef84a912947f6485f6fc480030c2d6a8c8f (tree)
parent b732070fd36267fb055347e3aa8a1851e4054d50
Author: Andrew Kelley <andrew@ziglang.org>
Date: Mon, 17 Feb 2025 16:13:22 -0800
Merge pull request #22913 from jacobly0/x86_64-rewrite
x86_64: rewrite unsafe int vector multiplication
Diffstat:
5 files changed, 7906 insertions(+), 1624 deletions(-)
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig
@@ -2418,7 +2418,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}
fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
- @setEvalBranchQuota(12_400);
+ @setEvalBranchQuota(12_600);
const pt = cg.pt;
const zcu = pt.zcu;
const ip = &zcu.intern_pool;
@@ -2477,7 +2477,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.ctz => try cg.airCtz(inst),
.popcount => try cg.airPopCount(inst),
- .byte_swap => try cg.airByteSwap(inst),
.bit_reverse => try cg.airBitReverse(inst),
.splat => try cg.airSplat(inst),
.select => try cg.airSelect(inst),
@@ -2485,7 +2484,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.reduce => try cg.airReduce(inst),
.reduce_optimized => try cg.airReduce(inst),
.aggregate_init => try cg.airAggregateInit(inst),
- .prefetch => try cg.airPrefetch(inst),
// zig fmt: on
.arg => if (cg.debug_output != .none) {
@@ -2599,6 +2597,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -2630,6 +2630,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -2710,6 +2712,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -2740,6 +2744,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -2770,6 +2776,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -2800,6 +2808,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -2829,6 +2839,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -2907,6 +2919,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -2937,6 +2951,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -2967,6 +2983,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -2996,6 +3014,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3074,6 +3094,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3104,6 +3126,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3134,6 +3158,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3163,6 +3189,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3241,6 +3269,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3271,6 +3301,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3301,6 +3333,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3331,6 +3365,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3361,6 +3397,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3397,6 +3435,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3434,6 +3474,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -3463,6 +3505,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -3492,6 +3536,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -3523,6 +3569,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -3551,6 +3599,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -3584,6 +3634,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -3618,6 +3670,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -3653,6 +3707,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -3689,6 +3745,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -3807,6 +3865,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -3838,6 +3898,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -3901,6 +3963,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -3976,6 +4040,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -4007,6 +4073,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -4038,6 +4106,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4068,6 +4138,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -4098,6 +4170,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -4125,6 +4199,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4157,6 +4233,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -4184,6 +4262,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -4217,6 +4297,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -4250,6 +4332,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -4355,6 +4439,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -4386,6 +4472,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -4463,6 +4551,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4493,6 +4583,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4523,6 +4615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4553,6 +4647,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4582,6 +4678,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4657,6 +4755,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4687,6 +4787,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4717,6 +4819,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4746,6 +4850,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4821,6 +4927,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4851,6 +4959,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4881,6 +4991,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4910,6 +5022,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -4985,6 +5099,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5015,6 +5131,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5045,6 +5163,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5075,6 +5195,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5105,6 +5227,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5141,6 +5265,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5178,6 +5304,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -5207,6 +5335,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -5236,6 +5366,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -5267,6 +5399,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -5295,6 +5429,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -5328,6 +5464,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -5362,6 +5500,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -5397,6 +5537,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -5433,6 +5575,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -5546,6 +5690,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -5577,6 +5723,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -5638,6 +5786,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5710,6 +5860,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -5741,6 +5893,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -5772,6 +5926,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5802,6 +5958,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -5830,6 +5988,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -5858,6 +6018,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -5885,6 +6047,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -5917,6 +6081,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -5944,6 +6110,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -5977,6 +6145,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -6010,6 +6180,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -6034,10 +6206,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
},
.sub_safe => unreachable,
- .mul, .mul_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .mul) else fallback: {
+ .mul, .mul_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .mul) else {
const bin_op = air_datas[@intFromEnum(inst)].bin_op;
const ty = cg.typeOf(bin_op.lhs);
- if (ty.isVector(zcu) and cg.floatBits(ty.childType(zcu)) == null) break :fallback try cg.airMulDivBinOp(inst, .mul);
var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
var res: [1]Temp = undefined;
cg.select(&res, &.{ty}, &ops, comptime &.{ .{
@@ -6157,6 +6328,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -6192,6 +6365,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -6236,6 +6411,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -6283,6 +6460,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -6330,6 +6509,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u64, .kind = .{ .reg = .rax } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -6378,6 +6559,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u64, .kind = .{ .reg = .rax } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -6407,17 +6590,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .f16c, null, null, null },
+ .required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .word, .is = .word } },
- .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
+ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .movsxb, .dst0x, .src0q, ._, ._ },
+ .{ ._, .vp_w, .movsxb, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .ackssw, .dst0x, .dst0x, .dst0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
+ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
+ .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none } },
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.extra_temps = .{
- .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .{ .type = .vector_8_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6429,24 +6650,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
- .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0d, ._ },
- .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ .{ ._, .p_w, .movsxb, .dst0x, .src0q, ._, ._ },
+ .{ ._, .p_w, .movsxb, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .ackssw, .dst0x, .dst0x, ._, ._ },
} },
}, .{
- .required_features = .{ .sse, null, null, null },
+ .required_features = .{ .sse2, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .word, .is = .word } },
- .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
+ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
- .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
+ .{ .src = .{ .to_mut_sse, .to_mut_sse, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6457,15 +6679,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
.each = .{ .once = &.{
- .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
+ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp0x, .src1x, ._, ._ },
+ .{ ._, .p_, .unpcklbw, .src1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .mull, .dst0x, .src1x, ._, ._ },
+ .{ ._, .p_b, .ackssw, .dst0x, .dst0x, ._, ._ },
} },
}, .{
- .required_features = .{ .f16c, null, null, null },
+ .required_features = .{ .avx2, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .qword, .is = .word } },
- .{ .scalar_float = .{ .of = .qword, .is = .word } },
+ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
+ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
.any,
},
.patterns = &.{
@@ -6475,7 +6703,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.extra_temps = .{
- .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .{ .type = .vector_16_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6487,16 +6717,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
- .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ .{ ._, .vp_w, .movsxb, .dst0y, .src0x, ._, ._ },
+ .{ ._, .vp_w, .movsxb, .tmp0y, .src1x, ._, ._ },
+ .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp0y, ._ },
+ .{ ._, .vp_b, .ackssw, .dst0y, .dst0y, .dst0y, ._ },
+ .{ ._, .v_q, .perm, .dst0y, .dst0y, .ui(0b10_00_10_00), ._ },
} },
}, .{
- .required_features = .{ .f16c, null, null, null },
+ .required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .word } },
- .{ .scalar_float = .{ .of = .xword, .is = .word } },
+ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
+ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
@@ -6506,7 +6737,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.extra_temps = .{
- .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6518,16 +6751,114 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
- .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
- .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ },
- .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
+ .{ ._, .vp_w, .movzxb, .dst0x, .src0q, ._, ._ },
+ .{ ._, .vp_w, .movzxb, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .ackusw, .dst0x, .dst0x, .dst0x, ._ },
} },
}, .{
- .required_features = .{ .f16c, null, null, null },
+ .required_features = .{ .sse4_1, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
+ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
+ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .movzxb, .dst0x, .src0q, ._, ._ },
+ .{ ._, .p_w, .movzxb, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .ackusw, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
+ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .to_mut_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .unpcklbw, .src1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .mull, .dst0x, .src1x, ._, ._ },
+ .{ ._, .p_b, .ackusw, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
+ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .movzxb, .dst0y, .src0x, ._, ._ },
+ .{ ._, .vp_w, .movzxb, .tmp0y, .src1x, ._, ._ },
+ .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp0y, ._ },
+ .{ ._, .vp_b, .ackusw, .dst0y, .dst0y, .dst0y, ._ },
+ .{ ._, .v_q, .perm, .dst0y, .dst0y, .ui(0b10_00_10_00), ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
+ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
.any,
},
.patterns = &.{
@@ -6535,8 +6866,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
- .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6548,29 +6881,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .tmp2y, ._ },
- .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
+ .{ .@"0:", .vp_w, .movsxb, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .movsxb, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .mull, .tmp1y, .tmp1y, .tmp2y, ._ },
+ .{ ._, .vp_b, .ackssw, .tmp1y, .tmp1y, .tmp1y, ._ },
+ .{ ._, .v_q, .perm, .tmp1y, .tmp1y, .ui(0b10_00_10_00), ._ },
+ .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
- .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
+ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
- .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6578,33 +6914,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
- .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
- .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },
- .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
- .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ .@"0:", .vp_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .movsxb, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .mull, .tmp1x, .tmp1x, .tmp2x, ._ },
+ .{ ._, .vp_b, .ackssw, .tmp1x, .tmp1x, .tmp1x, ._ },
+ .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .sse4_1, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
- .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
+ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
- .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6612,178 +6949,199 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
- .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
- .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
- .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
- .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
- .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ .@"0:", .p_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_w, .movsxb, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_w, .mull, .tmp1x, .tmp2x, ._, ._ },
+ .{ ._, .p_b, .ackssw, .tmp1x, .tmp1x, ._, ._ },
+ .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
- .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
+ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
- .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
- .{ .type = .f16, .kind = .{ .reg = .ax } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
- .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
- .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
- .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
- .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },
- .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ ._, ._q, .mov, .tmp2x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .unpcklbw, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
+ .{ ._, ._q, .mov, .tmp3x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .unpcklbw, .tmp3x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .mull, .tmp2x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .ackssw, .tmp2x, .tmp2x, ._, ._ },
+ .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse, null, null, null },
+ .required_features = .{ .slow_incdec, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
- .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
+ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
.any,
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f16, .kind = .{ .reg = .ax } },
- .{ .type = .f32, .kind = .mem },
- .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
- .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
+ .{ .type = .i8, .kind = .{ .reg = .al } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
- .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
- .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
- .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
- .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
- .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
- .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .i_, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .dword, .is = .dword } },
- .{ .scalar_float = .{ .of = .dword, .is = .dword } },
+ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
+ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
.any,
},
.patterns = &.{
- .{ .src = .{ .to_sse, .mem, .none } },
- .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
- .{ .src = .{ .to_sse, .to_sse, .none } },
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
- .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i8, .kind = .{ .reg = .al } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, .v_ss, .mul, .dst0x, .src0x, .src1d, ._ },
- } },
- }, .{
- .required_features = .{ .sse, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .dword, .is = .dword } },
- .{ .scalar_float = .{ .of = .dword, .is = .dword } },
- .any,
- },
- .patterns = &.{
- .{ .src = .{ .to_mut_sse, .mem, .none } },
- .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
- .{ .src = .{ .to_mut_sse, .to_sse, .none } },
- },
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
- .each = .{ .once = &.{
- .{ ._, ._ss, .mul, .dst0x, .src1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .i_, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .avx, null, null, null },
+ .required_features = .{ .avx2, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .dword } },
- .{ .scalar_float = .{ .of = .xword, .is = .dword } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
.any,
},
.patterns = &.{
- .{ .src = .{ .to_sse, .mem, .none } },
- .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
- .{ .src = .{ .to_sse, .to_sse, .none } },
- },
- .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
- .each = .{ .once = &.{
- .{ ._, .v_ps, .mul, .dst0x, .src0x, .src1x, ._ },
- } },
- }, .{
- .required_features = .{ .sse, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .dword } },
- .{ .scalar_float = .{ .of = .xword, .is = .dword } },
- .any,
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
- .patterns = &.{
- .{ .src = .{ .to_mut_sse, .mem, .none } },
- .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
- .{ .src = .{ .to_mut_sse, .to_sse, .none } },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
},
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._ps, .mul, .dst0x, .src1x, ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .vp_w, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .movzxb, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .mull, .tmp1y, .tmp1y, .tmp2y, ._ },
+ .{ ._, .vp_b, .ackusw, .tmp1y, .tmp1y, .tmp1y, ._ },
+ .{ ._, .v_q, .perm, .tmp1y, .tmp1y, .ui(0b10_00_10_00), ._ },
+ .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .yword, .is = .dword } },
- .{ .scalar_float = .{ .of = .yword, .is = .dword } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
- .{ .src = .{ .to_sse, .mem, .none } },
- .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
- .{ .src = .{ .to_sse, .to_sse, .none } },
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
- .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, .v_ps, .mul, .dst0y, .src0y, .src1y, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .vp_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .movzxb, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .mull, .tmp1x, .tmp1x, .tmp2x, ._ },
+ .{ ._, .vp_b, .ackusw, .tmp1x, .tmp1x, .tmp1x, ._ },
+ .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .avx, null, null, null },
+ .required_features = .{ .sse4_1, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
- .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
@@ -6791,7 +7149,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
.unused,
.unused,
.unused,
@@ -6804,17 +7164,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
- .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
+ .{ .@"0:", .p_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_w, .movzxb, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_w, .mull, .tmp1x, .tmp2x, ._, ._ },
+ .{ ._, .p_b, .ackusw, .tmp1x, .tmp1x, ._, ._ },
+ .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse, null, null, null },
+ .required_features = .{ .sse2, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
.any,
},
.patterns = &.{
@@ -6822,7 +7184,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
.unused,
.unused,
.unused,
@@ -6835,57 +7199,64 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._ps, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
+ .{ ._, ._q, .mov, .tmp2x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_, .unpcklbw, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, ._q, .mov, .tmp3x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_, .unpcklbw, .tmp3x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .mull, .tmp2x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .ackusw, .tmp2x, .tmp2x, ._, ._ },
+ .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .avx, null, null, null },
+ .required_features = .{ .slow_incdec, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .qword, .is = .qword } },
- .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
.any,
},
.patterns = &.{
- .{ .src = .{ .to_sse, .mem, .none } },
- .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
- .{ .src = .{ .to_sse, .to_sse, .none } },
- },
- .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
- .each = .{ .once = &.{
- .{ ._, .v_sd, .mul, .dst0x, .src0x, .src1q, ._ },
- } },
- }, .{
- .required_features = .{ .sse2, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .qword, .is = .qword } },
- .{ .scalar_float = .{ .of = .qword, .is = .qword } },
- .any,
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
- .patterns = &.{
- .{ .src = .{ .to_mut_sse, .mem, .none } },
- .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
- .{ .src = .{ .to_mut_sse, .to_sse, .none } },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .reg = .al } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
},
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._sd, .mul, .dst0x, .src1q, ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .x87, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .qword, .is = .qword } },
- .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
.any,
},
.patterns = &.{
- .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
.extra_temps = .{
- .{ .type = .f64, .kind = .{ .reg = .st6 } },
- .{ .type = .f64, .kind = .{ .reg = .st7 } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .reg = .al } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6895,16 +7266,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
- .{ ._, .f_, .mul, .src1q, ._, ._, ._ },
- .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .qword } },
- .{ .scalar_float = .{ .of = .xword, .is = .qword } },
+ .{ .scalar_int = .{ .of = .xword, .is = .word } },
+ .{ .scalar_int = .{ .of = .xword, .is = .word } },
.any,
},
.patterns = &.{
@@ -6914,13 +7289,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_pd, .mul, .dst0x, .src0x, .src1x, ._ },
+ .{ ._, .vp_w, .mull, .dst0x, .src0x, .src1x, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .qword } },
- .{ .scalar_float = .{ .of = .xword, .is = .qword } },
+ .{ .scalar_int = .{ .of = .xword, .is = .word } },
+ .{ .scalar_int = .{ .of = .xword, .is = .word } },
.any,
},
.patterns = &.{
@@ -6930,13 +7305,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._pd, .mul, .dst0x, .src1x, ._, ._ },
+ .{ ._, .p_w, .mull, .dst0x, .src1x, ._, ._ },
} },
}, .{
- .required_features = .{ .avx, null, null, null },
+ .required_features = .{ .avx2, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .yword, .is = .qword } },
- .{ .scalar_float = .{ .of = .yword, .is = .qword } },
+ .{ .scalar_int = .{ .of = .yword, .is = .word } },
+ .{ .scalar_int = .{ .of = .yword, .is = .word } },
.any,
},
.patterns = &.{
@@ -6946,13 +7321,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_pd, .mul, .dst0y, .src0y, .src1y, ._ },
+ .{ ._, .vp_w, .mull, .dst0y, .src0y, .src1y, ._ },
} },
}, .{
- .required_features = .{ .avx, null, null, null },
+ .required_features = .{ .avx2, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
- .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
+ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } },
+ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } },
.any,
},
.patterns = &.{
@@ -6960,7 +7335,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -6973,17 +7350,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, .v_pd, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
- .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
+ .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .mull, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
+ .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse2, null, null, null },
+ .required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
+ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } },
+ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } },
.any,
},
.patterns = &.{
@@ -6991,7 +7368,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7004,17 +7383,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._pd, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_w, .mull, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ },
+ .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .x87, null, null, null },
+ .required_features = .{ .sse2, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
- .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } },
+ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } },
.any,
},
.patterns = &.{
@@ -7022,8 +7401,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f64, .kind = .{ .reg = .st6 } },
- .{ .type = .f64, .kind = .{ .reg = .st7 } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7032,27 +7413,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
- .{ ._, .f_, .mul, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },
- .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .p_w, .mull, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .x87, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
- .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
.any,
},
.patterns = &.{
- .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
.extra_temps = .{
- .{ .type = .f80, .kind = .{ .reg = .st6 } },
- .{ .type = .f80, .kind = .{ .reg = .st7 } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7061,27 +7444,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .rc = .x87 }, .unused },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
- .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
- .{ ._, .f_p, .mul, ._, ._, ._, ._ },
- .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .i_, .mul, .tmp1w, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .x87, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
- .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
.any,
},
.patterns = &.{
- .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
- .{ .src = .{ .mem, .to_x87, .none } },
- .{ .src = .{ .to_x87, .to_x87, .none } },
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
.extra_temps = .{
- .{ .type = .f80, .kind = .{ .reg = .st7 } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -7091,56 +7476,78 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .rc = .x87 }, .unused },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
- .{ ._, .f_, .mul, .tmp0t, .src1t, ._, ._ },
- .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .i_, .mul, .tmp1w, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .x87, null, null, null },
+ .required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .{ .scalar_int = .{ .of = .xword, .is = .dword } },
+ .{ .scalar_int = .{ .of = .xword, .is = .dword } },
.any,
},
.patterns = &.{
- .{ .src = .{ .to_mem, .to_mem, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
},
- .extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f80, .kind = .{ .reg = .st6 } },
- .{ .type = .f80, .kind = .{ .reg = .st7 } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_d, .mull, .dst0x, .src0x, .src1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_int = .{ .of = .xword, .is = .dword } },
+ .{ .scalar_int = .{ .of = .xword, .is = .dword } },
+ .any,
},
- .dst_temps = .{ .mem, .unused },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
+ .{ .src = .{ .to_mut_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
- .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },
- .{ ._, .f_p, .mul, ._, ._, ._, ._ },
- .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .mull, .dst0x, .src1x, ._, ._ },
} },
}, .{
- .required_features = .{ .sse, null, null, null },
+ .required_features = .{ .avx2, null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .xword } },
- .{ .scalar_float = .{ .of = .xword, .is = .xword } },
+ .{ .scalar_int = .{ .of = .yword, .is = .dword } },
+ .{ .scalar_int = .{ .of = .yword, .is = .dword } },
.any,
},
.patterns = &.{
- .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_d, .mull, .dst0y, .src0y, .src1y, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } },
+ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
+ .unused,
.unused,
.unused,
.unused,
@@ -7150,27 +7557,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_d, .mull, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
+ .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } },
+ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } },
.any,
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
- .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7178,32 +7591,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, .vp_d, .mull, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ },
.{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse2, null, null, null },
+ .required_features = .{ .sse4_1, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } },
+ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } },
.any,
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
- .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7211,32 +7624,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, .p_d, .mull, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
- .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } },
+ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } },
.any,
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
- .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7244,49 +7656,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .i_, .mul, .tmp1d, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
- } }) catch |err| switch (err) {
- error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
- @tagName(air_tag),
- ty.fmt(pt),
- ops[0].tracking(cg),
- ops[1].tracking(cg),
- }),
- else => |e| return e,
- };
- try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
- },
- .mul_safe => unreachable,
- .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) {
- else => unreachable,
- .div_float, .div_float_optimized => .div_float,
- .div_exact, .div_exact_optimized => .div_exact,
- }) else {
- const bin_op = air_datas[@intFromEnum(inst)].bin_op;
- const ty = cg.typeOf(bin_op.lhs);
- var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
- var res: [1]Temp = undefined;
- (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{
- .required_features = .{ .f16c, null, null, null },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .word, .is = .word } },
- .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } },
+ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } },
.any,
},
.patterns = &.{
- .{ .src = .{ .to_sse, .to_sse, .none } },
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
.extra_temps = .{
- .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -7296,34 +7688,338 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
- .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
- .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .i_, .mul, .tmp1q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse, null, null, null },
+ .required_features = .{ .@"64bit", .bmi2, .adx, null },
.src_constraints = .{
- .{ .scalar_float = .{ .of = .word, .is = .word } },
- .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
.any,
},
.patterns = &.{
- .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
+ .{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .{ .type = .isize, .kind = .{ .reg = .rcx } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
+ .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp4d, .sia(-8, .src0, .add_elem_size), ._, ._ },
+ .{ .@"1:", ._, .xor, .tmp5d, .tmp5d, ._, ._ },
+ .{ ._, ._, .@"or", .tmp5q, .leai(.tmp1q, .tmp4), ._, ._ },
+ .{ ._, ._z, .j, .@"3f", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp6p, .leaad(.tmp4, .sub_src0_elem_size, 8), ._, ._ },
+ .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
+ .{ .@"2:", ._x, .mul, .tmp9q, .tmp8q, .leai(.tmp2q, .tmp6), ._ },
+ .{ ._, ._x, .adc, .tmp8q, .tmp7q, ._, ._ },
+ .{ ._, ._, .mov, .leaiad(.tmp3q, .tmp6, .add_dst0_elem_size, -8), .tmp8q, ._, ._ },
+ .{ ._, ._rcxz, .j, .@"2f", ._, ._, ._ },
+ .{ ._, ._x, .ado, .tmp9q, .leaia(.tmp3q, .tmp6, .add_dst0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp7q, .tmp9q, ._, ._ },
+ .{ ._, ._, .lea, .tmp6p, .lead(.tmp6, 8), ._, ._ },
+ .{ ._, ._mp, .j, .@"2b", ._, ._, ._ },
+ .{ .@"3:", ._, .mov, .leai(.tmp3q, .tmp4), .tmp5q, ._, ._ },
+ .{ .@"2:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp4d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
+ .src_constraints = .{
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
+ .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ },
+ .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ },
+ .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
+ .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
+ .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
+ .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
+ .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
+ .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ },
+ .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
+ .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
+ .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
+ .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
+ .{ .@"3:", ._x, .mul, .tmp10q, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._ },
+ .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
+ .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ },
+ .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
+ .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp4d, .si(1), ._, ._ },
+ .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .bmi2, null, null },
+ .src_constraints = .{
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
+ .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ },
+ .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ },
+ .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
+ .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
+ .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
+ .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
+ .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
+ .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ },
+ .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
+ .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
+ .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
+ .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
+ .{ .@"3:", ._x, .mul, .tmp10q, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._ },
+ .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
+ .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ },
+ .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
+ .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
+ .{ ._, ._c, .de, .tmp4d, ._, ._, ._ },
+ .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .slow_incdec, null, null },
+ .src_constraints = .{
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .reg = .rax } },
+ .{ .type = .u64, .kind = .{ .reg = .rdx } },
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
+ .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ },
+ .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ },
+ .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
+ .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
+ .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
+ .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
+ .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
+ .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ },
+ .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
+ .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
+ .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
+ .{ .@"3:", ._, .mov, .tmp9q, .tmp6q, ._, ._ },
+ .{ ._, ._, .mul, .leasi(.tmp2q, .@"8", .tmp5), ._, ._, ._ },
+ .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
+ .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
+ .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ },
+ .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
+ .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp4d, .si(1), ._, ._ },
+ .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .reg = .rax } },
+ .{ .type = .u64, .kind = .{ .reg = .rdx } },
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
+ .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ },
+ .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ },
+ .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
+ .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
+ .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
+ .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
+ .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
+ .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ },
+ .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
+ .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
+ .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
+ .{ .@"3:", ._, .mov, .tmp9q, .tmp6q, ._, ._ },
+ .{ ._, ._, .mul, .leasi(.tmp2q, .@"8", .tmp5), ._, ._, ._ },
+ .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
+ .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
+ .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ },
+ .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
+ .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
+ .{ ._, ._c, .de, .tmp4d, ._, ._, ._ },
+ .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .f16c, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
+ .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0d, ._ },
+ .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -7353,12 +8049,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
.{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
- .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
}, .{
@@ -7384,12 +8082,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
.{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
- .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },
+ .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ },
.{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
} },
}, .{
@@ -7412,6 +8112,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -7419,7 +8121,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },
+ .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .tmp2y, ._ },
.{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -7439,7 +8141,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .f16, .kind = .{ .reg = .xmm0 } },
.{ .type = .f16, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7473,7 +8177,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .f16, .kind = .{ .reg = .xmm0 } },
.{ .type = .f16, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7508,12 +8214,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .f16, .kind = .{ .reg = .xmm0 } },
.{ .type = .f16, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
.{ .type = .f16, .kind = .{ .reg = .ax } },
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -7546,7 +8254,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f32, .kind = .mem },
.{ .type = .f16, .kind = .{ .reg = .xmm0 } },
.{ .type = .f16, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -7577,11 +8287,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },
+ .{ ._, .v_ss, .mul, .dst0x, .src0x, .src1d, ._ },
} },
}, .{
.required_features = .{ .sse, null, null, null },
@@ -7592,11 +8303,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_mut_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
+ .{ ._, ._ss, .mul, .dst0x, .src1d, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -7607,11 +8319,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },
+ .{ ._, .v_ps, .mul, .dst0x, .src0x, .src1x, ._ },
} },
}, .{
.required_features = .{ .sse, null, null, null },
@@ -7622,11 +8335,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_mut_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },
+ .{ ._, ._ps, .mul, .dst0x, .src1x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -7637,11 +8351,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
+ .{ ._, .v_ps, .mul, .dst0y, .src0y, .src1y, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -7663,13 +8378,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
+ .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
.{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -7694,13 +8411,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._ps, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -7714,11 +8433,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
+ .{ ._, .v_sd, .mul, .dst0x, .src0x, .src1q, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
@@ -7729,11 +8449,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_mut_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
+ .{ ._, ._sd, .mul, .dst0x, .src1q, ._, ._ },
} },
}, .{
.required_features = .{ .x87, null, null, null },
@@ -7755,11 +8476,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
.{ ._, .f_, .ld, .src0q, ._, ._, ._ },
- .{ ._, .f_, .div, .src1q, ._, ._, ._ },
+ .{ ._, .f_, .mul, .src1q, ._, ._, ._ },
.{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
} },
}, .{
@@ -7771,11 +8494,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },
+ .{ ._, .v_pd, .mul, .dst0x, .src0x, .src1x, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
@@ -7786,11 +8510,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_mut_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },
+ .{ ._, ._pd, .mul, .dst0x, .src1x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -7801,11 +8526,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.patterns = &.{
.{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .to_sse, .to_sse, .none } },
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },
+ .{ ._, .v_pd, .mul, .dst0y, .src0y, .src1y, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -7827,13 +8553,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
+ .{ ._, .v_pd, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
.{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -7858,13 +8586,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._pd, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -7889,12 +8619,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
- .{ ._, .f_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, .f_, .mul, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },
.{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -7919,39 +8651,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
- },
- .dst_temps = .{ .{ .rc = .x87 }, .unused },
- .each = .{ .once = &.{
- .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
- .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
- .{ ._, .f_p, .div, ._, ._, ._, ._ },
- .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
- } },
- }, .{
- .required_features = .{ .x87, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
- .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
- .any,
- },
- .patterns = &.{
- .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
- },
- .extra_temps = .{
- .{ .type = .f80, .kind = .{ .reg = .st7 } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
.unused,
.unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
.{ ._, .f_, .ld, .src0t, ._, ._, ._ },
- .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ },
+ .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
+ .{ ._, .f_p, .mul, ._, ._, ._, ._ },
.{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
} },
}, .{
@@ -7962,6 +8669,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.any,
},
.patterns = &.{
+ .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
.{ .src = .{ .mem, .to_x87, .none } },
.{ .src = .{ .to_x87, .to_x87, .none } },
},
@@ -7975,11 +8683,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
.{ ._, .f_, .ld, .src0t, ._, ._, ._ },
- .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ },
+ .{ ._, .f_, .mul, .tmp0t, .src1t, ._, ._ },
.{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
} },
}, .{
@@ -8002,13 +8712,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
.{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },
- .{ ._, .f_p, .div, ._, ._, ._, ._ },
+ .{ ._, .f_p, .mul, ._, ._, ._, ._ },
.{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -8025,7 +8737,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -8055,7 +8769,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .f128, .kind = .{ .reg = .xmm0 } },
.{ .type = .f128, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -8088,7 +8804,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .f128, .kind = .{ .reg = .xmm0 } },
.{ .type = .f128, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -8121,7 +8839,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .f128, .kind = .{ .reg = .xmm0 } },
.{ .type = .f128, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -8139,10 +8859,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
- } }) else err: {
- assert(air_tag == .div_exact);
- res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err;
- }) catch |err| switch (err) {
+ } }) catch |err| switch (err) {
error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
@tagName(air_tag),
ty.fmt(pt),
@@ -8153,7 +8870,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
};
try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
},
- .div_trunc => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else {
+ .mul_safe => unreachable,
+ .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) {
+ else => unreachable,
+ .div_float, .div_float_optimized => .div_float,
+ .div_exact, .div_exact_optimized => .div_exact,
+ }) else {
const bin_op = air_datas[@intFromEnum(inst)].bin_op;
const ty = cg.typeOf(bin_op.lhs);
var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
@@ -8178,6 +8900,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -8185,9 +8909,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
.{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
- .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
- .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) },
- .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
}, .{
.required_features = .{ .sse, null, null, null },
@@ -8202,7 +8923,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -8215,7 +8938,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
.each = .{ .once = &.{
.{ ._, ._, .call, .tmp0d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
} },
}, .{
.required_features = .{ .f16c, null, null, null },
@@ -8240,6 +8962,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -8247,9 +8971,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
.{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
- .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
- .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
- .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
}, .{
.required_features = .{ .f16c, null, null, null },
@@ -8274,6 +8995,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -8281,9 +9004,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
.{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },
.{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
- .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
- .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
- .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
} },
}, .{
.required_features = .{ .f16c, null, null, null },
@@ -8305,6 +9025,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -8313,9 +9035,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },
- .{ ._, .v_, .cvtps2ph, .tmp1x, .tmp1y, .rm(.{}), ._ },
- .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
- .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
.{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -8336,7 +9055,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .xmm0 } },
.{ .type = .f16, .kind = .{ .reg = .xmm1 } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -8350,7 +9071,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
.{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },
.{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
.{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
.{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -8371,7 +9091,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .xmm0 } },
.{ .type = .f16, .kind = .{ .reg = .xmm1 } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -8386,7 +9108,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
.{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
.{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
.{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
.{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -8407,11 +9128,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .xmm0 } },
.{ .type = .f16, .kind = .{ .reg = .xmm1 } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
.{ .type = .f16, .kind = .{ .reg = .ax } },
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -8422,9 +9145,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
.{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
.{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
- .{ ._, .p_w, .extr, .tmp5d, .tmp1x, .ui(0), ._ },
- .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp5w, ._, ._ },
+ .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },
+ .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
@@ -8446,7 +9168,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .xmm0 } },
.{ .type = .f16, .kind = .{ .reg = .xmm1 } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
},
@@ -8461,7 +9185,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
.{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
.{ ._, ._, .call, .tmp5d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
.{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
.{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
.{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
@@ -8482,10 +9205,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },
- .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) },
} },
}, .{
- .required_features = .{ .sse4_1, null, null, null },
+ .required_features = .{ .sse, null, null, null },
.src_constraints = .{
.{ .scalar_float = .{ .of = .dword, .is = .dword } },
.{ .scalar_float = .{ .of = .dword, .is = .dword } },
@@ -8498,35 +9220,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
- .{ ._, ._ss, .round, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
- } },
- }, .{
- .required_features = .{ .sse, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .dword, .is = .dword } },
- .{ .scalar_float = .{ .of = .dword, .is = .dword } },
- .any,
- },
- .patterns = &.{
- .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } },
- },
- .call_frame = .{ .alignment = .@"16" },
- .extra_temps = .{
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- },
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
- .each = .{ .once = &.{
- .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
- .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -8542,10 +9235,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },
- .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
} },
}, .{
- .required_features = .{ .sse4_1, null, null, null },
+ .required_features = .{ .sse, null, null, null },
.src_constraints = .{
.{ .scalar_float = .{ .of = .xword, .is = .dword } },
.{ .scalar_float = .{ .of = .xword, .is = .dword } },
@@ -8558,40 +9250,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },
- .{ ._, ._ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
- } },
- }, .{
- .required_features = .{ .sse, null, null, null },
- .src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } },
- .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } },
- .any,
- },
- .patterns = &.{
- .{ .src = .{ .to_mem, .to_mem, .none } },
- },
- .call_frame = .{ .alignment = .@"16" },
- .extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f32, .kind = .{ .reg = .xmm0 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- },
- .dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
- .each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._ss, .div, .tmp1x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
- .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -8607,7 +9265,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
- .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -8629,6 +9286,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -8636,13 +9295,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
- .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
.{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse4_1, null, null, null },
+ .required_features = .{ .sse, null, null, null },
.src_constraints = .{
.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
@@ -8661,6 +9319,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -8668,7 +9328,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._ps, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
.{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -8687,10 +9346,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
- .{ ._, .v_sd, .round, .dst0x, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }) },
} },
}, .{
- .required_features = .{ .sse4_1, null, null, null },
+ .required_features = .{ .sse2, null, null, null },
.src_constraints = .{
.{ .scalar_float = .{ .of = .qword, .is = .qword } },
.{ .scalar_float = .{ .of = .qword, .is = .qword } },
@@ -8703,50 +9361,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
- .{ ._, ._sd, .round, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
} },
}, .{
- .required_features = .{ .sse2, null, null, null },
+ .required_features = .{ .x87, null, null, null },
.src_constraints = .{
.{ .scalar_float = .{ .of = .qword, .is = .qword } },
.{ .scalar_float = .{ .of = .qword, .is = .qword } },
.any,
},
.patterns = &.{
- .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } },
+ .{ .src = .{ .mem, .mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
+ .{ .type = .f64, .kind = .{ .reg = .st6 } },
+ .{ .type = .f64, .kind = .{ .reg = .st7 } },
.unused,
.unused,
- },
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
- .each = .{ .once = &.{
- .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
- .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
- } },
- }, .{
- .required_features = .{ .sse, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .qword, .is = .qword } },
- .{ .scalar_float = .{ .of = .qword, .is = .qword } },
- .any,
- },
- .patterns = &.{
- .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
- },
- .call_frame = .{ .alignment = .@"16" },
- .extra_temps = .{
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
.unused,
.unused,
.unused,
@@ -8755,11 +9385,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
- .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
+ .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
+ .{ ._, .f_, .div, .src1q, ._, ._, ._ },
+ .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -8775,10 +9405,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },
- .{ ._, .v_pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
} },
}, .{
- .required_features = .{ .sse4_1, null, null, null },
+ .required_features = .{ .sse2, null, null, null },
.src_constraints = .{
.{ .scalar_float = .{ .of = .xword, .is = .qword } },
.{ .scalar_float = .{ .of = .xword, .is = .qword } },
@@ -8791,7 +9420,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },
- .{ ._, ._pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -8807,7 +9435,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },
- .{ ._, .v_pd, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -8829,6 +9456,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -8836,13 +9465,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
- .{ ._, .v_pd, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
.{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse4_1, null, null, null },
+ .required_features = .{ .sse2, null, null, null },
.src_constraints = .{
.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
@@ -8861,6 +9489,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -8868,13 +9498,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._pd, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
.{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse2, null, null, null },
+ .required_features = .{ .x87, null, null, null },
.src_constraints = .{
.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
@@ -8883,11 +9512,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f64, .kind = .{ .reg = .xmm0 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
+ .{ .type = .f64, .kind = .{ .reg = .st6 } },
+ .{ .type = .f64, .kind = .{ .reg = .st7 } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -8896,51 +9526,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._sd, .div, .tmp1x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
- .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, .f_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .sse, null, null, null },
+ .required_features = .{ .x87, null, null, null },
.src_constraints = .{
- .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
- .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
.any,
},
.patterns = &.{
- .{ .src = .{ .to_mem, .to_mem, .none } },
+ .{ .src = .{ .mem, .mem, .none } },
},
- .call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .f64, .kind = .{ .reg = .xmm0 } },
- .{ .type = .f64, .kind = .{ .reg = .xmm1 } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
+ .{ .type = .f80, .kind = .{ .reg = .st6 } },
+ .{ .type = .f80, .kind = .{ .reg = .st7 } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
.unused,
},
- .dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
- .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
- .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
- .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
- .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
- .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
+ .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
+ .{ ._, .f_p, .div, ._, ._, ._, ._ },
+ .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
} },
}, .{
.required_features = .{ .x87, null, null, null },
@@ -8950,28 +9572,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.any,
},
.patterns = &.{
- .{ .src = .{ .to_mem, .to_mem, .none } },
+ .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
},
- .call_frame = .{ .size = 16, .alignment = .@"16" },
.extra_temps = .{
- .{ .type = .f80, .kind = .{ .reg = .st6 } },
.{ .type = .f80, .kind = .{ .reg = .st7 } },
- .{ .type = .f80, .kind = .{ .frame = .call_frame } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
.unused,
.unused,
},
- .dst_temps = .{ .{ .reg = .st0 }, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
.{ ._, .f_, .ld, .src0t, ._, ._, ._ },
- .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
- .{ ._, .f_p, .div, ._, ._, ._, ._ },
- .{ ._, .f_p, .st, .mem(.tmp2t), ._, ._, ._ },
- .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ },
+ .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .x87, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .mem, .to_x87, .none } },
+ .{ .src = .{ .to_x87, .to_x87, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .f80, .kind = .{ .reg = .st7 } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .x87 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
+ .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ },
+ .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
} },
}, .{
.required_features = .{ .x87, null, null, null },
@@ -8983,28 +9633,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem, .none } },
},
- .call_frame = .{ .size = 16, .alignment = .@"16" },
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .f80, .kind = .{ .reg = .st6 } },
.{ .type = .f80, .kind = .{ .reg = .st7 } },
- .{ .type = .f80, .kind = .{ .frame = .call_frame } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
.unused,
},
.dst_temps = .{ .mem, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
.{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
.{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },
.{ ._, .f_p, .div, ._, ._, ._, ._ },
- .{ ._, .f_p, .st, .mem(.tmp3t), ._, ._, ._ },
- .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
- .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ },
.{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -9022,7 +9669,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.call_frame = .{ .alignment = .@"16" },
.extra_temps = .{
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -9035,7 +9684,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
.each = .{ .once = &.{
.{ ._, ._, .call, .tmp0d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
@@ -9053,7 +9701,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f128, .kind = .{ .reg = .xmm0 } },
.{ .type = .f128, .kind = .{ .reg = .xmm1 } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -9066,7 +9716,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
.{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -9087,7 +9736,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f128, .kind = .{ .reg = .xmm0 } },
.{ .type = .f128, .kind = .{ .reg = .xmm1 } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -9100,7 +9751,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
.{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
@@ -9121,7 +9771,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f128, .kind = .{ .reg = .xmm0 } },
.{ .type = .f128, .kind = .{ .reg = .xmm1 } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
+ .unused,
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -9134,12 +9786,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
.{ ._, ._, .call, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
.{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
} }) else err: {
+ assert(air_tag == .div_exact);
res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err;
}) catch |err| switch (err) {
error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
@@ -9152,121 +9804,1176 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
};
try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
},
- .div_trunc_optimized, .div_floor_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) {
- else => unreachable,
- .div_trunc_optimized => .div_trunc,
- .div_floor_optimized => .div_floor,
- }) else {
+ .div_trunc => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else {
const bin_op = air_datas[@intFromEnum(inst)].bin_op;
+ const ty = cg.typeOf(bin_op.lhs);
var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
var res: [1]Temp = undefined;
- cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, switch (@as(bits.RoundMode.Direction, switch (air_tag) {
- else => unreachable,
- .div_trunc_optimized => .zero,
- .div_floor_optimized => .down,
- })) {
- else => unreachable,
- inline .zero, .down => |direction| comptime &.{ .{
- .required_features = .{ .f16c, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .word, .is = .word } },
- .{ .scalar_float = .{ .of = .word, .is = .word } },
- .any,
- },
- .patterns = &.{
- .{ .src = .{ .to_sse, .to_sse, .none } },
- },
- .extra_temps = .{
- .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- },
- .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
- .each = .{ .once = &.{
- .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
- .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
- .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = direction, .precision = .inexact }) },
- .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
- } },
- }, .{
- .required_features = .{ .sse, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .word, .is = .word } },
- .{ .scalar_float = .{ .of = .word, .is = .word } },
- .any,
- },
- .patterns = &.{
- .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
- },
- .call_frame = .{ .alignment = .@"16" },
- .extra_temps = .{
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
- .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) {
- else => unreachable,
- .zero => "__trunch",
- .down => "__floorh",
- } } } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- },
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
- .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
- .each = .{ .once = &.{
- .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
- .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
- } },
- }, .{
- .required_features = .{ .f16c, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .qword, .is = .word } },
- .{ .scalar_float = .{ .of = .qword, .is = .word } },
- .any,
- },
- .patterns = &.{
- .{ .src = .{ .mem, .mem, .none } },
- .{ .src = .{ .to_sse, .mem, .none } },
- .{ .src = .{ .mem, .to_sse, .none } },
- .{ .src = .{ .to_sse, .to_sse, .none } },
- },
- .extra_temps = .{
- .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- },
- .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
- .each = .{ .once = &.{
- .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
- .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ },
- .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
- } },
- }, .{
- .required_features = .{ .f16c, null, null, null },
- .src_constraints = .{
- .{ .scalar_float = .{ .of = .xword, .is = .word } },
- .{ .scalar_float = .{ .of = .xword, .is = .word } },
- .any,
- },
- .patterns = &.{
+ (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{
+ .required_features = .{ .f16c, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
+ .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
+ .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
+ .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) },
+ .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .f16c, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .qword, .is = .word } },
+ .{ .scalar_float = .{ .of = .qword, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
+ .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
+ .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ } },
+ }, .{
+ .required_features = .{ .f16c, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .word } },
+ .{ .scalar_float = .{ .of = .xword, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
+ .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
+ .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },
+ .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
+ .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
+ .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
+ } },
+ }, .{
+ .required_features = .{ .f16c, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },
+ .{ ._, .v_, .cvtps2ph, .tmp1x, .tmp1y, .rm(.{}), ._ },
+ .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
+ .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
+ .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
+ .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },
+ .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
+ .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
+ .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
+ .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
+ .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
+ .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
+ .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .{ .type = .f16, .kind = .{ .reg = .ax } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
+ .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
+ .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
+ .{ ._, .p_w, .extr, .tmp5d, .tmp1x, .ui(0), ._ },
+ .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp5w, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f16, .kind = .{ .reg = .ax } },
+ .{ .type = .f32, .kind = .mem },
+ .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
+ .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
+ .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
+ .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
+ .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
+ .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
+ .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .dword, .is = .dword } },
+ .{ .scalar_float = .{ .of = .dword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },
+ .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .dword, .is = .dword } },
+ .{ .scalar_float = .{ .of = .dword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .to_mut_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
+ .{ ._, ._ss, .round, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .dword, .is = .dword } },
+ .{ .scalar_float = .{ .of = .dword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
+ .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .dword } },
+ .{ .scalar_float = .{ .of = .xword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },
+ .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .dword } },
+ .{ .scalar_float = .{ .of = .xword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .to_mut_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },
+ .{ ._, ._ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } },
+ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f32, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._ss, .div, .tmp1x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
+ .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .yword, .is = .dword } },
+ .{ .scalar_float = .{ .of = .yword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
+ .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
+ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
+ .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._ps, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
+ .{ ._, .v_sd, .round, .dst0x, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }) },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .to_mut_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
+ .{ ._, ._sd, .round, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
+ .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .scalar_float = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .qword } },
+ .{ .scalar_float = .{ .of = .xword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },
+ .{ ._, .v_pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .qword } },
+ .{ .scalar_float = .{ .of = .xword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .mem, .none } },
+ .{ .src = .{ .to_mut_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },
+ .{ ._, ._pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .yword, .is = .qword } },
+ .{ .scalar_float = .{ .of = .yword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },
+ .{ ._, .v_pd, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
+ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
+ .{ ._, .v_pd, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._pd, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
+ .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f64, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._sd, .div, .tmp1x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
+ .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
+ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f64, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .f64, .kind = .{ .reg = .xmm1 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
+ .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
+ .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
+ .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .x87, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .size = 16, .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .f80, .kind = .{ .reg = .st6 } },
+ .{ .type = .f80, .kind = .{ .reg = .st7 } },
+ .{ .type = .f80, .kind = .{ .frame = .call_frame } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .reg = .st0 }, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
+ .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
+ .{ ._, .f_p, .div, ._, ._, ._, ._ },
+ .{ ._, .f_p, .st, .mem(.tmp2t), ._, ._, ._ },
+ .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .x87, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .size = 16, .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f80, .kind = .{ .reg = .st6 } },
+ .{ .type = .f80, .kind = .{ .reg = .st7 } },
+ .{ .type = .f80, .kind = .{ .frame = .call_frame } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, .f_p, .div, ._, ._, ._, ._ },
+ .{ ._, .f_p, .st, .mem(.tmp3t), ._, ._, ._ },
+ .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
+ .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ },
+ .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .xword } },
+ .{ .scalar_float = .{ .of = .xword, .is = .xword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
+ .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
+ .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .to_mem, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
+ .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
+ .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
+ .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ } }) else err: {
+ res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err;
+ }) catch |err| switch (err) {
+ error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
+ @tagName(air_tag),
+ ty.fmt(pt),
+ ops[0].tracking(cg),
+ ops[1].tracking(cg),
+ }),
+ else => |e| return e,
+ };
+ try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
+ },
+ .div_trunc_optimized, .div_floor_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) {
+ else => unreachable,
+ .div_trunc_optimized => .div_trunc,
+ .div_floor_optimized => .div_floor,
+ }) else {
+ const bin_op = air_datas[@intFromEnum(inst)].bin_op;
+ var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
+ var res: [1]Temp = undefined;
+ cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, switch (@as(bits.RoundMode.Direction, switch (air_tag) {
+ else => unreachable,
+ .div_trunc_optimized => .zero,
+ .div_floor_optimized => .down,
+ })) {
+ else => unreachable,
+ inline .zero, .down => |direction| comptime &.{ .{
+ .required_features = .{ .f16c, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
+ .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
+ .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = direction, .precision = .inexact }) },
+ .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .{ .scalar_float = .{ .of = .word, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
+ },
+ .call_frame = .{ .alignment = .@"16" },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
+ .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) {
+ else => unreachable,
+ .zero => "__trunch",
+ .down => "__floorh",
+ } } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
+ .each = .{ .once = &.{
+ .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .f16c, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .qword, .is = .word } },
+ .{ .scalar_float = .{ .of = .qword, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
+ .{ .src = .{ .mem, .mem, .none } },
+ .{ .src = .{ .to_sse, .mem, .none } },
+ .{ .src = .{ .mem, .to_sse, .none } },
+ .{ .src = .{ .to_sse, .to_sse, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
+ .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
+ .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ },
+ .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
+ } },
+ }, .{
+ .required_features = .{ .f16c, null, null, null },
+ .src_constraints = .{
+ .{ .scalar_float = .{ .of = .xword, .is = .word } },
+ .{ .scalar_float = .{ .of = .xword, .is = .word } },
+ .any,
+ },
+ .patterns = &.{
.{ .src = .{ .mem, .mem, .none } },
.{ .src = .{ .to_sse, .mem, .none } },
.{ .src = .{ .mem, .to_sse, .none } },
@@ -9282,6 +10989,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -9311,6 +11020,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -9349,6 +11060,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9388,6 +11101,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9428,6 +11143,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9469,6 +11186,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9545,6 +11264,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9609,6 +11330,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9657,6 +11380,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -9689,6 +11414,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -9758,6 +11485,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9790,6 +11519,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9865,6 +11596,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -9897,6 +11630,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -9934,6 +11669,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -9971,6 +11708,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10011,6 +11750,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10046,6 +11787,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10081,6 +11824,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10115,6 +11860,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10155,6 +11902,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10187,6 +11936,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10225,6 +11976,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10263,6 +12016,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10313,6 +12068,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -10345,6 +12102,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10375,6 +12134,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -10409,6 +12170,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -10440,6 +12203,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -10476,6 +12241,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10511,6 +12278,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10547,6 +12316,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10584,6 +12355,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floorh" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10656,6 +12429,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10716,6 +12491,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10764,6 +12541,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -10796,6 +12575,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -10861,6 +12642,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10889,6 +12672,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -10964,6 +12749,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -10996,6 +12783,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11029,6 +12818,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11062,6 +12853,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11098,6 +12891,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11129,6 +12924,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11165,6 +12962,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11193,6 +12992,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11227,6 +13028,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11261,6 +13064,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11412,6 +13217,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .index = 0 } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11439,6 +13246,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .index = 0 } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11466,6 +13275,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11497,6 +13308,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11527,6 +13340,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11557,6 +13372,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11588,6 +13405,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11618,6 +13437,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11648,6 +13469,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11679,6 +13502,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11710,6 +13535,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11741,6 +13568,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11773,6 +13602,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11805,6 +13636,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -11838,6 +13671,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .index = 0 } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11874,6 +13709,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .index = 0 } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11910,6 +13747,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11944,6 +13783,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -11978,6 +13819,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12005,6 +13848,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12039,6 +13884,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12074,6 +13921,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12110,6 +13959,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12149,6 +14000,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12176,6 +14029,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12209,6 +14064,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12242,6 +14099,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12269,6 +14128,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12302,6 +14163,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12335,6 +14198,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12370,6 +14235,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12401,6 +14268,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12432,6 +14301,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12463,6 +14334,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12499,6 +14372,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12535,6 +14410,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12571,6 +14448,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12598,6 +14477,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12631,6 +14512,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12664,6 +14547,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12713,6 +14598,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12752,6 +14639,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12791,6 +14680,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12827,6 +14718,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12863,6 +14756,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12899,6 +14794,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12935,6 +14832,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -12971,6 +14870,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13007,6 +14908,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .ax } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13053,6 +14956,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .ax } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13099,6 +15004,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .ax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13142,6 +15049,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .ax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13185,6 +15094,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .ax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13228,6 +15139,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .ax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13271,6 +15184,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .ax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13315,6 +15230,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f16, .kind = .{ .reg = .ax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13359,6 +15276,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f32, .kind = .mem },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13406,6 +15325,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f32, .kind = .mem },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13453,6 +15374,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13489,6 +15412,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13525,6 +15450,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13560,6 +15487,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f32, .kind = .{ .reg = .eax } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13602,6 +15531,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f32, .kind = .{ .reg = .eax } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13644,6 +15575,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13684,6 +15617,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13721,6 +15656,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13758,6 +15695,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f64, .kind = .{ .reg = .st7 } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13798,6 +15737,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f64, .kind = .{ .reg = .rdx } },
.{ .type = .f64, .kind = .{ .reg = .rax } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13841,6 +15782,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f64, .kind = .{ .reg = .rdx } },
.{ .type = .f64, .kind = .{ .reg = .rax } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13884,6 +15827,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f64, .kind = .{ .reg = .rax } },
.{ .type = .f64, .kind = .{ .reg = .st6 } },
.{ .type = .f64, .kind = .{ .reg = .st7 } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13931,6 +15876,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -13972,6 +15919,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14013,6 +15962,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14054,6 +16005,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14095,6 +16048,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14136,6 +16091,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14177,6 +16134,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14223,6 +16182,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14269,6 +16230,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14315,6 +16278,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14361,6 +16326,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14407,6 +16374,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14453,6 +16422,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14492,6 +16463,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14531,6 +16504,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14571,6 +16546,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14609,6 +16586,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f128, .kind = .{ .reg = .rax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14653,6 +16632,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f128, .kind = .{ .reg = .rax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14697,6 +16678,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f128, .kind = .{ .reg = .rax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -14742,6 +16725,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f128, .kind = .{ .reg = .rax } },
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -15260,6 +17245,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15295,6 +17282,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15330,6 +17319,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15363,6 +17354,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15468,6 +17461,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15499,6 +17494,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15530,6 +17527,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15561,6 +17560,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15596,6 +17597,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15629,6 +17632,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15662,6 +17667,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15694,6 +17701,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15791,6 +17800,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15822,6 +17833,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15853,6 +17866,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15884,6 +17899,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15917,6 +17934,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15950,6 +17969,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -15982,6 +18003,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16079,6 +18102,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16110,6 +18135,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16141,6 +18168,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16172,6 +18201,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16203,6 +18234,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16301,6 +18334,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16332,6 +18367,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16363,6 +18400,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16394,6 +18433,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16426,6 +18467,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16457,6 +18500,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16558,6 +18603,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16589,6 +18636,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16620,6 +18669,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16651,6 +18702,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16686,6 +18739,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16717,6 +18772,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16784,6 +18841,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -16833,6 +18892,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16864,6 +18925,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16895,6 +18958,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16926,6 +18991,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16967,6 +19034,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -16998,6 +19067,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17048,6 +19119,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -17090,6 +19163,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17123,6 +19198,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17156,6 +19233,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17190,6 +19269,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17222,6 +19303,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17257,6 +19340,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -17289,6 +19374,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -17322,6 +19409,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -17352,6 +19441,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17389,6 +19480,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17426,6 +19519,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17465,6 +19560,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17497,6 +19594,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17526,6 +19625,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17565,6 +19666,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17604,6 +19707,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17641,6 +19746,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17682,6 +19789,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -17713,6 +19822,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -17742,6 +19853,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -17775,6 +19888,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -17805,6 +19920,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -17840,6 +19957,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -17874,6 +19993,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -17909,6 +20030,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -17945,6 +20068,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -17983,6 +20108,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -18027,6 +20154,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -18057,6 +20186,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -18105,6 +20236,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -18135,6 +20268,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -18162,6 +20297,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18196,6 +20333,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18231,6 +20370,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18268,6 +20409,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -18312,6 +20455,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -18343,6 +20488,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -18369,6 +20516,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -18417,6 +20566,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -18447,6 +20598,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -18474,6 +20627,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18508,6 +20663,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18543,6 +20700,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18581,6 +20740,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -18617,6 +20778,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
.clobbers = .{ .eflags = true },
@@ -18652,6 +20815,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
.clobbers = .{ .eflags = true },
@@ -18693,6 +20858,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
.clobbers = .{ .eflags = true },
@@ -18732,6 +20899,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18770,6 +20939,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18814,6 +20985,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -18859,6 +21032,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -18886,6 +21061,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -18919,6 +21096,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -18952,6 +21131,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -19217,6 +21398,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19252,6 +21435,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19287,6 +21472,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19320,6 +21507,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19425,6 +21614,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19456,6 +21647,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19487,6 +21680,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19518,6 +21713,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19553,6 +21750,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19586,6 +21785,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19619,6 +21820,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19651,6 +21854,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19748,6 +21953,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19779,6 +21986,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19810,6 +22019,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19841,6 +22052,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19874,6 +22087,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19907,6 +22122,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -19939,6 +22156,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20036,6 +22255,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20067,6 +22288,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20098,6 +22321,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20129,6 +22354,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20160,6 +22387,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20259,6 +22488,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20290,6 +22521,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20321,6 +22554,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20352,6 +22587,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20385,6 +22622,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20416,6 +22655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20517,6 +22758,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20548,6 +22791,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20579,6 +22824,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20610,6 +22857,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20645,6 +22894,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20676,6 +22927,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20743,6 +22996,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -20792,6 +23047,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20823,6 +23080,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20854,6 +23113,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20885,6 +23146,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20926,6 +23189,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -20957,6 +23222,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21009,6 +23276,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -21053,6 +23322,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21086,6 +23357,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21119,6 +23392,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21153,6 +23428,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21185,6 +23462,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21220,6 +23499,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -21252,6 +23533,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -21285,6 +23568,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -21315,6 +23600,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21352,6 +23639,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21389,6 +23678,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21428,6 +23719,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21460,6 +23753,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21489,6 +23784,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21528,6 +23825,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21567,6 +23866,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21604,6 +23905,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21645,6 +23948,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -21676,6 +23981,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -21705,6 +24012,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -21738,6 +24047,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -21768,6 +24079,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -21803,6 +24116,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -21837,6 +24152,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -21872,6 +24189,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -21908,6 +24227,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -21946,6 +24267,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -21990,6 +24313,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -22020,6 +24345,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -22068,6 +24395,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -22098,6 +24427,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -22125,6 +24456,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22159,6 +24492,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22194,6 +24529,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22231,6 +24568,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -22275,6 +24614,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -22306,6 +24647,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -22332,6 +24675,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -22380,6 +24725,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -22410,6 +24757,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -22437,6 +24786,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22471,6 +24822,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22506,6 +24859,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22544,6 +24899,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -22580,6 +24937,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
.clobbers = .{ .eflags = true },
@@ -22613,6 +24972,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
.clobbers = .{ .eflags = true },
@@ -22652,6 +25013,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
.clobbers = .{ .eflags = true },
@@ -22689,6 +25052,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22725,6 +25090,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22767,6 +25134,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -22810,6 +25179,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -22837,6 +25208,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -22870,6 +25243,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -22903,6 +25278,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -23122,6 +25499,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23149,6 +25528,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23176,6 +25557,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23203,6 +25586,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23230,6 +25615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23257,6 +25644,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23283,6 +25672,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23424,6 +25815,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -23458,6 +25851,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -23492,6 +25887,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -23514,6 +25911,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -23548,6 +25947,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -23582,6 +25983,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -23604,6 +26007,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23633,6 +26038,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23660,6 +26067,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23689,6 +26098,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23716,6 +26127,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23743,6 +26156,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23771,6 +26186,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -23797,6 +26214,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23824,6 +26243,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -23851,6 +26272,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23883,6 +26306,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -23910,6 +26335,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23938,6 +26365,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -23964,6 +26393,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -23995,6 +26426,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -24022,6 +26455,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -24054,6 +26489,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -24080,6 +26517,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -24111,6 +26550,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -24139,6 +26580,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -24170,6 +26613,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -24197,6 +26642,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -24239,6 +26686,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -24273,6 +26722,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -24307,6 +26758,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -24329,6 +26782,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -24363,6 +26818,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -24397,6 +26854,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -24418,6 +26877,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -24444,6 +26905,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -24785,6 +27248,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -24812,6 +27277,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -24840,6 +27307,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -24869,6 +27338,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -24930,6 +27401,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -24959,6 +27432,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -24986,6 +27461,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25011,6 +27488,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25037,6 +27516,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25064,6 +27545,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25192,6 +27675,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25218,6 +27703,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25345,6 +27832,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25371,6 +27860,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25411,6 +27902,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25469,6 +27962,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25527,6 +28022,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25555,6 +28052,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25580,6 +28079,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25610,6 +28111,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25639,6 +28142,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25670,6 +28175,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25700,6 +28207,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25730,6 +28239,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25759,6 +28270,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25790,6 +28303,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25820,6 +28335,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -25833,18 +28350,406 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
- .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
- .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
+ .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .lzcnt, null, null },
+ .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"0:", ._, .@"and", .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._, .lzcnt, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
+ .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"0:", ._, .@"and", .dst0q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._r, .bs, .dst0q, .dst0q, ._, ._ },
+ .{ ._, ._nz, .j, .@"0f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
+ .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
+ .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
+ .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"0:", ._, .xor, .dst0d, .dst0d, ._, ._ },
+ .{ ._, ._, .@"and", .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._, .lzcnt, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
+ .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .lzcnt, null, null },
+ .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"0:", ._, .@"and", .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._, .lzcnt, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
+ .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
+ .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"0:", ._, .@"and", .dst0q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._r, .bs, .dst0q, .dst0q, ._, ._ },
+ .{ ._, ._nz, .j, .@"0f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
+ .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
+ .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .lzcnt, .slow_incdec, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .lzcnt, null, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .lzcnt, .slow_incdec, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .lzcnt, null, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .lzcnt, .slow_incdec, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .lzcnt, null, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .lzcnt, .slow_incdec, null },
+ .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp1q, .tmp1q, ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .sia(64, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .@"64bit", .lzcnt, null, null },
- .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
@@ -25853,31 +28758,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
- .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },
- .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"0:", ._, .@"and", .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
- .{ ._, ._, .lzcnt, .dst0q, .tmp1q, ._, ._ },
- .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
- .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
- .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp1q, .tmp1q, ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .sia(64, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", null, null, null },
- .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, .slow_incdec, null },
+ .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .unused,
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
@@ -25886,30 +28792,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },
- .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"0:", ._, .@"and", .dst0q, .memi(.src0q, .tmp0), ._, ._ },
- .{ ._, ._r, .bs, .dst0q, .dst0q, ._, ._ },
- .{ ._, ._nz, .j, .@"0f", ._, ._, ._ },
- .{ ._, ._, .mov, .dst0q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
+ .{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
- .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
- .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
- .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
@@ -25918,31 +28826,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
- .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"0:", ._, .xor, .dst0d, .dst0d, ._, ._ },
- .{ ._, ._, .@"and", .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
- .{ ._, ._, .lzcnt, .dst0q, .tmp1q, ._, ._ },
- .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
- .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
- .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
+ .{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .lzcnt, null, null },
- .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .required_features = .{ .bsf_bsr_0_clobbers_result, .slow_incdec, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -25951,28 +28860,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
- .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"0:", ._, .@"and", .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
- .{ ._, ._, .lzcnt, .dst0q, .tmp1q, ._, ._ },
- .{ ._, ._nc, .j, .@"0f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp1q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
+ .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._c, .st, ._, ._, ._, ._ },
+ .{ ._, ._, .sbb, .tmp2b, .tmp1b, ._, ._ },
+ .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp2b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
- .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ },
- .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", null, null, null },
- .src_constraints = .{ .{ .remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .required_features = .{ .bsf_bsr_0_clobbers_result, null, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
@@ -25983,23 +28894,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
- .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"0:", ._, .@"and", .dst0q, .memi(.src0q, .tmp0), ._, ._ },
- .{ ._, ._r, .bs, .dst0q, .dst0q, ._, ._ },
- .{ ._, ._nz, .j, .@"0f", ._, ._, ._ },
- .{ ._, ._, .mov, .dst0q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
- .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ },
- .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
+ .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._c, .st, ._, ._, ._, ._ },
+ .{ ._, ._, .sbb, .tmp2b, .tmp1b, ._, ._ },
+ .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp2b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .lzcnt, .slow_incdec, null, null },
+ .required_features = .{ .slow_incdec, null, null, null },
.src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
@@ -26007,6 +28918,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26021,14 +28934,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
.{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
.{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
.{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .lzcnt, null, null, null },
.src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
@@ -26036,6 +28950,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26050,14 +28966,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
.{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
.{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
.{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
.{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
.{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .lzcnt, .slow_incdec, null, null },
+ .required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, .slow_incdec, null },
.src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
@@ -26065,6 +28983,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
@@ -26077,16 +28997,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp2d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
+ .{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .lzcnt, null, null, null },
+ .required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, null, null },
.src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
@@ -26094,6 +29017,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
@@ -26106,23 +29031,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp2d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
+ .{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
.{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
.{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .lzcnt, .slow_incdec, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .required_features = .{ .bsf_bsr_0_clobbers_result, .slow_incdec, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26135,23 +29065,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
.{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
+ .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._c, .st, ._, ._, ._, ._ },
+ .{ ._, ._, .sbb, .tmp2b, .tmp1b, ._, ._ },
+ .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp2b, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .lzcnt, null, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .required_features = .{ .bsf_bsr_0_clobbers_result, null, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26164,23 +29099,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
.{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp1d, .tmp1d, ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .sia(32, .src0, .sub_bit_size), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
+ .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._c, .st, ._, ._, ._, ._ },
+ .{ ._, ._, .sbb, .tmp2b, .tmp1b, ._, ._ },
+ .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp2b, ._, ._ },
.{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
.{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .lzcnt, .slow_incdec, null },
- .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .required_features = .{ .slow_incdec, null, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26193,23 +29133,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp1q, .tmp1q, ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .sia(64, .src0, .sub_bit_size), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
.{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .lzcnt, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26222,17 +29165,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp1q, .tmp1q, ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .sia(64, .src0, .sub_bit_size), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
.{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
.{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
.{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, .slow_incdec, null },
- .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
+ .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -26246,13 +29191,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
.{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
.{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
.{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
.{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
@@ -26264,7 +29211,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
}, .{
.required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
+ .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -26278,13 +29225,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
.{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
.{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
.{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
.{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
@@ -26296,7 +29245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
}, .{
.required_features = .{ .bsf_bsr_0_clobbers_result, .slow_incdec, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
+ .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -26310,12 +29259,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
.{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
.{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
.{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
@@ -26328,7 +29279,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
}, .{
.required_features = .{ .bsf_bsr_0_clobbers_result, null, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
+ .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -26342,12 +29293,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
.{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
.{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
.{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
@@ -26360,7 +29313,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
}, .{
.required_features = .{ .slow_incdec, null, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
+ .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -26374,12 +29327,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
.{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
.{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
.{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
@@ -26390,7 +29345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .src_constraints = .{ .{ .scalar_int_is = .byte }, .any, .any },
+ .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -26404,12 +29359,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
.{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
.{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
.{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
@@ -26420,30 +29377,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, .slow_incdec, null },
- .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
+ .required_features = .{ .@"64bit", .cmov, .bsf_bsr_0_clobbers_result, .slow_incdec },
+ .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u8, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
.{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp2d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp2q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2q, .tmp2q, ._, ._ },
.{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
.{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
.{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
@@ -26452,30 +29411,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
+ .required_features = .{ .@"64bit", .cmov, .bsf_bsr_0_clobbers_result, null },
+ .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u8, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
.{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp2d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp2q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2q, .tmp2q, ._, ._ },
.{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
.{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
.{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
@@ -26484,15 +29445,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .bsf_bsr_0_clobbers_result, .slow_incdec, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
+ .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, .slow_incdec, null },
+ .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -26504,9 +29467,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
+ .{ ._, ._r, .bs, .tmp1q, .tmp1q, ._, ._ },
.{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
.{ ._, ._z, .j, .@"1f", ._, ._, ._ },
.{ ._, ._c, .st, ._, ._, ._, ._ },
@@ -26516,15 +29479,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .bsf_bsr_0_clobbers_result, null, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
+ .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -26536,9 +29501,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
+ .{ ._, ._r, .bs, .tmp1q, .tmp1q, ._, ._ },
.{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
.{ ._, ._z, .j, .@"1f", ._, ._, ._ },
.{ ._, ._c, .st, ._, ._, ._, ._ },
@@ -26548,8 +29513,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .slow_incdec, null, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
+ .required_features = .{ .@"64bit", .slow_incdec, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
+ .{ ._, ._r, .bs, .tmp2q, .tmp1q, ._, ._ },
+ .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -26563,30 +29561,119 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
.{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
- .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
+ .{ ._, ._r, .bs, .tmp2q, .tmp1q, ._, ._ },
.{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
.{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
.{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .src_constraints = .{ .{ .scalar_int_is = .word }, .any, .any },
+ .required_features = .{ .@"64bit", .lzcnt, null, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26598,27 +29685,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_2_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
- .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
- .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
- .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
+ .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
+ .{ ._, ._, .neg, .tmp3b, ._, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, .slow_incdec, null },
- .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26629,28 +29726,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
- .{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
.{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .cmov, .bsf_bsr_0_clobbers_result, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .required_features = .{ .@"64bit", .lzcnt, null, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26661,27 +29768,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp2d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._r, .bs, .tmp2d, .tmp2d, ._, ._ },
- .{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
.{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
- .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
- .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .bsf_bsr_0_clobbers_result, .slow_incdec, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26693,27 +29809,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
- .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._c, .st, ._, ._, ._, ._ },
- .{ ._, ._, .sbb, .tmp2b, .tmp1b, ._, ._ },
- .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp2b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
+ .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
+ .{ ._, ._, .neg, .tmp3b, ._, ._, ._ },
+ .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .bsf_bsr_0_clobbers_result, null, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
@@ -26725,27 +29850,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._r, .bs, .tmp1d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
- .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._c, .st, ._, ._, ._, ._ },
- .{ ._, ._, .sbb, .tmp2b, .tmp1b, ._, ._ },
- .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp2b, ._, ._ },
- .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
- .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .slow_incdec, null, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .required_features = .{ .@"64bit", .lzcnt, null, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
@@ -26757,25 +29892,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
- .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .src_constraints = .{ .{ .scalar_int_is = .dword }, .any, .any },
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26787,27 +29933,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_4_len), ._, ._ },
- .{ ._, ._, .@"and", .tmp1d, .sa(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
- .{ ._, ._r, .bs, .tmp2d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
- .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
- .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
+ .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
+ .{ ._, ._, .neg, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .cmov, .bsf_bsr_0_clobbers_result, .slow_incdec },
- .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26818,28 +29974,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .@"and", .tmp2q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
- .{ ._, ._r, .bs, .tmp2q, .tmp2q, ._, ._ },
- .{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .cmov, .bsf_bsr_0_clobbers_result, null },
- .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .required_features = .{ .@"64bit", .lzcnt, null, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -26850,26 +30016,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .mov, .tmp1d, .si(0xff), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .@"and", .tmp2q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
- .{ ._, ._r, .bs, .tmp2q, .tmp2q, ._, ._ },
- .{ ._, ._z, .cmov, .tmp2d, .tmp1d, ._, ._ },
- .{ ._, ._, .mov, .tmp3b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp3b, .tmp2b, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
- .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
- .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
+ .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
+ .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, .slow_incdec, null },
- .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
@@ -26877,64 +30051,216 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
- .{ ._, ._r, .bs, .tmp1q, .tmp1q, ._, ._ },
- .{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
- .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._c, .st, ._, ._, ._, ._ },
- .{ ._, ._, .sbb, .tmp2b, .tmp1b, ._, ._ },
- .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp2b, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
+ .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
+ .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
+ .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
+ .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
+ .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
+ .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
+ .{ ._, ._, .neg, .tmp3d, ._, ._, ._ },
+ .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
+ .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
.{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
.{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
} },
+ } }) catch |err| switch (err) {
+ error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{
+ @tagName(air_tag),
+ cg.typeOf(ty_op.operand).fmt(pt),
+ ops[0].tracking(cg),
+ }),
+ else => |e| return e,
+ };
+ try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
+ },
+ .byte_swap => |air_tag| if (use_old) try cg.airByteSwap(inst) else fallback: {
+ const ty_op = air_datas[@intFromEnum(inst)].ty_op;
+ if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airByteSwap(inst);
+ var ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
+ var res: [1]Temp = undefined;
+ cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{
+ .src_constraints = .{ .{ .exact_int = 8 }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mut_mem, .none, .none } },
+ .{ .src = .{ .to_mut_gpr, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{} },
}, .{
- .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .required_features = .{ .movbe, null, null, null },
+ .src_constraints = .{ .{ .exact_int = 16 }, .any, .any },
.patterns = &.{
- .{ .src = .{ .to_mem, .none, .none } },
+ .{ .src = .{ .mem, .none, .none } },
},
- .extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
- .unused,
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ },
+ .{ ._, ._, .movbe, .dst0w, .src0w, ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .exact_int = 16 }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none, .none } },
},
- .dst_temps = .{ .mem, .unused },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
- .{ ._, ._r, .bs, .tmp1q, .tmp1q, ._, ._ },
- .{ ._, ._, .mov, .tmp2b, .sa(.src0, .add_bit_size), ._, ._ },
- .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._c, .st, ._, ._, ._, ._ },
- .{ ._, ._, .sbb, .tmp2b, .tmp1b, ._, ._ },
- .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp2b, ._, ._ },
- .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
- .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._r, .ro, .dst0w, .ui(8), ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .slow_incdec, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .required_features = .{ .movbe, null, null, null },
+ .src_constraints = .{ .{ .exact_int = 32 }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .exact_int = 32 }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .bswap, .dst0d, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .movbe, null, null, null },
+ .src_constraints = .{ .{ .signed_int = .dword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ },
+ .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .signed_int = .dword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .bswap, .dst0d, ._, ._, ._ },
+ .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .movbe, null, null, null },
+ .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ },
+ .{ ._, ._r, .sh, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .bswap, .dst0d, ._, ._, ._ },
+ .{ ._, ._r, .sh, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .movbe, null, null, null },
+ .src_constraints = .{ .{ .exact_int = 64 }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .exact_int = 64 }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .movbe, null, null, null },
+ .src_constraints = .{ .{ .signed_int = .qword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ },
+ .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .signed_int = .qword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },
+ .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .movbe, null, null, null },
+ .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ },
+ .{ ._, ._r, .sh, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },
+ .{ ._, ._r, .sh, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .movbe, null, null },
+ .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -26945,27 +30271,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
- .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
- .{ ._, ._r, .bs, .tmp2q, .tmp1q, ._, ._ },
- .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .@"64bit", null, null, null },
- .src_constraints = .{ .{ .scalar_int_is = .qword }, .any, .any },
+ .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .isize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -26976,188 +30301,159 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ },
- .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_8_len), ._, ._ },
- .{ ._, ._, .mov, .tmp2d, .si(0xff), ._, ._ },
- .{ ._, ._r, .bs, .tmp2q, .tmp1q, ._, ._ },
- .{ ._, ._, .mov, .tmp1b, .sia(-1, .src0, .add_bit_size), ._, ._ },
- .{ ._, ._, .sub, .tmp1b, .tmp2b, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp1b, ._, ._ },
- .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
- .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
+ .required_features = .{ .@"64bit", .movbe, null, null },
+ .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
- .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
- .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
- .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
+ .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .lzcnt, null, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
- .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
- .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
+ .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", null, null, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
+ .required_features = .{ .@"64bit", .movbe, null, null },
+ .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
- .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
- .{ ._, ._, .neg, .tmp3b, ._, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
- .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
- .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
- .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .lzcnt, null, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
+ .required_features = .{ .@"64bit", .movbe, null, null },
+ .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -27166,116 +30462,106 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
- .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
- .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
+ .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
+ .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
+ .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .@"64bit", null, null, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any },
+ .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
.unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
- .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
- .{ ._, ._, .neg, .tmp3b, ._, ._, ._ },
- .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
+ .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
+ .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
+ .required_features = .{ .@"64bit", .movbe, null, null },
+ .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
- .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
- .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
.{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
- .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
- .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
+ .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
+ .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .lzcnt, null, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -27284,36 +30570,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
- .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
.{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
- .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
- .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
+ .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", null, null, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
+ .required_features = .{ .@"64bit", .movbe, null, null },
+ .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
.unused,
.unused,
.unused,
@@ -27323,37 +30606,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
- .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
- .{ ._, ._, .neg, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
+ .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
+ .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
+ .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
.unused,
.unused,
.unused,
@@ -27362,107 +30641,93 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
- .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
- .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
- .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
- .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
- .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
+ .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
+ .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
- .required_features = .{ .@"64bit", .lzcnt, null, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
+ .required_features = .{ .@"64bit", .movbe, null, null },
+ .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ },
- .{ ._, ._nc, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
.{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ },
- .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ },
- .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
+ .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
}, .{
.required_features = .{ .@"64bit", null, null, null },
- .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any },
- .dst_constraints = .{ .{ .scalar_int_is = .word }, .any },
+ .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
- .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.{ .type = .u64, .kind = .{ .rc = .general_purpose } },
.unused,
.unused,
.unused,
.unused,
.unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
.each = .{ .once = &.{
- .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ },
- .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ },
- .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ },
- .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ },
- .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
- .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ },
- .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ },
- .{ ._, ._nc, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
.{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
- .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ },
- .{ ._, ._, .neg, .tmp3d, ._, ._, ._ },
- .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ },
- .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ },
- .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
- .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
+ .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
+ .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
+ .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
+ .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
} },
} }) catch |err| switch (err) {
error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{
@tagName(air_tag),
- cg.typeOf(ty_op.operand).fmt(pt),
+ ty_op.ty.toType().fmt(pt),
ops[0].tracking(cg),
}),
else => |e| return e,
@@ -27513,6 +30778,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc_mask = .{
.ref = .src0,
@@ -27551,6 +30818,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc_mask = .{
.ref = .src0,
@@ -27589,6 +30858,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc_mask = .{
.ref = .src0,
@@ -27982,6 +31253,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28021,6 +31294,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28062,6 +31337,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28104,6 +31381,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28146,6 +31425,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28189,6 +31470,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28232,6 +31515,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.{ .type = .f32, .kind = .mem },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28277,6 +31562,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.{ .type = .f32, .kind = .mem },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28321,6 +31608,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28372,6 +31661,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28423,6 +31714,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28475,6 +31768,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28527,6 +31822,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.{ .type = .f32, .kind = .mem },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28581,6 +31878,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.{ .type = .f32, .kind = .mem },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -28634,6 +31933,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28672,6 +31973,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28710,6 +32013,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28756,6 +32061,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28803,6 +32110,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28852,6 +32161,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28899,6 +32210,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28946,6 +32259,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -28996,6 +32311,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -29046,6 +32363,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -29099,6 +32418,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -29152,6 +32473,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .ah } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -29210,6 +32533,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -29263,6 +32588,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -29316,6 +32643,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .ah } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -29376,6 +32705,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29418,6 +32749,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29460,6 +32793,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29502,6 +32837,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29544,6 +32881,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29586,6 +32925,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29627,6 +32968,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29678,6 +33021,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29729,6 +33074,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29780,6 +33127,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29831,6 +33180,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -29882,6 +33233,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -30037,6 +33390,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30436,6 +33791,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30481,6 +33838,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30528,6 +33887,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30573,6 +33934,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30642,6 +34005,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30687,6 +34052,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30734,6 +34101,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30803,6 +34172,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30872,6 +34243,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30917,6 +34290,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -30964,6 +34339,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31033,6 +34410,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31102,6 +34481,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31147,6 +34528,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31220,6 +34603,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31295,6 +34680,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31327,6 +34714,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31359,6 +34748,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31392,6 +34783,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31424,6 +34817,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31463,6 +34858,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31496,6 +34893,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31529,6 +34928,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31563,6 +34964,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31596,6 +34999,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31637,6 +35042,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31671,6 +35078,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31704,6 +35113,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31738,6 +35149,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31772,6 +35185,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -31811,6 +35226,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31853,6 +35270,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31895,6 +35314,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31938,6 +35359,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -31985,6 +35408,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc_mask = .{
.ref = .src0,
@@ -32023,6 +35448,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc_mask = .{
.ref = .src0,
@@ -32061,6 +35488,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc_mask = .{
.ref = .src0,
@@ -32332,6 +35761,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -32371,6 +35802,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -32412,6 +35845,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32454,6 +35889,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32496,6 +35933,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32539,6 +35978,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32582,6 +36023,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.{ .type = .f32, .kind = .mem },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32627,6 +36070,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .edx } },
.{ .type = .f32, .kind = .mem },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32671,6 +36116,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32722,6 +36169,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32773,6 +36222,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32825,6 +36276,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32877,6 +36330,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.{ .type = .f32, .kind = .mem },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32931,6 +36386,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
.{ .type = .f32, .kind = .mem },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -32984,6 +36441,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33022,6 +36481,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33060,6 +36521,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33106,6 +36569,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33153,6 +36618,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33202,6 +36669,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33249,6 +36718,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33296,6 +36767,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33346,6 +36819,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33396,6 +36871,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f64, .kind = .{ .reg = .st7 } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33456,6 +36933,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f64, .kind = .{ .reg = .st7 } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33516,6 +36995,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .ah } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33567,6 +37048,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f80, .kind = .{ .reg = .st7 } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33627,6 +37110,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f80, .kind = .{ .reg = .st7 } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33687,6 +37172,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .ah } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -33740,6 +37227,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -33782,6 +37271,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -33824,6 +37315,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -33866,6 +37359,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -33908,6 +37403,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -33950,6 +37447,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u32, .kind = .{ .reg = .edx } },
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -33991,6 +37490,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34042,6 +37543,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34093,6 +37596,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34144,6 +37649,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34195,6 +37702,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34246,6 +37755,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .i32, .kind = .{ .reg = .eax } },
.{ .type = .u8, .kind = .{ .reg = .cl } },
.{ .type = .u64, .kind = .{ .reg = .rdx } },
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34324,6 +37835,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34372,6 +37885,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -34400,6 +37915,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34429,6 +37946,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34458,6 +37977,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34488,6 +38009,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34562,6 +38085,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34617,6 +38142,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -34643,6 +38170,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -34670,6 +38199,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34698,6 +38229,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34768,6 +38301,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34823,6 +38358,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -34849,6 +38386,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -34876,6 +38415,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34904,6 +38445,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34932,6 +38475,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -34961,6 +38506,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused },
.each = .{ .once = &.{
@@ -34984,6 +38531,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -35012,6 +38561,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35035,6 +38586,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35063,6 +38616,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35091,6 +38646,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35135,6 +38692,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35158,6 +38717,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35187,6 +38748,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35216,6 +38779,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35246,6 +38811,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35278,6 +38845,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35301,6 +38870,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35329,6 +38900,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35357,6 +38930,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35380,6 +38955,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35408,6 +38985,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35436,6 +39015,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35465,6 +39046,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35490,6 +39073,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35515,6 +39100,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35540,6 +39127,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35570,6 +39159,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35600,6 +39191,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35630,6 +39223,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35653,6 +39248,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35681,6 +39278,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35709,6 +39308,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -35916,6 +39517,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36081,6 +39684,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36107,6 +39712,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36133,6 +39740,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36159,6 +39768,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36185,6 +39796,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36211,6 +39824,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36237,6 +39852,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36263,6 +39880,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36289,6 +39908,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36315,6 +39936,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36341,6 +39964,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36367,6 +39992,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36393,6 +40020,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36422,6 +40051,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36451,6 +40082,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36479,6 +40112,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36508,6 +40143,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36535,6 +40172,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36564,6 +40203,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36591,6 +40232,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36620,6 +40263,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36648,6 +40293,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36677,6 +40324,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -36714,6 +40363,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -36736,6 +40387,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -36758,6 +40411,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -36780,6 +40435,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -36802,6 +40459,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -36824,6 +40483,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -36847,6 +40508,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused },
.each = .{ .once = &.{
@@ -36870,6 +40533,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -36892,6 +40557,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -36914,6 +40581,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -36936,6 +40605,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -36958,6 +40629,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -36980,6 +40653,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -37007,6 +40682,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -37035,6 +40712,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -37062,6 +40741,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -37090,6 +40771,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -37117,6 +40800,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -37144,6 +40829,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -37172,6 +40859,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -37244,6 +40933,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37292,6 +40983,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -37325,6 +41018,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37359,6 +41054,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37393,6 +41090,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37428,6 +41127,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37507,6 +41208,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37562,6 +41265,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -37591,6 +41296,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -37626,6 +41333,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37659,6 +41368,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37734,6 +41445,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37789,6 +41502,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -37818,6 +41533,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -37853,6 +41570,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37886,6 +41605,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37919,6 +41640,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37953,6 +41676,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -37983,6 +41708,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38013,6 +41740,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38043,6 +41772,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38078,6 +41809,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38113,6 +41846,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38148,6 +41883,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38176,6 +41913,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38209,6 +41948,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38242,6 +41983,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -38284,6 +42027,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -38306,6 +42051,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -38328,6 +42075,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -38350,6 +42099,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -38372,6 +42123,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -38394,6 +42147,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -38417,6 +42172,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused },
.each = .{ .once = &.{
@@ -38440,6 +42197,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -38462,6 +42221,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -38484,6 +42245,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -38506,6 +42269,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -38528,6 +42293,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -38550,6 +42317,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -38577,6 +42346,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -38605,6 +42376,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -38632,6 +42405,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -38660,6 +42435,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -38687,6 +42464,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -38714,6 +42493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -38742,6 +42523,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -38805,6 +42588,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .a,
@@ -38833,6 +42618,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .l,
@@ -38919,6 +42706,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .a,
@@ -38947,6 +42736,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .a,
@@ -38976,6 +42767,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .z,
@@ -39009,6 +42802,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .a,
@@ -39035,6 +42830,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .a,
@@ -39065,6 +42862,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .a,
@@ -39093,6 +42892,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .z,
@@ -39126,6 +42927,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .z,
@@ -39158,6 +42961,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (strict) {
true => .l,
@@ -39287,6 +43092,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z_and_np,
@@ -39315,6 +43122,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -39402,6 +43211,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z_and_np,
@@ -39430,6 +43241,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z_and_np,
@@ -39459,6 +43272,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z,
@@ -39500,6 +43315,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z_and_np,
@@ -39526,6 +43343,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z_and_np,
@@ -39557,6 +43376,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z_and_np,
@@ -39585,6 +43406,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z,
@@ -39626,6 +43449,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = switch (optimized) {
false => .z,
@@ -39664,6 +43489,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40048,6 +43875,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40071,6 +43900,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -40099,6 +43930,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40128,6 +43961,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40157,6 +43992,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40187,6 +44024,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40218,6 +44057,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40242,6 +44083,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40271,6 +44114,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40300,6 +44145,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40330,6 +44177,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40397,6 +44246,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -40456,6 +44307,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -40483,6 +44336,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -40510,6 +44365,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -40538,6 +44395,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40564,6 +44423,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40590,6 +44451,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40616,6 +44479,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40646,6 +44511,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40676,6 +44543,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40707,6 +44576,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40739,6 +44610,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -40762,6 +44635,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -40790,6 +44665,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -40813,6 +44690,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -40841,6 +44720,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40865,6 +44746,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40894,6 +44777,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40923,6 +44808,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40953,6 +44840,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -40984,6 +44873,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41008,6 +44899,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41037,6 +44930,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41066,6 +44961,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41095,6 +44992,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41119,6 +45018,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41148,6 +45049,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41177,6 +45080,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41206,6 +45111,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41230,6 +45137,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41260,6 +45169,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41290,6 +45201,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41370,6 +45283,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41393,6 +45308,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -41421,6 +45338,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41451,6 +45370,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41481,6 +45402,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41550,6 +45473,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -41578,6 +45503,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41601,6 +45528,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -41633,6 +45562,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41663,6 +45594,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41693,6 +45626,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41723,6 +45658,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -41749,6 +45686,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41773,6 +45712,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41804,6 +45745,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41835,6 +45778,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41867,6 +45812,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41891,6 +45838,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41921,6 +45870,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -41951,6 +45902,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42017,6 +45970,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -42076,6 +46031,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -42103,6 +46060,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -42130,6 +46089,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -42157,6 +46118,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -42180,6 +46143,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -42208,6 +46173,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42232,6 +46199,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42261,6 +46230,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42290,6 +46261,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42318,6 +46291,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -42341,6 +46316,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -42369,6 +46346,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42393,6 +46372,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42422,6 +46403,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42451,6 +46434,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42481,6 +46466,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42507,6 +46494,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42533,6 +46522,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42559,6 +46550,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42589,6 +46582,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42619,6 +46614,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -42718,6 +46715,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -42747,6 +46746,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{} },
}, .{
+ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{} },
+ }, .{
.required_features = .{ .avx, null, null, null },
.src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
.dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any },
@@ -42829,6 +46836,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -42855,6 +46864,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -42954,6 +46965,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -42980,6 +46993,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43007,6 +47022,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43033,6 +47050,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43060,6 +47079,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43088,6 +47109,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43121,6 +47144,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{} },
}, .{
+ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any },
+ .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{} },
+ }, .{
.required_features = .{ .avx, null, null, null },
.src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
.dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any },
@@ -43202,6 +47233,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43228,6 +47261,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43254,6 +47289,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43280,6 +47317,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43313,6 +47352,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{} },
}, .{
+ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any },
+ .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{} },
+ }, .{
.required_features = .{ .avx, null, null, null },
.src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
.dst_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any },
@@ -43352,6 +47399,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43378,6 +47427,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43404,6 +47455,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43430,6 +47483,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43463,6 +47518,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{} },
}, .{
+ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{} },
+ }, .{
.required_features = .{ .@"64bit", null, null, null },
.src_constraints = .{ .any_scalar_int, .any, .any },
.dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any },
@@ -43479,6 +47542,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43512,6 +47577,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{} },
}, .{
+ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any },
+ .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_mem, .none, .none } },
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{} },
+ }, .{
.required_features = .{ .avx, null, null, null },
.src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
.dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .yword } }, .any },
@@ -43538,6 +47611,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43568,6 +47643,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43645,6 +47722,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43674,6 +47753,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43702,6 +47783,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43730,6 +47813,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43805,6 +47890,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43834,6 +47921,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43862,6 +47951,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43890,6 +47981,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43943,6 +48036,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -43972,6 +48067,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44000,6 +48097,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44028,6 +48127,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44057,6 +48158,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44086,6 +48189,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44114,6 +48219,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44145,6 +48252,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44222,6 +48331,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -44246,6 +48357,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -44293,6 +48406,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44320,6 +48435,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44347,6 +48464,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44374,6 +48493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44401,6 +48522,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44428,6 +48551,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44455,6 +48580,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44481,6 +48608,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44508,6 +48637,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44534,6 +48665,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44609,6 +48742,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -44635,6 +48770,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -44683,6 +48820,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44710,6 +48849,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44737,6 +48878,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44764,6 +48907,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44791,6 +48936,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44818,6 +48965,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44845,6 +48994,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44871,6 +49022,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44898,6 +49051,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44924,6 +49079,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -44999,6 +49156,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -45027,6 +49186,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -45076,6 +49237,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45103,6 +49266,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45130,6 +49295,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45157,6 +49324,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45184,6 +49353,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45211,6 +49382,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45238,6 +49411,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45265,6 +49440,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45292,6 +49469,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45318,6 +49497,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45397,6 +49578,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -45427,6 +49610,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -45453,6 +49638,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45484,6 +49671,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45515,6 +49704,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45546,6 +49737,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45625,6 +49818,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -45649,6 +49844,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -45696,6 +49893,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45723,6 +49922,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45750,6 +49951,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45777,6 +49980,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45804,6 +50009,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45831,6 +50038,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45857,6 +50066,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45883,6 +50094,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -45958,6 +50171,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -45984,6 +50199,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -46032,6 +50249,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46059,6 +50278,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46086,6 +50307,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46113,6 +50336,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46140,6 +50365,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46167,6 +50394,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46194,6 +50423,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46221,6 +50452,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46300,6 +50533,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -46328,6 +50563,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -46353,6 +50590,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46384,6 +50623,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46463,6 +50704,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -46487,6 +50730,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -46534,6 +50779,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46561,6 +50808,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46588,6 +50837,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46615,6 +50866,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46642,6 +50895,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46669,6 +50924,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46696,6 +50953,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46723,6 +50982,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46802,6 +51063,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -46828,6 +51091,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -46852,6 +51117,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46883,6 +51150,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46914,6 +51183,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46948,6 +51219,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -46982,6 +51255,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47014,6 +51289,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47361,6 +51638,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -47386,6 +51665,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47416,6 +51697,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47448,6 +51731,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47478,6 +51763,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -47504,6 +51791,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47534,6 +51823,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47563,6 +51854,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47593,6 +51886,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47622,6 +51917,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -47648,6 +51945,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -47671,6 +51970,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -47697,6 +51998,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -47720,6 +52023,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -47743,6 +52048,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -47769,6 +52076,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -47792,6 +52101,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47825,6 +52136,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47854,6 +52167,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47887,6 +52202,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47916,6 +52233,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47950,6 +52269,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -47980,6 +52301,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48010,6 +52333,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48038,6 +52363,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48067,6 +52394,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48095,6 +52424,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48124,6 +52455,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48151,6 +52484,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48179,6 +52514,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48205,6 +52542,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48232,6 +52571,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48260,6 +52601,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48289,6 +52632,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48316,6 +52661,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48344,6 +52691,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48370,6 +52719,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48397,6 +52748,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48425,6 +52778,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48454,6 +52809,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48482,6 +52839,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48510,6 +52869,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48537,6 +52898,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48565,6 +52928,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48591,6 +52956,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48618,6 +52985,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48646,6 +53015,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48675,6 +53046,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48703,6 +53076,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48731,6 +53106,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48758,6 +53135,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48786,6 +53165,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48814,6 +53195,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48843,6 +53226,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48873,6 +53258,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48904,6 +53291,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48934,6 +53323,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48964,6 +53355,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -48993,6 +53386,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49035,6 +53430,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -49070,6 +53467,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -49093,6 +53492,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -49128,6 +53529,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -49151,6 +53554,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49180,6 +53585,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49209,6 +53616,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49238,6 +53647,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49267,6 +53678,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49296,6 +53709,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49326,6 +53741,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49355,6 +53772,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49381,6 +53800,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49410,6 +53831,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49437,6 +53860,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49464,6 +53889,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49490,6 +53917,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49519,6 +53948,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49547,6 +53978,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49574,6 +54007,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49601,6 +54036,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49627,6 +54064,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49656,6 +54095,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49684,6 +54125,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49711,6 +54154,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49738,6 +54183,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49764,6 +54211,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49793,6 +54242,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49821,6 +54272,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49848,6 +54301,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49875,6 +54330,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49903,6 +54360,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49934,6 +54393,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49964,6 +54425,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -49993,6 +54456,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50035,6 +54500,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -50070,6 +54537,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -50093,6 +54562,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -50128,6 +54599,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -50151,6 +54624,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50180,6 +54655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50209,6 +54686,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50238,6 +54717,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50267,6 +54748,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50296,6 +54779,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50326,6 +54811,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50355,6 +54842,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50381,6 +54870,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50410,6 +54901,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50437,6 +54930,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50464,6 +54959,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50490,6 +54987,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50519,6 +55018,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50546,6 +55047,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50573,6 +55076,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50599,6 +55104,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50628,6 +55135,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50655,6 +55164,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50682,6 +55193,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50708,6 +55221,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50737,6 +55252,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50764,6 +55281,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50791,6 +55310,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50819,6 +55340,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50850,6 +55373,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50879,6 +55404,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -50909,6 +55436,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -50935,6 +55464,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -50958,6 +55489,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -50984,6 +55517,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -51007,6 +55542,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
@@ -51030,6 +55567,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -51056,6 +55595,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -51079,6 +55620,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51112,6 +55655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51141,6 +55686,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51174,6 +55721,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51203,6 +55752,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51237,6 +55788,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51267,6 +55820,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51297,6 +55852,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51324,6 +55881,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51353,6 +55912,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51381,6 +55942,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51409,6 +55972,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51436,6 +56001,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51465,6 +56032,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51493,6 +56062,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51521,6 +56092,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51548,6 +56121,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51577,6 +56152,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51605,6 +56182,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51633,6 +56212,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51662,6 +56243,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51693,6 +56276,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51723,6 +56308,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51753,6 +56340,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51783,6 +56372,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51813,6 +56404,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51848,6 +56441,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51883,6 +56478,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51920,6 +56517,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51957,6 +56556,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -51991,6 +56592,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52025,6 +56628,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52057,6 +56662,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52089,6 +56696,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52124,6 +56733,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52159,6 +56770,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52192,6 +56805,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52225,6 +56840,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52260,6 +56877,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52295,6 +56914,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52329,6 +56950,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -52990,6 +57613,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.each = .{ .once = &.{
@@ -53013,6 +57638,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.each = .{ .once = &.{
@@ -53036,6 +57663,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.each = .{ .once = &.{
@@ -53059,6 +57688,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -53086,6 +57717,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -53111,6 +57744,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -53140,6 +57775,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -53170,6 +57807,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .eax }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53194,6 +57833,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .eax }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53218,6 +57859,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .rax }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53242,6 +57885,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .rax }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53266,6 +57911,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53290,6 +57937,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53314,6 +57963,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53343,6 +57994,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53372,6 +58025,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -53397,6 +58052,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -53428,6 +58085,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53458,6 +58117,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53488,6 +58149,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53518,6 +58181,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53548,6 +58213,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53579,6 +58246,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53637,6 +58306,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -53665,6 +58336,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -53694,6 +58367,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53724,6 +58399,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53754,6 +58431,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53784,6 +58463,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -53811,6 +58492,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -53841,6 +58524,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53871,6 +58556,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53901,6 +58588,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53931,6 +58620,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53961,6 +58652,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -53992,6 +58685,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54022,6 +58717,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -54052,6 +58749,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54082,6 +58781,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54112,6 +58813,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54142,6 +58845,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54172,6 +58877,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54203,6 +58910,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54234,6 +58943,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54265,6 +58976,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54296,6 +59009,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54327,6 +59042,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54358,6 +59075,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54390,6 +59109,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54422,6 +59143,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54455,6 +59178,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54488,6 +59213,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54521,6 +59248,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54554,6 +59283,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54588,6 +59319,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54669,6 +59402,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -54699,6 +59434,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -54730,6 +59467,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54754,6 +59493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54778,6 +59519,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .ecx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54817,6 +59560,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .u32, .kind = .{ .reg = .ecx } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54856,6 +59601,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .reg = .rdi } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54895,6 +59642,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -54925,6 +59674,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -54950,6 +59701,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -54974,6 +59727,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55003,6 +59758,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55032,6 +59789,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55058,6 +59817,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55085,6 +59846,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55114,6 +59877,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55143,6 +59908,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55172,6 +59939,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55252,6 +60021,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55279,6 +60050,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55306,6 +60079,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55333,6 +60108,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55361,6 +60138,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55390,6 +60169,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55442,6 +60223,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55468,6 +60251,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55495,6 +60280,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55524,6 +60311,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55553,6 +60342,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55582,6 +60373,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55610,6 +60403,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55636,6 +60431,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -55663,6 +60460,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55692,6 +60491,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55721,6 +60522,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55750,6 +60553,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55779,6 +60584,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55809,6 +60616,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55839,6 +60648,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55869,6 +60680,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55899,6 +60712,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55931,6 +60746,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55963,6 +60780,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -55995,6 +60814,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56050,6 +60871,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.each = .{ .once = &.{
@@ -56074,6 +60897,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.each = .{ .once = &.{
@@ -56098,6 +60923,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -56121,6 +60948,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -56168,6 +60997,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -56191,6 +61022,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -56221,6 +61054,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -56251,6 +61086,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -56285,6 +61122,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56309,6 +61148,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56333,6 +61174,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56359,6 +61202,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56385,6 +61230,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -56410,6 +61257,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -56435,6 +61284,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -56459,6 +61310,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -56489,6 +61342,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -56519,6 +61374,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -56546,6 +61403,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -56573,6 +61432,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -56601,6 +61462,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -56630,6 +61493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56659,6 +61524,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56688,6 +61555,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56717,6 +61586,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56746,6 +61617,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56776,6 +61649,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -56883,6 +61758,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -56911,6 +61788,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -56939,6 +61818,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -56967,6 +61848,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -56995,6 +61878,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -57022,6 +61907,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -57048,6 +61935,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -57077,6 +61966,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57106,6 +61997,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57135,6 +62028,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57200,6 +62095,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -57227,6 +62124,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -57254,6 +62153,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -57280,6 +62181,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -57309,6 +62212,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57338,6 +62243,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57367,6 +62274,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57396,6 +62305,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57425,6 +62336,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57455,6 +62368,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57484,6 +62399,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -57511,6 +62428,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -57538,6 +62457,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -57565,6 +62486,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57594,6 +62517,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57623,6 +62548,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57652,6 +62579,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57681,6 +62610,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57711,6 +62642,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57741,6 +62674,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57771,6 +62706,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57801,6 +62738,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57831,6 +62770,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57861,6 +62802,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57892,6 +62835,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57923,6 +62868,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57955,6 +62902,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -57987,6 +62936,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58019,6 +62970,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58051,6 +63004,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58084,6 +63039,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58117,6 +63074,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.each = .{ .once = &.{
@@ -58142,6 +63101,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.each = .{ .once = &.{
@@ -58166,6 +63127,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58197,6 +63160,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58228,6 +63193,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58259,6 +63226,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58291,6 +63260,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -58314,6 +63285,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58341,6 +63314,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58371,6 +63346,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -58394,6 +63371,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58421,6 +63400,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58451,6 +63432,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -58475,6 +63458,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .unused },
.clobbers = .{ .eflags = true },
@@ -58508,6 +63493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -58536,6 +63523,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58566,6 +63555,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58596,6 +63587,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58626,6 +63619,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58652,6 +63647,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58678,6 +63675,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58704,6 +63703,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58730,6 +63731,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58756,6 +63759,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58782,6 +63787,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58813,6 +63820,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58844,6 +63853,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58875,6 +63886,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58906,6 +63919,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58937,6 +63952,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58968,6 +63985,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -58996,6 +64015,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59024,6 +64045,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59052,6 +64075,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59080,6 +64105,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59108,6 +64135,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59136,6 +64165,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59169,6 +64200,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59202,6 +64235,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59235,6 +64270,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59268,6 +64305,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59301,6 +64340,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59334,6 +64375,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59365,6 +64408,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59396,6 +64441,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59427,6 +64474,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59458,6 +64507,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59489,6 +64540,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59520,6 +64573,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59549,6 +64604,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59578,6 +64635,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59607,6 +64666,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .eax }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59631,6 +64692,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .eax }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59655,6 +64718,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59684,6 +64749,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59713,6 +64780,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59742,6 +64811,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59771,6 +64842,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59800,6 +64873,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59829,6 +64904,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .rax }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59853,6 +64930,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .rax }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59877,6 +64956,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59906,6 +64987,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59935,6 +65018,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59964,6 +65049,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -59993,6 +65080,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60022,6 +65111,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60051,6 +65142,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60075,6 +65168,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60099,6 +65194,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60129,6 +65226,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60159,6 +65258,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60189,6 +65290,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60219,6 +65322,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60249,6 +65354,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60279,6 +65386,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60305,6 +65414,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60331,6 +65442,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60363,6 +65476,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60395,6 +65510,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60427,6 +65544,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60459,6 +65578,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60491,6 +65612,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60538,6 +65661,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -60564,6 +65689,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -60590,6 +65717,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -60616,6 +65745,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -60656,6 +65787,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -60695,6 +65828,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.clobbers = .{ .eflags = true },
@@ -60730,6 +65865,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60755,6 +65892,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60780,6 +65919,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60805,6 +65946,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60830,6 +65973,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60854,6 +65999,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60878,6 +66025,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60902,6 +66051,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60926,6 +66077,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60950,6 +66103,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -60974,6 +66129,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61000,6 +66157,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61081,6 +66240,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -61109,6 +66270,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -61137,6 +66300,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -61165,6 +66330,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -61194,6 +66361,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61223,6 +66392,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61252,6 +66423,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61281,6 +66454,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61310,6 +66485,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61340,6 +66517,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61370,6 +66549,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61401,6 +66582,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61432,6 +66615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61461,6 +66646,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61490,6 +66677,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61519,6 +66708,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61548,6 +66739,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61578,6 +66771,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61608,6 +66803,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61639,6 +66836,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61725,6 +66924,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -61753,6 +66954,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -61781,6 +66984,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -61809,6 +67014,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -61838,6 +67045,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61867,6 +67076,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61896,6 +67107,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61926,6 +67139,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61957,6 +67172,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -61986,6 +67203,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62015,6 +67234,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62045,6 +67266,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62101,6 +67324,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -62128,6 +67353,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -62156,6 +67383,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62185,6 +67414,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62214,6 +67445,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62244,6 +67477,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62275,6 +67510,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62304,6 +67541,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62333,6 +67572,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62363,6 +67604,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62393,6 +67636,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -62423,6 +67668,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62452,6 +67699,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62481,6 +67730,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62511,6 +67762,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62542,6 +67795,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62571,6 +67826,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62600,6 +67857,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62630,6 +67889,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62661,6 +67922,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62691,6 +67954,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62721,6 +67986,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62752,6 +68019,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62784,6 +68053,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62814,6 +68085,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62844,6 +68117,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62875,6 +68150,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62907,6 +68184,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62939,6 +68218,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -62971,6 +68252,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63004,6 +68287,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f32, .kind = .mem },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63038,6 +68323,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63070,6 +68357,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63102,6 +68391,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63135,6 +68426,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .f32, .kind = .mem },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63169,6 +68462,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63194,6 +68489,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63219,6 +68516,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63244,6 +68543,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63269,6 +68570,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63294,6 +68597,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63319,6 +68624,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63344,6 +68651,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63395,6 +68704,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63420,6 +68731,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -63470,6 +68783,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.clobbers = .{ .eflags = true },
@@ -63503,6 +68818,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.clobbers = .{ .eflags = true },
@@ -63537,6 +68854,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63561,6 +68880,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63585,6 +68906,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63611,6 +68934,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63714,6 +69039,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -63742,6 +69069,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -63770,6 +69099,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -63798,6 +69129,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -63826,6 +69159,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -63854,6 +69189,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -63883,6 +69220,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63912,6 +69251,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63941,6 +69282,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63970,6 +69313,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -63999,6 +69344,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64028,6 +69375,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64057,6 +69406,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64086,6 +69437,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64192,6 +69545,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64220,6 +69575,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64248,6 +69605,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64276,6 +69635,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64304,6 +69665,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64332,6 +69695,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64361,6 +69726,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64390,6 +69757,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64419,6 +69788,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64448,6 +69819,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64512,6 +69885,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64539,6 +69914,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64566,6 +69943,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64593,6 +69972,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64621,6 +70002,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64650,6 +70033,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64679,6 +70064,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64708,6 +70095,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64736,6 +70125,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64764,6 +70155,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -64793,6 +70186,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64822,6 +70217,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64851,6 +70248,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64880,6 +70279,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64909,6 +70310,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64939,6 +70342,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64969,6 +70374,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -64999,6 +70406,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65029,6 +70438,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65061,6 +70472,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65093,6 +70506,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65125,6 +70540,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65157,6 +70574,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65182,6 +70601,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65207,6 +70628,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65232,6 +70655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65257,6 +70682,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65282,6 +70709,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65307,6 +70736,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65332,6 +70763,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65383,6 +70816,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65408,6 +70843,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65433,6 +70870,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -65459,6 +70898,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -65484,6 +70925,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -65508,6 +70951,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -65533,6 +70978,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -65557,6 +71004,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -65609,6 +71058,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65638,6 +71089,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
@@ -65667,6 +71120,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -65690,6 +71145,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -65727,6 +71184,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65751,6 +71210,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65775,6 +71236,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65801,6 +71264,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -65904,6 +71369,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -65932,6 +71399,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -65962,6 +71431,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -65992,6 +71463,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66020,6 +71493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66050,6 +71525,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66081,6 +71558,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66110,6 +71589,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66139,6 +71620,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66168,6 +71651,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66197,6 +71682,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66226,6 +71713,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66255,6 +71744,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66284,6 +71775,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66313,6 +71806,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66342,6 +71837,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66371,6 +71868,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66400,6 +71899,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66506,6 +72007,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66534,6 +72037,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66563,6 +72068,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66592,6 +72099,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66620,6 +72129,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66649,6 +72160,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66679,6 +72192,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66708,6 +72223,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66737,6 +72254,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66766,6 +72285,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66795,6 +72316,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66824,6 +72347,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66888,6 +72413,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66915,6 +72442,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66942,6 +72471,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -66970,6 +72501,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -66999,6 +72532,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67028,6 +72563,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67057,6 +72594,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67086,6 +72625,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67115,6 +72656,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67143,6 +72686,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -67171,6 +72716,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -67200,6 +72747,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67229,6 +72778,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67258,6 +72809,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67287,6 +72840,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67316,6 +72871,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67345,6 +72902,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67374,6 +72933,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67404,6 +72965,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67434,6 +72997,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67464,6 +73029,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67494,6 +73061,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67524,6 +73093,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67554,6 +73125,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67586,6 +73159,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67618,6 +73193,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67650,6 +73227,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67682,6 +73261,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67714,6 +73295,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67746,6 +73329,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -67772,6 +73357,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -67797,6 +73384,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -67821,6 +73410,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -67846,6 +73437,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -67870,6 +73463,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -67895,6 +73490,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.each = .{ .once = &.{
@@ -67918,6 +73515,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .x87 }, .unused },
.clobbers = .{ .eflags = true },
@@ -67947,6 +73546,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67971,6 +73572,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -67995,6 +73598,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68021,6 +73626,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68046,6 +73653,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -68077,6 +73686,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -68108,6 +73719,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -68139,6 +73752,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -68171,6 +73786,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68203,6 +73820,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68235,6 +73854,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68267,6 +73888,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68298,6 +73921,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -68326,6 +73951,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68356,6 +73983,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68385,6 +74014,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -68413,6 +74044,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68443,6 +74076,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68472,6 +74107,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -68500,6 +74137,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68530,6 +74169,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68560,6 +74201,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68591,6 +74234,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68622,6 +74267,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68655,6 +74302,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68689,6 +74338,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68715,6 +74366,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68741,6 +74394,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68767,6 +74422,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68792,6 +74449,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68816,6 +74475,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68840,6 +74501,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68864,6 +74527,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68888,6 +74553,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68912,6 +74579,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68936,6 +74605,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68962,6 +74633,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .xmm0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -68988,6 +74661,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69019,6 +74694,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69050,6 +74727,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69081,6 +74760,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69112,6 +74793,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69143,6 +74826,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69174,6 +74859,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69205,6 +74892,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69236,6 +74925,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69267,6 +74958,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69298,6 +74991,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69329,6 +75024,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69360,6 +75057,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69389,6 +75088,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69418,6 +75119,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69447,6 +75150,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69476,6 +75181,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69505,6 +75212,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69534,6 +75243,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69563,6 +75274,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69592,6 +75305,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69621,6 +75336,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69650,6 +75367,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69679,6 +75398,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69708,6 +75429,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69737,6 +75460,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69766,6 +75491,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69795,6 +75522,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69824,6 +75553,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69853,6 +75584,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69882,6 +75615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69912,6 +75647,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69942,6 +75679,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -69972,6 +75711,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70002,6 +75743,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70032,6 +75775,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70062,6 +75807,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70094,6 +75841,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70126,6 +75875,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70158,6 +75909,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70190,6 +75943,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70222,6 +75977,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70279,6 +76036,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .nz }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70303,6 +76062,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .nz }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70326,6 +76087,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .nz }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70364,6 +76127,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .index = 1 } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70387,6 +76152,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .index = 1 } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70409,6 +76176,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .index = 1 } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70446,6 +76215,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .{ .rc = .general_purpose } },
.each = .{ .once = &.{
@@ -70473,6 +76244,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .{ .rc = .general_purpose } },
.each = .{ .once = &.{
@@ -70500,6 +76273,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .rc = .general_purpose }, .{ .rc = .general_purpose } },
.each = .{ .once = &.{
@@ -70549,6 +76324,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .nz }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70573,6 +76350,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .nz }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70596,6 +76375,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .nz }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .zigcc },
@@ -70636,6 +76417,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}, cg);
try res.finish(inst, &.{extra.init}, &ops, cg);
},
+ .prefetch => {
+ const prefetch = air_datas[@intFromEnum(inst)].prefetch;
+ var ops = try cg.tempsFromOperands(inst, .{prefetch.ptr});
+ switch (prefetch.cache) {
+ .instruction => {}, // prefetchi requires rip-relative addressing, which is currently non-trivial to emit from an arbitrary ptr value
+ .data => if (prefetch.rw == .write and prefetch.locality <= 2 and cg.hasFeature(.prefetchwt1)) {
+ try ops[0].toSlicePtr(cg);
+ while (try ops[0].toLea(cg)) {}
+ try cg.asmMemory(.{ ._wt1, .prefetch }, try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = .byte }));
+ } else if (prefetch.rw == .write and cg.hasFeature(.prfchw)) {
+ try ops[0].toSlicePtr(cg);
+ while (try ops[0].toLea(cg)) {}
+ try cg.asmMemory(.{ ._w, .prefetch }, try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = .byte }));
+ } else if (cg.hasFeature(.sse) or cg.hasFeature(.prfchw) or cg.hasFeature(.prefetchi) or cg.hasFeature(.prefetchwt1)) {
+ try ops[0].toSlicePtr(cg);
+ while (try ops[0].toLea(cg)) {}
+ switch (prefetch.locality) {
+ 0 => try cg.asmMemory(.{ ._nta, .prefetch }, try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = .byte })),
+ 1 => try cg.asmMemory(.{ ._t2, .prefetch }, try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = .byte })),
+ 2 => try cg.asmMemory(.{ ._t1, .prefetch }, try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = .byte })),
+ 3 => try cg.asmMemory(.{ ._t0, .prefetch }, try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = .byte })),
+ }
+ },
+ }
+ const res = try cg.tempInit(.void, .none);
+ try res.finish(inst, &.{prefetch.ptr}, &ops, cg);
+ },
.mul_add => |air_tag| if (use_old) try cg.airMulAdd(inst) else {
const pl_op = air_datas[@intFromEnum(inst)].pl_op;
const bin_op = cg.air.extraData(Air.Bin, pl_op.payload).data;
@@ -70661,6 +76469,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -70691,6 +76501,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70724,6 +76536,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -70760,6 +76574,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
@@ -70789,6 +76605,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -70822,6 +76640,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70857,6 +76677,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70894,6 +76716,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -70932,6 +76756,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmah" } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71024,6 +76850,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71150,6 +76978,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -71182,6 +77012,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71216,6 +77048,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71300,6 +77134,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71426,6 +77262,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.each = .{ .once = &.{
@@ -71458,6 +77296,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71492,6 +77332,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71526,6 +77368,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71563,6 +77407,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .reg = .st0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71596,6 +77442,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71634,6 +77482,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71661,6 +77511,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71695,6 +77547,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71729,6 +77583,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -71785,6 +77641,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .b }, .unused },
.clobbers = .{ .eflags = true },
@@ -71807,6 +77665,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .b }, .unused },
.clobbers = .{ .eflags = true },
@@ -71829,6 +77689,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .b }, .unused },
.clobbers = .{ .eflags = true },
@@ -88907,11 +94769,6 @@ fn airUnionInit(self: *CodeGen, inst: Air.Inst.Index) !void {
return self.finishAir(inst, result, .{ extra.init, .none, .none });
}
-fn airPrefetch(self: *CodeGen, inst: Air.Inst.Index) !void {
- const prefetch = self.air.instructions.items(.data)[@intFromEnum(inst)].prefetch;
- return self.finishAir(inst, .unreach, .{ prefetch.ptr, .none, .none });
-}
-
fn airMulAdd(self: *CodeGen, inst: Air.Inst.Index) !void {
const pt = self.pt;
const zcu = pt.zcu;
@@ -91318,6 +97175,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .l }, .unused },
.clobbers = .{ .eflags = true },
@@ -91351,6 +97210,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .b }, .unused },
.clobbers = .{ .eflags = true },
@@ -91381,6 +97242,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .l }, .unused },
.clobbers = .{ .eflags = true },
@@ -91413,6 +97276,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .b }, .unused },
.clobbers = .{ .eflags = true },
@@ -91511,6 +97376,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91539,6 +97406,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91578,6 +97447,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91606,6 +97477,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91634,6 +97507,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91659,6 +97534,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91686,6 +97563,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91721,6 +97600,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91756,6 +97637,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91788,6 +97671,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91820,6 +97705,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91852,6 +97739,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91884,6 +97773,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91917,6 +97808,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91950,6 +97843,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -91983,6 +97878,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -92013,6 +97910,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .cc = .z }, .unused },
.clobbers = .{ .eflags = true },
@@ -92085,6 +97984,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -92108,6 +98009,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -92131,6 +98034,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -92154,6 +98059,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -92178,6 +98085,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -92202,6 +98111,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.clobbers = .{ .eflags = true },
@@ -92230,6 +98141,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .index = 0 } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -92257,6 +98170,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .index = 0 } }, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -92284,6 +98199,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -92315,6 +98232,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -92345,6 +98264,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92375,6 +98296,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92406,6 +98329,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92436,6 +98361,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92466,6 +98393,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92497,6 +98426,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92528,6 +98459,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92559,6 +98492,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92591,6 +98526,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92623,6 +98560,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true },
@@ -92656,6 +98595,8 @@ const Temp = struct {
.{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .index = 0 } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -92692,6 +98633,8 @@ const Temp = struct {
.{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .index = 0 } } },
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -92728,6 +98671,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -92762,6 +98707,8 @@ const Temp = struct {
.unused,
.unused,
.unused,
+ .unused,
+ .unused,
},
.dst_temps = .{ .mem, .unused },
.clobbers = .{ .eflags = true, .caller_preserved = .ccc },
@@ -93067,7 +99014,7 @@ const Select = struct {
const mir_tag: Mir.Inst.FixedTag = .{ inst[1], inst[2] };
pseudo: {
switch (inst[0]) {
- .@"0:", .@"1:", .@"2:", .@"3:" => |label| s.emitLabel(label),
+ .@"0:", .@"1:", .@"2:", .@"3:", .@"4:" => |label| s.emitLabel(label),
._ => {},
.pseudo => break :pseudo,
}
@@ -93945,18 +99892,18 @@ const Select = struct {
Select.Operand,
Select.Operand,
};
- const Label = enum { @"0:", @"1:", @"2:", @"3:", @"_", pseudo };
+ const Label = enum { @"0:", @"1:", @"2:", @"3:", @"4:", @"_", pseudo };
const Operand = struct {
- flags: packed struct(u16) {
+ flags: packed struct(u32) {
tag: Tag,
adjust: Adjust = .none,
+ base: Ref.Sized = .none,
+ index: packed struct(u7) {
+ ref: Ref,
+ scale: Memory.Scale = .@"1",
+ } = .{ .ref = .none },
unused: u3 = 0,
},
- base: Ref.Sized = .none,
- index: packed struct(u6) {
- ref: Ref,
- scale: Memory.Scale = .@"1",
- } = .{ .ref = .none },
imm: i32 = 0,
const Tag = enum(u3) {
@@ -94041,6 +99988,7 @@ const Select = struct {
const add_4_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"4" };
const add_8_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"8" };
const add_src0_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .div, .rhs = .@"8" };
+ const sub_src0_elem_size_div_8: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size, .op = .div, .rhs = .@"8" };
const sub_src0_elem_size: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"1" };
const add_src0_elem_size_mul_src1: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" };
const sub_src0_elem_size_mul_src1: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" };
@@ -94053,7 +100001,7 @@ const Select = struct {
const add_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"1" };
const add_umax: Adjust = .{ .sign = .pos, .lhs = .umax, .op = .mul, .rhs = .@"1" };
};
- const Ref = enum(u4) {
+ const Ref = enum(u5) {
tmp0,
tmp1,
tmp2,
@@ -94063,6 +100011,8 @@ const Select = struct {
tmp6,
tmp7,
tmp8,
+ tmp9,
+ tmp10,
dst0,
dst1,
src0,
@@ -94070,7 +100020,7 @@ const Select = struct {
src2,
none,
- const Sized = packed struct(u8) {
+ const Sized = packed struct(u9) {
ref: Ref,
size: Memory.Size,
@@ -94175,6 +100125,28 @@ const Select = struct {
const tmp8x: Sized = .{ .ref = .tmp8, .size = .xword };
const tmp8y: Sized = .{ .ref = .tmp8, .size = .yword };
+ const tmp9: Sized = .{ .ref = .tmp9, .size = .none };
+ const tmp9b: Sized = .{ .ref = .tmp9, .size = .byte };
+ const tmp9w: Sized = .{ .ref = .tmp9, .size = .word };
+ const tmp9d: Sized = .{ .ref = .tmp9, .size = .dword };
+ const tmp9p: Sized = .{ .ref = .tmp9, .size = .ptr };
+ const tmp9g: Sized = .{ .ref = .tmp9, .size = .gpr };
+ const tmp9q: Sized = .{ .ref = .tmp9, .size = .qword };
+ const tmp9t: Sized = .{ .ref = .tmp9, .size = .tbyte };
+ const tmp9x: Sized = .{ .ref = .tmp9, .size = .xword };
+ const tmp9y: Sized = .{ .ref = .tmp9, .size = .yword };
+
+ const tmp10: Sized = .{ .ref = .tmp10, .size = .none };
+ const tmp10b: Sized = .{ .ref = .tmp10, .size = .byte };
+ const tmp10w: Sized = .{ .ref = .tmp10, .size = .word };
+ const tmp10d: Sized = .{ .ref = .tmp10, .size = .dword };
+ const tmp10p: Sized = .{ .ref = .tmp10, .size = .ptr };
+ const tmp10g: Sized = .{ .ref = .tmp10, .size = .gpr };
+ const tmp10q: Sized = .{ .ref = .tmp10, .size = .qword };
+ const tmp10t: Sized = .{ .ref = .tmp10, .size = .tbyte };
+ const tmp10x: Sized = .{ .ref = .tmp10, .size = .xword };
+ const tmp10y: Sized = .{ .ref = .tmp10, .size = .yword };
+
const dst0: Sized = .{ .ref = .dst0, .size = .none };
const dst0b: Sized = .{ .ref = .dst0, .size = .byte };
const dst0w: Sized = .{ .ref = .dst0, .size = .word };
@@ -94246,178 +100218,200 @@ const Select = struct {
const @"_": Select.Operand = .{ .flags = .{ .tag = .none } };
- const @"0b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp0, .size = .none } };
- const @"0f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp0, .size = .none } };
- const @"1b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp1, .size = .none } };
- const @"1f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp1, .size = .none } };
- const @"2b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp2, .size = .none } };
- const @"2f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp2, .size = .none } };
- const @"3b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp3, .size = .none } };
- const @"3f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp3, .size = .none } };
-
- const tmp0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0b };
- const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0w };
- const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0d };
- const tmp0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0p };
- const tmp0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0g };
- const tmp0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0q };
- const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0t };
- const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0x };
- const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0y };
-
- const tmp1b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1b };
- const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1w };
- const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1d };
- const tmp1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1p };
- const tmp1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1g };
- const tmp1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1q };
- const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1t };
- const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1x };
- const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1y };
-
- const tmp2b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2b };
- const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2w };
- const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2d };
- const tmp2p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2p };
- const tmp2g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2g };
- const tmp2q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2q };
- const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2t };
- const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2x };
- const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2y };
-
- const tmp3b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3b };
- const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3w };
- const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3d };
- const tmp3p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3p };
- const tmp3g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3g };
- const tmp3q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3q };
- const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3t };
- const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3x };
- const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3y };
-
- const tmp4b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4b };
- const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4w };
- const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4d };
- const tmp4p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4p };
- const tmp4g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4g };
- const tmp4q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4q };
- const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4t };
- const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4x };
- const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4y };
-
- const tmp5b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5b };
- const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5w };
- const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5d };
- const tmp5p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5p };
- const tmp5g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5g };
- const tmp5q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5q };
- const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5t };
- const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5x };
- const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5y };
-
- const tmp6b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6b };
- const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6w };
- const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6d };
- const tmp6p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6p };
- const tmp6g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6g };
- const tmp6q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6q };
- const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6t };
- const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6x };
- const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6y };
-
- const tmp7b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7b };
- const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7w };
- const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7d };
- const tmp7p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7p };
- const tmp7g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7g };
- const tmp7q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7q };
- const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7t };
- const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7x };
- const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7y };
-
- const tmp8b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8b };
- const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8w };
- const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8d };
- const tmp8p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8p };
- const tmp8g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8g };
- const tmp8q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8q };
- const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8t };
- const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8x };
- const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8y };
-
- const dst0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0b };
- const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0w };
- const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0d };
- const dst0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0p };
- const dst0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0g };
- const dst0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0q };
- const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0t };
- const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0x };
- const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0y };
-
- const dst1b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1b };
- const dst1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1w };
- const dst1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1d };
- const dst1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1p };
- const dst1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1g };
- const dst1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1q };
- const dst1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1t };
- const dst1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1x };
- const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1y };
-
- const src0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0b };
- const src0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0w };
- const src0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0d };
- const src0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0p };
- const src0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0g };
- const src0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0q };
- const src0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0t };
- const src0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0x };
- const src0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0y };
-
- const src1b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1b };
- const src1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1w };
- const src1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1d };
- const src1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1p };
- const src1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1g };
- const src1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1q };
- const src1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1t };
- const src1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1x };
- const src1y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1y };
-
- const src2b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2b };
- const src2w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2w };
- const src2d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2d };
- const src2p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2p };
- const src2g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2g };
- const src2q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2q };
- const src2t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2t };
- const src2x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2x };
- const src2y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src2y };
+ const @"0b": Select.Operand = .{ .flags = .{ .tag = .backward_label, .base = .{ .ref = .tmp0, .size = .none } } };
+ const @"0f": Select.Operand = .{ .flags = .{ .tag = .forward_label, .base = .{ .ref = .tmp0, .size = .none } } };
+ const @"1b": Select.Operand = .{ .flags = .{ .tag = .backward_label, .base = .{ .ref = .tmp1, .size = .none } } };
+ const @"1f": Select.Operand = .{ .flags = .{ .tag = .forward_label, .base = .{ .ref = .tmp1, .size = .none } } };
+ const @"2b": Select.Operand = .{ .flags = .{ .tag = .backward_label, .base = .{ .ref = .tmp2, .size = .none } } };
+ const @"2f": Select.Operand = .{ .flags = .{ .tag = .forward_label, .base = .{ .ref = .tmp2, .size = .none } } };
+ const @"3b": Select.Operand = .{ .flags = .{ .tag = .backward_label, .base = .{ .ref = .tmp3, .size = .none } } };
+ const @"3f": Select.Operand = .{ .flags = .{ .tag = .forward_label, .base = .{ .ref = .tmp3, .size = .none } } };
+ const @"4b": Select.Operand = .{ .flags = .{ .tag = .backward_label, .base = .{ .ref = .tmp4, .size = .none } } };
+ const @"4f": Select.Operand = .{ .flags = .{ .tag = .forward_label, .base = .{ .ref = .tmp4, .size = .none } } };
+
+ const tmp0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0b } };
+ const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w } };
+ const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d } };
+ const tmp0p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0p } };
+ const tmp0g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0g } };
+ const tmp0q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q } };
+ const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0t } };
+ const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0x } };
+ const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } };
+
+ const tmp1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1b } };
+ const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w } };
+ const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d } };
+ const tmp1p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1p } };
+ const tmp1g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1g } };
+ const tmp1q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q } };
+ const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1t } };
+ const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1x } };
+ const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } };
+
+ const tmp2b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2b } };
+ const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w } };
+ const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d } };
+ const tmp2p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2p } };
+ const tmp2g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2g } };
+ const tmp2q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q } };
+ const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2t } };
+ const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2x } };
+ const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } };
+
+ const tmp3b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3b } };
+ const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w } };
+ const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d } };
+ const tmp3p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3p } };
+ const tmp3g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3g } };
+ const tmp3q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q } };
+ const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3t } };
+ const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3x } };
+ const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } };
+
+ const tmp4b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4b } };
+ const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w } };
+ const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d } };
+ const tmp4p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4p } };
+ const tmp4g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4g } };
+ const tmp4q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q } };
+ const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4t } };
+ const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4x } };
+ const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } };
+
+ const tmp5b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5b } };
+ const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w } };
+ const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d } };
+ const tmp5p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5p } };
+ const tmp5g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5g } };
+ const tmp5q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q } };
+ const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5t } };
+ const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5x } };
+ const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } };
+
+ const tmp6b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6b } };
+ const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w } };
+ const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d } };
+ const tmp6p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6p } };
+ const tmp6g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6g } };
+ const tmp6q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q } };
+ const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6t } };
+ const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6x } };
+ const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } };
+
+ const tmp7b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7b } };
+ const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w } };
+ const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d } };
+ const tmp7p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7p } };
+ const tmp7g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7g } };
+ const tmp7q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q } };
+ const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7t } };
+ const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7x } };
+ const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } };
+
+ const tmp8b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8b } };
+ const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w } };
+ const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d } };
+ const tmp8p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8p } };
+ const tmp8g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8g } };
+ const tmp8q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q } };
+ const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8t } };
+ const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8x } };
+ const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } };
+
+ const tmp9b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9b } };
+ const tmp9w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w } };
+ const tmp9d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d } };
+ const tmp9p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9p } };
+ const tmp9g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9g } };
+ const tmp9q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q } };
+ const tmp9t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9t } };
+ const tmp9x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9x } };
+ const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } };
+
+ const tmp10b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10b } };
+ const tmp10w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w } };
+ const tmp10d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d } };
+ const tmp10p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10p } };
+ const tmp10g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10g } };
+ const tmp10q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q } };
+ const tmp10t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10t } };
+ const tmp10x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10x } };
+ const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } };
+
+ const dst0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0b } };
+ const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w } };
+ const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d } };
+ const dst0p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0p } };
+ const dst0g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0g } };
+ const dst0q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q } };
+ const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0t } };
+ const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0x } };
+ const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } };
+
+ const dst1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1b } };
+ const dst1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w } };
+ const dst1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d } };
+ const dst1p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1p } };
+ const dst1g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1g } };
+ const dst1q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q } };
+ const dst1t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1t } };
+ const dst1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1x } };
+ const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } };
+
+ const src0b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0b } };
+ const src0w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w } };
+ const src0d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d } };
+ const src0p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0p } };
+ const src0g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0g } };
+ const src0q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q } };
+ const src0t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0t } };
+ const src0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0x } };
+ const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } };
+
+ const src1b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1b } };
+ const src1w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w } };
+ const src1d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d } };
+ const src1p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1p } };
+ const src1g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1g } };
+ const src1q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q } };
+ const src1t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1t } };
+ const src1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1x } };
+ const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } };
+
+ const src2b: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2b } };
+ const src2w: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w } };
+ const src2d: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d } };
+ const src2p: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2p } };
+ const src2g: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2g } };
+ const src2q: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q } };
+ const src2t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2t } };
+ const src2x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2x } };
+ const src2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2y } };
fn si(imm: i32) Select.Operand {
return .{ .flags = .{ .tag = .simm }, .imm = imm };
}
fn sa(base: Ref.Sized, adjust: Adjust) Select.Operand {
- return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base };
+ return .{ .flags = .{ .tag = .simm, .adjust = adjust, .base = base } };
}
fn sa2(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand {
- return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .index = .{ .ref = index } };
+ return .{ .flags = .{ .tag = .simm, .adjust = adjust, .base = base, .index = .{ .ref = index } } };
}
fn sia(imm: i32, base: Ref.Sized, adjust: Adjust) Select.Operand {
- return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .imm = imm };
+ return .{ .flags = .{ .tag = .simm, .adjust = adjust, .base = base }, .imm = imm };
}
fn sia2(imm: i32, base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand {
- return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .index = .{ .ref = index }, .imm = imm };
+ return .{ .flags = .{ .tag = .simm, .adjust = adjust, .base = base, .index = .{ .ref = index } }, .imm = imm };
}
fn ui(imm: u32) Select.Operand {
return .{ .flags = .{ .tag = .uimm }, .imm = @bitCast(imm) };
}
fn ua(base: Ref.Sized, adjust: Adjust) Select.Operand {
- return .{ .flags = .{ .tag = .uimm, .adjust = adjust }, .base = base };
+ return .{ .flags = .{ .tag = .uimm, .adjust = adjust, .base = base } };
}
fn uia(imm: u32, base: Ref.Sized, adjust: Adjust) Select.Operand {
- return .{ .flags = .{ .tag = .uimm, .adjust = adjust }, .base = base, .imm = @bitCast(imm) };
+ return .{ .flags = .{ .tag = .uimm, .adjust = adjust, .base = base }, .imm = @bitCast(imm) };
}
fn rm(mode: bits.RoundMode) Select.Operand {
@@ -94432,166 +100426,234 @@ const Select = struct {
fn lea(base: Ref.Sized) Select.Operand {
return .{
- .flags = .{ .tag = .lea },
- .base = base,
+ .flags = .{
+ .tag = .lea,
+ .base = base,
+ },
};
}
fn leaa(base: Ref.Sized, adjust: Adjust) Select.Operand {
return .{
- .flags = .{ .tag = .lea, .adjust = adjust },
- .base = base,
+ .flags = .{
+ .tag = .lea,
+ .adjust = adjust,
+ .base = base,
+ },
};
}
fn leaad(base: Ref.Sized, adjust: Adjust, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .lea, .adjust = adjust },
- .base = base,
+ .flags = .{
+ .tag = .lea,
+ .adjust = adjust,
+ .base = base,
+ },
.imm = disp,
};
}
fn lead(base: Ref.Sized, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .lea },
- .base = base,
+ .flags = .{
+ .tag = .lea,
+ .base = base,
+ },
.imm = disp,
};
}
fn leai(base: Ref.Sized, index: Ref) Select.Operand {
return .{
- .flags = .{ .tag = .lea },
- .base = base,
- .index = .{ .ref = index },
+ .flags = .{
+ .tag = .lea,
+ .base = base,
+ .index = .{ .ref = index },
+ },
};
}
fn leaia(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand {
return .{
- .flags = .{ .tag = .lea, .adjust = adjust },
- .base = base,
- .index = .{ .ref = index },
+ .flags = .{
+ .tag = .lea,
+ .adjust = adjust,
+ .base = base,
+ .index = .{ .ref = index },
+ },
+ };
+ }
+ fn leaiad(base: Ref.Sized, index: Ref, adjust: Adjust, disp: i32) Select.Operand {
+ return .{
+ .flags = .{
+ .tag = .lea,
+ .adjust = adjust,
+ .base = base,
+ .index = .{ .ref = index },
+ },
+ .imm = disp,
};
}
fn leaid(base: Ref.Sized, index: Ref, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .lea },
- .base = base,
- .index = .{ .ref = index },
+ .flags = .{
+ .tag = .lea,
+ .base = base,
+ .index = .{ .ref = index },
+ },
.imm = disp,
};
}
fn leasi(base: Ref.Sized, scale: Memory.Scale, index: Ref) Select.Operand {
return .{
- .flags = .{ .tag = .lea },
- .base = base,
- .index = .{ .ref = index, .scale = scale },
+ .flags = .{
+ .tag = .lea,
+ .base = base,
+ .index = .{ .ref = index, .scale = scale },
+ },
};
}
fn leasia(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust) Select.Operand {
return .{
- .flags = .{ .tag = .lea, .adjust = adjust },
- .base = base,
- .index = .{ .ref = index, .scale = scale },
+ .flags = .{
+ .tag = .lea,
+ .adjust = adjust,
+ .base = base,
+ .index = .{ .ref = index, .scale = scale },
+ },
};
}
fn leasid(base: Ref.Sized, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .lea },
- .base = base,
- .index = .{ .ref = index, .scale = scale },
+ .flags = .{
+ .tag = .lea,
+ .base = base,
+ .index = .{ .ref = index, .scale = scale },
+ },
.imm = disp,
};
}
fn leasiad(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .lea, .adjust = adjust },
- .base = base,
- .index = .{ .ref = index, .scale = scale },
+ .flags = .{
+ .tag = .lea,
+ .adjust = adjust,
+ .base = base,
+ .index = .{ .ref = index, .scale = scale },
+ },
.imm = disp,
};
}
fn mem(base: Ref.Sized) Select.Operand {
return .{
- .flags = .{ .tag = .mem },
- .base = base,
+ .flags = .{
+ .tag = .mem,
+ .base = base,
+ },
};
}
fn memd(base: Ref.Sized, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .mem },
- .base = base,
+ .flags = .{
+ .tag = .mem,
+ .base = base,
+ },
.imm = disp,
};
}
fn mema(base: Ref.Sized, adjust: Adjust) Select.Operand {
return .{
- .flags = .{ .tag = .mem, .adjust = adjust },
- .base = base,
+ .flags = .{
+ .tag = .mem,
+ .adjust = adjust,
+ .base = base,
+ },
};
}
fn memad(base: Ref.Sized, adjust: Adjust, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .mem, .adjust = adjust },
- .base = base,
+ .flags = .{
+ .tag = .mem,
+ .adjust = adjust,
+ .base = base,
+ },
.imm = disp,
};
}
fn memi(base: Ref.Sized, index: Ref) Select.Operand {
return .{
- .flags = .{ .tag = .mem },
- .base = base,
- .index = .{ .ref = index },
+ .flags = .{
+ .tag = .mem,
+ .base = base,
+ .index = .{ .ref = index },
+ },
};
}
fn memia(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand {
return .{
- .flags = .{ .tag = .mem, .adjust = adjust },
- .base = base,
- .index = .{ .ref = index },
+ .flags = .{
+ .tag = .mem,
+ .adjust = adjust,
+ .base = base,
+ .index = .{ .ref = index },
+ },
};
}
fn memiad(base: Ref.Sized, index: Ref, adjust: Adjust, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .mem, .adjust = adjust },
- .base = base,
- .index = .{ .ref = index },
+ .flags = .{
+ .tag = .mem,
+ .adjust = adjust,
+ .base = base,
+ .index = .{ .ref = index },
+ },
.imm = disp,
};
}
fn memid(base: Ref.Sized, index: Ref, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .mem },
- .base = base,
- .index = .{ .ref = index },
+ .flags = .{
+ .tag = .mem,
+ .base = base,
+ .index = .{ .ref = index },
+ },
.imm = disp,
};
}
fn memsi(base: Ref.Sized, scale: Memory.Scale, index: Ref) Select.Operand {
return .{
- .flags = .{ .tag = .mem },
- .base = base,
- .index = .{ .ref = index, .scale = scale },
+ .flags = .{
+ .tag = .mem,
+ .base = base,
+ .index = .{ .ref = index, .scale = scale },
+ },
};
}
fn memsia(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust) Select.Operand {
return .{
- .flags = .{ .tag = .mem, .adjust = adjust },
- .base = base,
- .index = .{ .ref = index, .scale = scale },
+ .flags = .{
+ .tag = .mem,
+ .adjust = adjust,
+ .base = base,
+ .index = .{ .ref = index, .scale = scale },
+ },
};
}
fn memsid(base: Ref.Sized, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .mem },
- .base = base,
- .index = .{ .ref = index, .scale = scale },
+ .flags = .{
+ .tag = .mem,
+ .base = base,
+ .index = .{ .ref = index, .scale = scale },
+ },
.imm = disp,
};
}
fn memsiad(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand {
return .{
- .flags = .{ .tag = .mem, .adjust = adjust },
- .base = base,
- .index = .{ .ref = index, .scale = scale },
+ .flags = .{
+ .tag = .mem,
+ .adjust = adjust,
+ .base = base,
+ .index = .{ .ref = index, .scale = scale },
+ },
.imm = disp,
};
}
@@ -94604,29 +100666,29 @@ const Select = struct {
.none => 0,
.ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8),
.ptr_bit_size => s.cg.target.ptrBitWidth(),
- .size => @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu)),
+ .size => @intCast(op.flags.base.ref.typeOf(s).abiSize(s.cg.pt.zcu)),
.src0_size => @intCast(Select.Operand.Ref.src0.typeOf(s).abiSize(s.cg.pt.zcu)),
- .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu))) -
- @as(SignedImm, @intCast(op.index.ref.typeOf(s).abiSize(s.cg.pt.zcu)))),
- .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) -
- @as(SignedImm, @intCast(op.index.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),
+ .delta_size => @intCast(@as(SignedImm, @intCast(op.flags.base.ref.typeOf(s).abiSize(s.cg.pt.zcu))) -
+ @as(SignedImm, @intCast(op.flags.index.ref.typeOf(s).abiSize(s.cg.pt.zcu)))),
+ .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.flags.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) -
+ @as(SignedImm, @intCast(op.flags.index.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),
.size_add_elem_size => {
- const ty = op.base.ref.typeOf(s);
+ const ty = op.flags.base.ref.typeOf(s);
break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) + ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
},
.size_sub_elem_size => {
- const ty = op.base.ref.typeOf(s);
+ const ty = op.flags.base.ref.typeOf(s);
break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
},
- .unaligned_size => @intCast(s.cg.unalignedSize(op.base.ref.typeOf(s))),
- .bit_size => @intCast(op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
+ .unaligned_size => @intCast(s.cg.unalignedSize(op.flags.base.ref.typeOf(s))),
+ .bit_size => @intCast(op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
.src0_bit_size => @intCast(Select.Operand.Ref.src0.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
- .len => @intCast(op.base.ref.typeOf(s).vectorLen(s.cg.pt.zcu)),
+ .len => @intCast(op.flags.base.ref.typeOf(s).vectorLen(s.cg.pt.zcu)),
.elem_limbs => @intCast(@divExact(
- op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),
- @divExact(op.base.size.bitSize(s.cg.target), 8),
+ op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),
+ @divExact(op.flags.base.size.bitSize(s.cg.target), 8),
)),
- .elem_size => @intCast(op.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
+ .elem_size => @intCast(op.flags.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
.src0_elem_size => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
.dst0_elem_size => @intCast(Select.Operand.Ref.dst0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
.src0_elem_size_mul_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) *
@@ -94634,13 +100696,13 @@ const Select = struct {
.src1 => @intCast(Select.Operand.Ref.src1.valueOf(s).immediate),
.log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))),
.smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate(
- -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
+ -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
),
.smax => @as(SignedImm, std.math.maxInt(SignedImm)) >> @truncate(
- -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
+ -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
),
.umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate(
- -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
+ -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
)),
};
const rhs = op.flags.adjust.rhs.toLog2();
@@ -94663,36 +100725,36 @@ const Select = struct {
fn lower(op: Select.Operand, s: *Select) InnerError!CodeGen.Operand {
return switch (op.flags.tag) {
.none => .none,
- .backward_label => .{ .inst = s.labels[@intFromEnum(op.base.ref)].backward.? },
- .forward_label => for (&s.labels[@intFromEnum(op.base.ref)].forward) |*label| {
+ .backward_label => .{ .inst = s.labels[@intFromEnum(op.flags.base.ref)].backward.? },
+ .forward_label => for (&s.labels[@intFromEnum(op.flags.base.ref)].forward) |*label| {
if (label.*) |_| continue;
label.* = @intCast(s.cg.mir_instructions.len);
break .{ .inst = undefined };
} else unreachable,
- .ref => switch (op.base.ref.valueOf(s)) {
- .immediate => |imm| .{ .imm = switch (op.base.size) {
+ .ref => switch (op.flags.base.ref.valueOf(s)) {
+ .immediate => |imm| .{ .imm = switch (op.flags.base.size) {
.byte => if (std.math.cast(i8, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u8, @intCast(imm))),
.word => if (std.math.cast(i16, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u16, @intCast(imm))),
.dword => if (std.math.cast(i32, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u32, @intCast(imm))),
.qword => if (std.math.cast(i32, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(imm),
else => unreachable,
} },
- else => |mcv| .{ .mem = try mcv.mem(s.cg, .{ .size = op.base.size }) },
- .register => |reg| .{ .reg = s.lowerReg(registerAlias(reg, @intCast(@divExact(op.base.size.bitSize(s.cg.target), 8)))) },
+ else => |mcv| .{ .mem = try mcv.mem(s.cg, .{ .size = op.flags.base.size }) },
+ .register => |reg| .{ .reg = s.lowerReg(registerAlias(reg, @intCast(@divExact(op.flags.base.size.bitSize(s.cg.target), 8)))) },
.lea_symbol => |sym_off| .{ .imm = .rel(sym_off) },
},
.simm => .{ .imm = .s(op.adjustedImm(i32, s)) },
.uimm => .{ .imm = .u(@bitCast(op.adjustedImm(i64, s))) },
.lea => .{ .mem = .{
- .base = switch (op.base.ref.valueOf(s)) {
+ .base = switch (op.flags.base.ref.valueOf(s)) {
else => unreachable,
.register => |base_reg| .{ .reg = registerAlias(base_reg, @divExact(s.cg.target.ptrBitWidth(), 8)) },
.register_offset => |base_reg_off| .{ .reg = registerAlias(base_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)) },
.lea_symbol => |base_sym_off| .{ .reloc = base_sym_off.sym_index },
},
.mod = .{ .rm = .{
- .size = op.base.size,
- .index = switch (op.index.ref) {
+ .size = op.flags.base.size,
+ .index = switch (op.flags.index.ref) {
else => |index_ref| switch (index_ref.valueOf(s)) {
else => unreachable,
.register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)),
@@ -94700,15 +100762,14 @@ const Select = struct {
},
.none => .none,
},
- .scale = op.index.scale,
- .disp = op.adjustedImm(i32, s) + switch (op.base.ref.valueOf(s)) {
+ .scale = op.flags.index.scale,
+ .disp = op.adjustedImm(i32, s) + switch (op.flags.base.ref.valueOf(s)) {
else => unreachable,
.register => 0,
.register_offset => |base_reg_off| base_reg_off.off,
.lea_symbol => |base_sym_off| base_sym_off.off,
- } + switch (op.index.ref) {
- else => |index_ref| switch (index_ref
- .valueOf(s)) {
+ } + switch (op.flags.index.ref) {
+ else => |index_ref| switch (index_ref.valueOf(s)) {
else => unreachable,
.register => 0,
.register_offset => |base_reg_off| base_reg_off.off,
@@ -94718,13 +100779,13 @@ const Select = struct {
},
} },
} },
- .mem => .{ .mem = try op.base.ref.valueOf(s).mem(s.cg, .{
- .size = op.base.size,
- .index = switch (op.index.ref) {
+ .mem => .{ .mem = try op.flags.base.ref.valueOf(s).mem(s.cg, .{
+ .size = op.flags.base.size,
+ .index = switch (op.flags.index.ref) {
else => |index_ref| registerAlias(index_ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)),
.none => .none,
},
- .scale = op.index.scale,
+ .scale = op.flags.index.scale,
.disp = op.adjustedImm(i32, s),
}) },
};
diff --git a/src/arch/x86_64/Encoding.zig b/src/arch/x86_64/Encoding.zig
@@ -78,7 +78,7 @@ pub fn findByMnemonic(
),
.x86_64 => false,
},
- inline .@"invpcid 64bit", .@"rdpid 64bit" => |tag| switch (target.cpu.arch) {
+ inline .@"invpcid 64bit", .@"rdpid 64bit", .@"prefetchi 64bit" => |tag| switch (target.cpu.arch) {
else => unreachable,
.x86 => false,
.x86_64 => std.Target.x86.featureSetHas(
@@ -86,6 +86,7 @@ pub fn findByMnemonic(
@field(std.Target.x86.Feature, @tagName(tag)[0 .. @tagName(tag).len - " 64bit".len]),
),
},
+ .prefetch => std.Target.x86.featureSetHasAny(target.cpu.features, .{ .sse, .prfchw, .prefetchi, .prefetchwt1 }),
inline else => |tag| has_features: {
comptime var feature_it = std.mem.splitScalar(u8, @tagName(tag), ' ');
comptime var features: []const std.Target.x86.Feature = &.{};
@@ -375,6 +376,7 @@ pub const Mnemonic = enum {
orps,
pextrw, pinsrw,
pmaxsw, pmaxub, pminsw, pminub, pmovmskb,
+ prefetchit0, prefetchit1, prefetchnta, prefetcht0, prefetcht1, prefetcht2, prefetchw, prefetchwt1,
shufps,
sqrtps, sqrtss,
stmxcsr,
@@ -459,6 +461,7 @@ pub const Mnemonic = enum {
vhaddpd, vhaddps,
vinsertf128, vinsertps,
vlddqu, vldmxcsr,
+ vmaskmovpd, vmaskmovps,
vmaxpd, vmaxps, vmaxsd, vmaxss,
vminpd, vminps, vminsd, vminss,
vmovapd, vmovaps,
@@ -481,6 +484,7 @@ pub const Mnemonic = enum {
vpblendvb, vpblendw, vpclmulqdq,
vpcmpeqb, vpcmpeqd, vpcmpeqq, vpcmpeqw,
vpcmpgtb, vpcmpgtd, vpcmpgtq, vpcmpgtw,
+ vperm2f128, vpermilpd, vpermilps,
vpextrb, vpextrd, vpextrq, vpextrw,
vpinsrb, vpinsrd, vpinsrq, vpinsrw,
vpmaxsb, vpmaxsd, vpmaxsw, vpmaxub, vpmaxud, vpmaxuw,
@@ -521,6 +525,9 @@ pub const Mnemonic = enum {
// AVX2
vbroadcasti128, vpbroadcastb, vpbroadcastd, vpbroadcastq, vpbroadcastw,
vextracti128, vinserti128, vpblendd,
+ vperm2i128, vpermd, vpermpd, vpermps, vpermq,
+ vpmaskmovd, vpmaskmovq,
+ vpsllvd, vpsllvq, vpsravd, vpsrlvd, vpsrlvq,
// ADX
adcx, adox,
// AESKLE
@@ -557,8 +564,7 @@ pub const Op = enum {
r32_m8, r32_m16, r64_m16,
m8, m16, m32, m64, m80, m128, m256,
rel8, rel16, rel32,
- m,
- moffs,
+ m, moffs, mrip8,
sreg,
st0, st, mm, mm_m64,
xmm0, xmm, xmm_m8, xmm_m16, xmm_m32, xmm_m64, xmm_m128,
@@ -612,7 +618,7 @@ pub const Op = enum {
.mem => |mem| switch (mem) {
.moffs => .moffs,
- .sib, .rip => switch (mem.bitSize(target)) {
+ .sib => switch (mem.bitSize(target)) {
0 => .m,
8 => .m8,
16 => .m16,
@@ -623,6 +629,16 @@ pub const Op = enum {
256 => .m256,
else => unreachable,
},
+ .rip => switch (mem.bitSize(target)) {
+ 0, 8 => .mrip8,
+ 16 => .m16,
+ 32 => .m32,
+ 64 => .m64,
+ 80 => .m80,
+ 128 => .m128,
+ 256 => .m256,
+ else => unreachable,
+ },
},
.imm => |imm| switch (imm) {
@@ -675,7 +691,7 @@ pub const Op = enum {
pub fn immBitSize(op: Op) u64 {
return switch (op) {
- .none, .moffs, .m, .sreg => unreachable,
+ .none, .m, .moffs, .mrip8, .sreg => unreachable,
.al, .cl, .dx, .rip, .eip, .ip, .r8, .rm8, .r32_m8 => unreachable,
.ax, .r16, .rm16 => unreachable,
.eax, .r32, .rm32, .r32_m16 => unreachable,
@@ -695,7 +711,7 @@ pub const Op = enum {
pub fn regBitSize(op: Op) u64 {
return switch (op) {
- .none, .moffs, .m, .sreg => unreachable,
+ .none, .m, .moffs, .mrip8, .sreg => unreachable,
.unity, .imm8, .imm8s, .imm16, .imm16s, .imm32, .imm32s, .imm64 => unreachable,
.rel8, .rel16, .rel32 => unreachable,
.m8, .m16, .m32, .m64, .m80, .m128, .m256 => unreachable,
@@ -711,13 +727,13 @@ pub const Op = enum {
pub fn memBitSize(op: Op) u64 {
return switch (op) {
- .none, .moffs, .m, .sreg => unreachable,
+ .none, .m, .moffs, .sreg => unreachable,
.unity, .imm8, .imm8s, .imm16, .imm16s, .imm32, .imm32s, .imm64 => unreachable,
.rel8, .rel16, .rel32 => unreachable,
.al, .cl, .r8, .ax, .dx, .ip, .r16, .eax, .eip, .r32, .rax, .rip, .r64 => unreachable,
.st0, .st, .mm, .xmm0, .xmm, .ymm => unreachable,
.cr, .dr => unreachable,
- .m8, .rm8, .r32_m8, .xmm_m8 => 8,
+ .mrip8, .m8, .rm8, .r32_m8, .xmm_m8 => 8,
.m16, .rm16, .r32_m16, .r64_m16, .xmm_m16 => 16,
.m32, .rm32, .xmm_m32 => 32,
.m64, .rm64, .mm_m64, .xmm_m64 => 64,
@@ -778,7 +794,7 @@ pub const Op = enum {
.rm8, .rm16, .rm32, .rm64,
.r32_m8, .r32_m16, .r64_m16,
.m8, .m16, .m32, .m64, .m80, .m128, .m256,
- .m,
+ .m, .moffs, .mrip8,
.mm_m64,
.xmm_m8, .xmm_m16, .xmm_m32, .xmm_m64, .xmm_m128,
.ymm_m256,
@@ -816,11 +832,7 @@ pub const Op = enum {
/// Given an operand `op` checks if `target` is a subset for the purposes of the encoding.
pub fn isSubset(op: Op, target: Op) bool {
switch (op) {
- .moffs, .sreg => return op == target,
- .none => switch (target) {
- .none => return true,
- else => return false,
- },
+ .none, .m, .moffs, .sreg => return op == target,
else => {
if (op.isRegister() and target.isRegister()) {
return switch (target.toReg()) {
@@ -831,6 +843,7 @@ pub const Op = enum {
if (op.isMemory() and target.isMemory()) {
switch (target) {
.m => return true,
+ .moffs, .mrip8 => return op == target,
else => return op.memBitSize() == target.memBitSize(),
}
}
@@ -957,6 +970,10 @@ pub const Feature = enum {
@"pclmul avx",
pku,
popcnt,
+ prefetch,
+ @"prefetchi 64bit",
+ prefetchwt1,
+ prfchw,
rdrnd,
rdseed,
@"rdpid 32bit",
@@ -997,7 +1014,7 @@ fn estimateInstructionLength(prefix: Prefix, encoding: Encoding, ops: []const Op
}
const mnemonic_to_encodings_map = init: {
- @setEvalBranchQuota(5_600);
+ @setEvalBranchQuota(5_800);
const mnemonic_count = @typeInfo(Mnemonic).@"enum".fields.len;
var mnemonic_map: [mnemonic_count][]Data = @splat(&.{});
const encodings = @import("encodings.zig");
diff --git a/src/arch/x86_64/Mir.zig b/src/arch/x86_64/Mir.zig
@@ -34,8 +34,18 @@ pub const Inst = struct {
/// ___ 4
_4,
+ /// ___ With NTA Hint
+ _nta,
/// System Call ___
sys_,
+ /// ___ With T0 Hint
+ _t0,
+ /// ___ With T1 Hint
+ _t1,
+ /// ___ With T2 Hint
+ _t2,
+ /// ___ With Intent to Write and T1 Hint
+ _wt1,
/// ___ crement Shadow Stack Pointer Doubleword
_csspd,
@@ -198,6 +208,7 @@ pub const Inst = struct {
//_b,
/// ___ Word
/// ___ For Writing
+ /// ___ With Intent to Write
_w,
/// ___ Doubleword
//_d,
@@ -756,6 +767,8 @@ pub const Inst = struct {
/// Swap GS base register
swapgs,
/// Test condition
+ /// Logical compare
+ /// Packed bit test
@"test",
/// Undefined instruction
ud,
@@ -973,6 +986,9 @@ pub const Inst = struct {
/// Move unaligned packed single-precision floating-point values
/// Move unaligned packed double-precision floating-point values
movu,
+ /// Prefetch data into caches
+ /// Prefetch data into caches with intent to write
+ prefetch,
/// Packed interleave shuffle of quadruplets of single-precision floating-point values
/// Packed interleave shuffle of pairs of double-precision floating-point values
/// Shuffle packed doublewords
@@ -1053,6 +1069,7 @@ pub const Inst = struct {
/// Blend scalar single-precision floating-point values
/// Blend packed double-precision floating-point values
/// Blend scalar double-precision floating-point values
+ /// Blend packed dwords
blend,
/// Variable blend packed single-precision floating-point values
/// Variable blend scalar single-precision floating-point values
@@ -1127,20 +1144,37 @@ pub const Inst = struct {
sha256rnds,
// AVX
+ /// Load with broadcast floating-point data
+ /// Load integer and broadcast
+ broadcast,
+ /// Conditional SIMD packed loads and stores
+ /// Condition SIMD integer packed loads and stores
+ maskmov,
+ /// Permute floating-point values
+ /// Permute integer values
+ perm2,
+ /// Permute in-lane pairs of double-precision floating-point values
+ /// Permute in-lane quadruples of single-precision floating-point values
+ permil,
+
+ // BMI
/// Bit field extract
bextr,
/// Extract lowest set isolated bit
/// Get mask up to lowest set bit
/// Reset lowest set bit
bls,
- /// Load with broadcast floating-point data
- /// Load integer and broadcast
- broadcast,
- /// Zero high bits starting with specified bit position
- bzhi,
/// Count the number of trailing zero bits
tzcnt,
+ // BMI2
+ /// Zero high bits starting with specified bit position
+ bzhi,
+ /// Parallel bits deposit
+ pdep,
+ /// Parallel bits extract
+ pext,
+
// F16C
/// Convert 16-bit floating-point values to single-precision floating-point values
cvtph2,
@@ -1164,6 +1198,19 @@ pub const Inst = struct {
/// Fused multiply-add of scalar double-precision floating-point values
fmadd231,
+ // AVX2
+ /// Permute packed doubleword elements
+ /// Permute packed qword elements
+ /// Permute double-precision floating-point elements
+ /// Permute single-precision floating-point elements
+ perm,
+ /// Variable bit shift left logical
+ sllv,
+ /// Variable bit shift right arithmetic
+ srav,
+ /// Variable bit shift right logical
+ srlv,
+
// ADX
/// Unsigned integer addition of two operands with overflow flag
ado,
diff --git a/src/arch/x86_64/encodings.zig b/src/arch/x86_64/encodings.zig
@@ -1370,6 +1370,18 @@ pub const table = [_]Entry{
.{ .pmovmskb, .rm, &.{ .r32, .xmm }, &.{ 0x66, 0x0f, 0xd7 }, 0, .none, .sse },
.{ .pmovmskb, .rm, &.{ .r64, .xmm }, &.{ 0x66, 0x0f, 0xd7 }, 0, .none, .sse },
+ .{ .prefetchit0, .m, &.{ .mrip8 }, &.{ 0x0f, 0x18 }, 7, .none, .@"prefetchi 64bit" },
+ .{ .prefetchit1, .m, &.{ .mrip8 }, &.{ 0x0f, 0x18 }, 6, .none, .@"prefetchi 64bit" },
+
+ .{ .prefetchnta, .m, &.{ .m8 }, &.{ 0x0f, 0x18 }, 0, .none, .prefetch },
+ .{ .prefetcht0, .m, &.{ .m8 }, &.{ 0x0f, 0x18 }, 1, .none, .prefetch },
+ .{ .prefetcht1, .m, &.{ .m8 }, &.{ 0x0f, 0x18 }, 2, .none, .prefetch },
+ .{ .prefetcht2, .m, &.{ .m8 }, &.{ 0x0f, 0x18 }, 3, .none, .prefetch },
+
+ .{ .prefetchw, .m, &.{ .m8 }, &.{ 0x0f, 0x0d }, 1, .none, .prfchw },
+
+ .{ .prefetchwt1, .m, &.{ .m8 }, &.{ 0x0f, 0x0d }, 2, .none, .prefetchwt1 },
+
.{ .shufps, .rmi, &.{ .xmm, .xmm_m128, .imm8 }, &.{ 0x0f, 0xc6 }, 0, .none, .sse },
.{ .sqrtps, .rm, &.{ .xmm, .xmm_m128 }, &.{ 0x0f, 0x51 }, 0, .none, .sse },
@@ -1932,6 +1944,15 @@ pub const table = [_]Entry{
.{ .vldmxcsr, .m, &.{ .m32 }, &.{ 0x0f, 0xae }, 2, .vex_lz_wig, .avx },
+ .{ .vmaskmovps, .rvm, &.{ .xmm, .xmm, .m128 }, &.{ 0x66, 0x0f, 0x38, 0x2c }, 0, .vex_128_w0, .avx },
+ .{ .vmaskmovps, .rvm, &.{ .ymm, .ymm, .m256 }, &.{ 0x66, 0x0f, 0x38, 0x2c }, 0, .vex_256_w0, .avx },
+ .{ .vmaskmovpd, .rvm, &.{ .xmm, .xmm, .m128 }, &.{ 0x66, 0x0f, 0x38, 0x2d }, 0, .vex_128_w0, .avx },
+ .{ .vmaskmovpd, .rvm, &.{ .ymm, .ymm, .m256 }, &.{ 0x66, 0x0f, 0x38, 0x2d }, 0, .vex_256_w0, .avx },
+ .{ .vmaskmovps, .mvr, &.{ .m128, .xmm, .xmm }, &.{ 0x66, 0x0f, 0x38, 0x2e }, 0, .vex_128_w0, .avx },
+ .{ .vmaskmovps, .mvr, &.{ .m256, .ymm, .ymm }, &.{ 0x66, 0x0f, 0x38, 0x2e }, 0, .vex_256_w0, .avx },
+ .{ .vmaskmovpd, .mvr, &.{ .m128, .xmm, .xmm }, &.{ 0x66, 0x0f, 0x38, 0x2f }, 0, .vex_128_w0, .avx },
+ .{ .vmaskmovpd, .mvr, &.{ .m256, .ymm, .ymm }, &.{ 0x66, 0x0f, 0x38, 0x2f }, 0, .vex_256_w0, .avx },
+
.{ .vmaxpd, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x5f }, 0, .vex_128_wig, .avx },
.{ .vmaxpd, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x5f }, 0, .vex_256_wig, .avx },
@@ -2097,6 +2118,18 @@ pub const table = [_]Entry{
.{ .vpcmpgtq, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x37 }, 0, .vex_128_wig, .avx },
+ .{ .vperm2f128, .rvmi, &.{ .ymm, .ymm, .ymm_m256, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x06 }, 0, .vex_256_w0, .avx },
+
+ .{ .vpermilpd, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x0d }, 0, .vex_128_w0, .avx },
+ .{ .vpermilpd, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x0d }, 0, .vex_256_w0, .avx },
+ .{ .vpermilpd, .rmi, &.{ .xmm, .xmm_m128, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x05 }, 0, .vex_128_w0, .avx },
+ .{ .vpermilpd, .rmi, &.{ .ymm, .ymm_m256, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x05 }, 0, .vex_256_w0, .avx },
+
+ .{ .vpermilpd, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x0c }, 0, .vex_128_w0, .avx },
+ .{ .vpermilps, .rmi, &.{ .xmm, .xmm_m128, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x04 }, 0, .vex_128_w0, .avx },
+ .{ .vpermilps, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x0c }, 0, .vex_256_w0, .avx },
+ .{ .vpermilps, .rmi, &.{ .ymm, .ymm_m256, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x04 }, 0, .vex_256_w0, .avx },
+
.{ .vpextrb, .mri, &.{ .r32_m8, .xmm, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x14 }, 0, .vex_128_w0, .avx },
.{ .vpextrd, .mri, &.{ .rm32, .xmm, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x16 }, 0, .vex_128_w0, .avx },
.{ .vpextrq, .mri, &.{ .rm64, .xmm, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x16 }, 0, .vex_128_w1, .avx },
@@ -2418,6 +2451,25 @@ pub const table = [_]Entry{
.{ .vpcmpgtq, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x37 }, 0, .vex_256_wig, .avx2 },
+ .{ .vperm2i128, .rvmi, &.{ .ymm, .ymm, .ymm_m256, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x46 }, 0, .vex_256_w0, .avx2 },
+
+ .{ .vpermd, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x36 }, 0, .vex_256_w0, .avx2 },
+
+ .{ .vpermpd, .rmi, &.{ .ymm, .ymm_m256, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x01 }, 0, .vex_256_w1, .avx2 },
+
+ .{ .vpermps, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x16 }, 0, .vex_256_w0, .avx2 },
+
+ .{ .vpermq, .rmi, &.{ .ymm, .ymm_m256, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x00 }, 0, .vex_256_w1, .avx2 },
+
+ .{ .vpmaskmovd, .rvm, &.{ .xmm, .xmm, .m128 }, &.{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_128_w0, .avx2 },
+ .{ .vpmaskmovd, .rvm, &.{ .ymm, .ymm, .m256 }, &.{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_256_w0, .avx2 },
+ .{ .vpmaskmovq, .rvm, &.{ .xmm, .xmm, .m128 }, &.{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_128_w1, .avx2 },
+ .{ .vpmaskmovq, .rvm, &.{ .ymm, .ymm, .m256 }, &.{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_256_w1, .avx2 },
+ .{ .vpmaskmovd, .mvr, &.{ .m128, .xmm, .xmm }, &.{ 0x66, 0x0f, 0x38, 0x8e }, 0, .vex_128_w0, .avx2 },
+ .{ .vpmaskmovd, .mvr, &.{ .m256, .ymm, .ymm }, &.{ 0x66, 0x0f, 0x38, 0x8e }, 0, .vex_256_w0, .avx2 },
+ .{ .vpmaskmovq, .mvr, &.{ .m128, .xmm, .xmm }, &.{ 0x66, 0x0f, 0x38, 0x8e }, 0, .vex_128_w1, .avx2 },
+ .{ .vpmaskmovq, .mvr, &.{ .m256, .ymm, .ymm }, &.{ 0x66, 0x0f, 0x38, 0x8e }, 0, .vex_256_w1, .avx2 },
+
.{ .vpmaxsb, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x3c }, 0, .vex_256_wig, .avx2 },
.{ .vpmaxsw, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0xee }, 0, .vex_256_wig, .avx2 },
.{ .vpmaxsd, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x3d }, 0, .vex_256_wig, .avx2 },
@@ -2477,11 +2529,19 @@ pub const table = [_]Entry{
.{ .vpslldq, .vmi, &.{ .ymm, .ymm, .imm8 }, &.{ 0x66, 0x0f, 0x73 }, 7, .vex_256_wig, .avx2 },
+ .{ .vpsllvd, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x47 }, 0, .vex_128_w0, .avx2 },
+ .{ .vpsllvq, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x47 }, 0, .vex_128_w1, .avx2 },
+ .{ .vpsllvd, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x47 }, 0, .vex_256_w0, .avx2 },
+ .{ .vpsllvq, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x47 }, 0, .vex_256_w1, .avx2 },
+
.{ .vpsraw, .rvm, &.{ .ymm, .ymm, .xmm_m128 }, &.{ 0x66, 0x0f, 0xe1 }, 0, .vex_256_wig, .avx2 },
.{ .vpsraw, .vmi, &.{ .ymm, .ymm, .imm8 }, &.{ 0x66, 0x0f, 0x71 }, 4, .vex_256_wig, .avx2 },
.{ .vpsrad, .rvm, &.{ .ymm, .ymm, .xmm_m128 }, &.{ 0x66, 0x0f, 0xe2 }, 0, .vex_256_wig, .avx2 },
.{ .vpsrad, .vmi, &.{ .ymm, .ymm, .imm8 }, &.{ 0x66, 0x0f, 0x72 }, 4, .vex_256_wig, .avx2 },
+ .{ .vpsravd, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x46 }, 0, .vex_128_w0, .avx2 },
+ .{ .vpsravd, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x46 }, 0, .vex_256_w0, .avx2 },
+
.{ .vpsrlw, .rvm, &.{ .ymm, .ymm, .xmm_m128 }, &.{ 0x66, 0x0f, 0xd1 }, 0, .vex_256_wig, .avx2 },
.{ .vpsrlw, .vmi, &.{ .ymm, .ymm, .imm8 }, &.{ 0x66, 0x0f, 0x71 }, 2, .vex_256_wig, .avx2 },
.{ .vpsrld, .rvm, &.{ .ymm, .ymm, .xmm_m128 }, &.{ 0x66, 0x0f, 0xd2 }, 0, .vex_256_wig, .avx2 },
@@ -2489,7 +2549,12 @@ pub const table = [_]Entry{
.{ .vpsrlq, .rvm, &.{ .ymm, .ymm, .xmm_m128 }, &.{ 0x66, 0x0f, 0xd3 }, 0, .vex_256_wig, .avx2 },
.{ .vpsrlq, .vmi, &.{ .ymm, .ymm, .imm8 }, &.{ 0x66, 0x0f, 0x73 }, 2, .vex_256_wig, .avx2 },
- .{ .vpsrldq, .vmi, &.{ .ymm, .ymm, .imm8 }, &.{ 0x66, 0x0f, 0x73 }, 3, .vex_128_wig, .avx2 },
+ .{ .vpsrldq, .vmi, &.{ .ymm, .ymm, .imm8 }, &.{ 0x66, 0x0f, 0x73 }, 3, .vex_256_wig, .avx2 },
+
+ .{ .vpsrlvd, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x45 }, 0, .vex_128_w0, .avx2 },
+ .{ .vpsrlvq, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x45 }, 0, .vex_128_w1, .avx2 },
+ .{ .vpsrlvd, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x45 }, 0, .vex_256_w0, .avx2 },
+ .{ .vpsrlvq, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x38, 0x45 }, 0, .vex_256_w1, .avx2 },
.{ .vpsubb, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0xf8 }, 0, .vex_256_wig, .avx2 },
.{ .vpsubw, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0xf9 }, 0, .vex_256_wig, .avx2 },
diff --git a/test/behavior/x86_64/math.zig b/test/behavior/x86_64/math.zig
@@ -55,6 +55,17 @@ fn DoubleBits(comptime Type: type) type {
.vector => |vector| @Vector(vector.len, ResultScalar),
};
}
+fn RoundBitsUp(comptime Type: type, comptime multiple: u16) type {
+ const ResultScalar = switch (@typeInfo(Scalar(Type))) {
+ .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = std.mem.alignForward(u16, int.bits, multiple) } }),
+ .float => Scalar(Type),
+ else => @compileError(@typeName(Type)),
+ };
+ return switch (@typeInfo(Type)) {
+ else => ResultScalar,
+ .vector => |vector| @Vector(vector.len, ResultScalar),
+ };
+}
// inline to avoid a runtime `@splat`
inline fn splat(comptime Type: type, scalar: Scalar(Type)) Type {
return switch (@typeInfo(Type)) {
@@ -17962,6 +17973,78 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
try testArgs(f128, nan(f128), nan(f128));
}
fn testIntVectors() !void {
+ try testArgs(@Vector(1, i4), .{
+ 0x1,
+ }, .{
+ 0x3,
+ });
+ try testArgs(@Vector(2, i4), .{
+ -0x1, 0x7,
+ }, .{
+ -0x7, 0x6,
+ });
+ try testArgs(@Vector(4, i4), .{
+ -0x1, 0x2, -0x3, -0x6,
+ }, .{
+ -0x2, -0x6, -0x4, 0x1,
+ });
+ try testArgs(@Vector(8, i4), .{
+ -0x4, 0x6, -0x4, -0x1, -0x1, 0x6, 0x5, 0x2,
+ }, .{
+ 0x2, 0x4, -0x3, -0x6, 0x1, -0x5, -0x1, 0x2,
+ });
+ // workaround https://github.com/ziglang/zig/issues/22914
+ // TODO: try testArgs(@Vector(16, i4), .{
+ // 0x4, 0x1, -0x7, -0x2, -0x7, 0x4, -0x4, -0x8, -0x1, 0x0, -0x8, 0x5, -0x5, 0x3, 0x3, 0x2,
+ // }, .{
+ // 0x7, -0x7, -0x6, -0x1, 0x3, -0x5, -0x3, -0x6, 0x4, 0x4, -0x2, 0x7, -0x2, 0x6, -0x4, -0x1,
+ // });
+ try testArgs(@Vector(16, i4), .{
+ 0x7, -0x7, -0x6, -0x1, 0x3, -0x5, -0x3, -0x6, 0x4, 0x4, -0x2, 0x7, -0x2, 0x6, -0x4, -0x1,
+ }, .{
+ 0x4, 0x1, -0x7, -0x2, -0x7, 0x4, -0x4, -0x8, -0x1, 0x1, -0x8, 0x5, -0x5, 0x3, 0x3, 0x2,
+ });
+ try testArgs(@Vector(32, i4), .{
+ 0x0, 0x4, 0x0, -0x6, -0x7, 0x4, -0x3, 0x4, -0x5, 0x2, 0x3, 0x2, -0x6, -0x4, -0x4, -0x3,
+ 0x7, -0x5, -0x3, 0x2, -0x4, 0x4, -0x1, 0x6, -0x7, -0x1, -0x6, -0x2, -0x4, -0x2, 0x5, 0x0,
+ }, .{
+ 0x5, 0x1, 0x5, 0x7, 0x1, -0x3, 0x3, 0x3, 0x5, 0x4, 0x1, 0x5, 0x4, -0x8, -0x3, -0x6,
+ -0x2, 0x3, 0x1, 0x2, 0x4, 0x4, -0x8, 0x2, 0x6, -0x1, 0x1, 0x3, -0x1, -0x3, 0x7, -0x7,
+ });
+
+ try testArgs(@Vector(1, u4), .{
+ 0xe,
+ }, .{
+ 0xc,
+ });
+ try testArgs(@Vector(2, u4), .{
+ 0x2, 0x5,
+ }, .{
+ 0x9, 0xe,
+ });
+ try testArgs(@Vector(4, u4), .{
+ 0x2, 0xb, 0xc, 0x7,
+ }, .{
+ 0x2, 0xa, 0x8, 0x1,
+ });
+ try testArgs(@Vector(8, u4), .{
+ 0xf, 0x9, 0x0, 0x6, 0x8, 0x7, 0xd, 0x7,
+ }, .{
+ 0xb, 0xb, 0x3, 0x6, 0x1, 0x5, 0x4, 0xd,
+ });
+ try testArgs(@Vector(16, u4), .{
+ 0x5, 0x1, 0xa, 0x6, 0xb, 0x3, 0x0, 0x7, 0x8, 0x0, 0x9, 0xe, 0x2, 0x9, 0x2, 0x5,
+ }, .{
+ 0x4, 0x9, 0x4, 0x8, 0x5, 0x7, 0xf, 0x8, 0x3, 0xc, 0x6, 0x9, 0xd, 0xd, 0x2, 0xd,
+ });
+ try testArgs(@Vector(32, u4), .{
+ 0xa, 0x5, 0xd, 0x4, 0xe, 0xf, 0xf, 0x2, 0xb, 0x3, 0x9, 0x2, 0x1, 0x9, 0x6, 0x8,
+ 0x7, 0xc, 0x3, 0x5, 0x4, 0xb, 0x5, 0x4, 0x8, 0x2, 0x5, 0x9, 0xf, 0x6, 0x7, 0x7,
+ }, .{
+ 0xb, 0xf, 0xf, 0xf, 0xb, 0xf, 0xd, 0xc, 0x1, 0xa, 0x1, 0xd, 0x7, 0x4, 0x4, 0x8,
+ 0x2, 0xb, 0xb, 0x4, 0xa, 0x7, 0x6, 0xd, 0xb, 0xb, 0x6, 0xb, 0x1, 0x8, 0xa, 0x6,
+ });
+
try testArgs(@Vector(1, i8), .{
-0x54,
}, .{
@@ -19013,6 +19096,7 @@ inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type)
test mulUnsafe {
const test_mul_unsafe = binary(mulUnsafe, .{});
try test_mul_unsafe.testInts();
+ try test_mul_unsafe.testIntVectors();
}
inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) {
@@ -19189,6 +19273,14 @@ test clz {
try test_clz.testIntVectors();
}
+inline fn byteSwap(comptime Type: type, rhs: Type) RoundBitsUp(Type, 8) {
+ return @byteSwap(@as(RoundBitsUp(Type, 8), rhs));
+}
+test byteSwap {
+ const test_byte_swap = unary(byteSwap, .{});
+ try test_byte_swap.testInts();
+}
+
inline fn sqrt(comptime Type: type, rhs: Type) @TypeOf(@sqrt(rhs)) {
return @sqrt(rhs);
}