diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index b46c8396878c..92504679e14c 100644 --- 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 = &.{ @@ -42746,6 +46745,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 }, @@ -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 }, @@ -43120,6 +47143,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 }, @@ -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 }, @@ -43312,6 +47351,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 }, @@ -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 }, @@ -43462,6 +47517,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 }, @@ -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 }, @@ -43511,6 +47576,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 }, @@ -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 index c4f7a310eea5..65dd1bedbc53 100644 --- 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 index c9482d0890c5..d7f16695eb51 100644 --- 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 index 2dcacd9ad5cd..2a6c1898afc7 100644 --- 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 index bd498e359676..ef7313d8395a 100644 --- 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); }