Commit a7efc56d86

Jacob Young <jacobly0@users.noreply.github.com>
2024-12-27 04:05:38
x86_64: the previous loop abstraction was too confusing
The temp usage was non-obvious, and implicit instructions hard to reason about.
1 parent a1828eb
Changed files (1)
src
arch
src/arch/x86_64/CodeGen.zig
@@ -2669,7 +2669,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
                             .unused,
@@ -2677,13 +2677,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.mem},
-                        .each = .{ .limb = .{
-                            .of = .src0y,
-                            .body = &.{
-                                .{ ._, .v_dqu, .mov, .tmp1y, .limb(.src0y), ._, ._ },
-                                .{ ._, .vp_, mir_tag, .tmp1y, .tmp1y, .limb(.src1y), ._ },
-                                .{ ._, .v_dqu, .mov, .limb(.dst0y), .tmp1y, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ .@"0:", .v_dqu, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .vp_, mir_tag, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
+                            .{ ._, .v_dqu, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .avx, null },
@@ -2691,7 +2691,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
                             .unused,
@@ -2699,13 +2699,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.mem},
-                        .each = .{ .limb = .{
-                            .of = .src0y,
-                            .body = &.{
-                                .{ ._, .v_pd, .movu, .tmp1y, .limb(.src0y), ._, ._ },
-                                .{ ._, .v_pd, mir_tag, .tmp1y, .tmp1y, .limb(.src1y), ._ },
-                                .{ ._, .v_pd, .movu, .limb(.dst0y), .tmp1y, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ .@"0:", .v_pd, .movu, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .v_pd, mir_tag, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
+                            .{ ._, .v_pd, .movu, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .avx, null },
@@ -2713,7 +2713,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
                             .unused,
@@ -2721,13 +2721,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.mem},
-                        .each = .{ .limb = .{
-                            .of = .src0x,
-                            .body = &.{
-                                .{ ._, .v_dqu, .mov, .tmp1x, .limb(.src0x), ._, ._ },
-                                .{ ._, .vp_, mir_tag, .tmp1x, .tmp1x, .limb(.src1x), ._ },
-                                .{ ._, .v_dqu, .mov, .limb(.dst0x), .tmp1x, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ .@"0:", .v_dqu, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .vp_, mir_tag, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
+                            .{ ._, .v_dqu, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .sse2, null },
@@ -2735,7 +2735,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
                             .unused,
@@ -2743,13 +2743,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.mem},
-                        .each = .{ .limb = .{
-                            .of = .src0x,
-                            .body = &.{
-                                .{ ._, ._dqu, .mov, .tmp1x, .limb(.src0x), ._, ._ },
-                                .{ ._, .p_, mir_tag, .tmp1x, .limb(.src1x), ._, ._ },
-                                .{ ._, ._dqu, .mov, .limb(.dst0x), .tmp1x, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ .@"0:", ._dqu, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .p_, mir_tag, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._dqu, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .sse, null },
@@ -2757,7 +2757,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
                             .unused,
@@ -2765,13 +2765,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.mem},
-                        .each = .{ .limb = .{
-                            .of = .src0x,
-                            .body = &.{
-                                .{ ._, ._ps, .movu, .tmp1x, .limb(.src0x), ._, ._ },
-                                .{ ._, ._ps, mir_tag, .tmp1x, .limb(.src1x), ._, ._ },
-                                .{ ._, ._ps, .movu, .limb(.dst0x), .tmp1x, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ .@"0:", ._ps, .movu, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._ps, mir_tag, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._ps, .movu, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .mmx, null },
@@ -2779,7 +2779,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .mmx } },
                             .unused,
                             .unused,
@@ -2787,20 +2787,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.mem},
-                        .each = .{ .limb = .{
-                            .of = .src0q,
-                            .body = &.{
-                                .{ ._, ._q, .mov, .tmp1q, .limb(.src0q), ._, ._ },
-                                .{ ._, .p_, mir_tag, .tmp1q, .limb(.src1q), ._, ._ },
-                                .{ ._, ._q, .mov, .limb(.dst0q), .tmp1q, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ .@"0:", ._q, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .p_, mir_tag, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(8), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                         } },
                     }, .{
                         .patterns = &.{
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
                             .unused,
                             .unused,
@@ -2808,13 +2808,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.mem},
-                        .each = .{ .limb = .{
-                            .of = .src0p,
-                            .body = &.{
-                                .{ ._, ._, .mov, .tmp1p, .limb(.src0p), ._, ._ },
-                                .{ ._, ._, mir_tag, .tmp1p, .limb(.src1p), ._, ._ },
-                                .{ ._, ._, .mov, .limb(.dst0p), .tmp1p, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._, mir_tag, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .a(.tmp1, .add_size), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                         } },
                     } },
                 }) catch |err2| switch (err2) {
@@ -3306,7 +3306,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             },
                             .clobbers = .{ .eflags = true },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
                                 .unused,
                                 .unused,
@@ -3341,32 +3341,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0y,
-                                .of_mask = .dst0b,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3y, .limb(.src0y), ._, ._ },
-                                        .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .limb(.src1y), ._ },
-                                        .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0d), .tmp2d, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3y, .limb(.src0y), ._, ._ },
-                                        .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .limb(.src1y), ._ },
-                                        .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0d), .tmp2d, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ },
+                                    .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ },
+                                    .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
+                                    .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3376,34 +3382,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0y,
-                                .of_mask = .dst0w,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3y, .limb(.src0y), ._, ._ },
-                                        .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .limb(.src1y), ._ },
-                                        .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ },
-                                        .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2w, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3y, .limb(.src0y), ._, ._ },
-                                        .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .limb(.src1y), ._ },
-                                        .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ },
-                                        .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2w, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2w, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ },
+                                    .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ },
+                                    .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ },
+                                    .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ },
+                                    .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ },
+                                    .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3413,32 +3425,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0y,
-                                .of_mask = .dst0d,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3y, .limb(.src0y), ._, ._ },
-                                        .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .limb(.src1y), ._ },
-                                        .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0b), .tmp2b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3y, .limb(.src0y), ._, ._ },
-                                        .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .limb(.src1y), ._ },
-                                        .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0b), .tmp2b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ },
+                                    .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ },
+                                    .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ },
+                                    .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3448,34 +3466,64 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .reg = .rcx } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .reg = .rcx } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0y,
-                                .of_mask = .dst0q,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp4y, .limb(.src0y), ._, ._ },
-                                        .{ ._, .vp_q, .cmpeq, .tmp4y, .tmp4y, .limb(.src1y), ._ },
-                                        .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp4y, .limb(.src0y), ._, ._ },
-                                        .{ ._, .vp_q, .cmpeq, .tmp4y, .tmp4y, .limb(.src1y), ._ },
-                                        .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ },
-                                        .{ ._, ._, .xor, .tmp3b, .i(0b1111), ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp4y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_q, .cmpeq, .tmp4y, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._ },
+                                    .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(32), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp4y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_q, .cmpeq, .tmp4y, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._ },
+                                    .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp3b, .i(0b1111), ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(32), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3485,32 +3533,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0x,
-                                .of_mask = .dst0b,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .limb(.src1x), ._ },
-                                        .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2w, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .limb(.src1x), ._ },
-                                        .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2w, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2w, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ },
+                                    .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ },
+                                    .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
+                                    .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3520,34 +3574,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0x,
-                                .of_mask = .dst0w,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .limb(.src1x), ._ },
-                                        .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ },
-                                        .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp3x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .limb(.src1x), ._ },
-                                        .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ },
-                                        .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ },
+                                    .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ },
+                                    .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ },
+                                    .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ },
+                                    .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
+                                    .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3557,34 +3617,64 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .reg = .rcx } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .reg = .rcx } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0x,
-                                .of_mask = .dst0d,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp4x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .limb(.src1x), ._ },
-                                        .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp4x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .limb(.src1x), ._ },
-                                        .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
-                                        .{ ._, ._, .xor, .tmp3b, .i(0b1111), ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_d, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ },
+                                    .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_d, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ },
+                                    .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp3b, .i(0b1111), ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3594,34 +3684,64 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .reg = .rcx } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .reg = .rcx } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0x,
-                                .of_mask = .dst0q,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp4x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .limb(.src1x), ._ },
-                                        .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, .v_dqu, .mov, .tmp4x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .limb(.src1x), ._ },
-                                        .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
-                                        .{ ._, ._, .xor, .tmp3b, .i(0b11), ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ },
+                                    .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ },
+                                    .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp3b, .i(0b11), ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3631,32 +3751,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0x,
-                                .of_mask = .dst0b,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, ._dqu, .mov, .tmp3x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .p_b, .cmpeq, .tmp3x, .limb(.src1x), ._, ._ },
-                                        .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2w, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, ._dqu, .mov, .tmp3x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .p_b, .cmpeq, .tmp3x, .limb(.src1x), ._, ._ },
-                                        .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2w, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2w, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
+                                    .{ ._, ._, .not, .tmp2d, ._, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3666,34 +3792,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0x,
-                                .of_mask = .dst0w,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, ._dqu, .mov, .tmp3x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .p_w, .cmpeq, .tmp3x, .limb(.src1x), ._, ._ },
-                                        .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ },
-                                        .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, ._dqu, .mov, .tmp3x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .p_w, .cmpeq, .tmp3x, .limb(.src1x), ._, ._ },
-                                        .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ },
-                                        .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_w, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_w, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ },
+                                    .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3703,34 +3835,64 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .reg = .rcx } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .reg = .rcx } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0x,
-                                .of_mask = .dst0d,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, ._dqu, .mov, .tmp4x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .p_q, .cmpeq, .tmp4x, .limb(.src1x), ._, ._ },
-                                        .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, ._dqu, .mov, .tmp4x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .p_d, .cmpeq, .tmp4x, .limb(.src1x), ._, ._ },
-                                        .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
-                                        .{ ._, ._, .xor, .tmp3b, .i(0b1111), ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_d, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_d, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp3b, .i(0b1111), ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3740,143 +3902,249 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .reg = .rcx } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .reg = .rcx } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .sse } },
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0x,
-                                .of_mask = .dst0q,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, ._dqu, .mov, .tmp4x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .p_q, .cmpeq, .tmp4x, .limb(.src1x), ._, ._ },
-                                        .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, ._dqu, .mov, .tmp4x, .limb(.src0x), ._, ._ },
-                                        .{ ._, .p_q, .cmpeq, .tmp4x, .limb(.src1x), ._, ._ },
-                                        .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
-                                        .{ ._, ._, .xor, .tmp3b, .i(0b11), ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_q, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_q, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp3b, .i(0b11), ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(16), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp3), .tmp2b, ._, ._ },
                                 },
                             } },
                         }, .{
-                            .required_features = .{ .mmx, null },
+                            .required_features = .{ .sse, .mmx },
                             .src_constraints = .{ .{ .int = .byte }, .{ .int = .byte } },
                             .patterns = &.{
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .mmx } },
                                 .unused,
                                 .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0q,
-                                .of_mask = .dst0b,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, ._dqu, .mov, .tmp3q, .limb(.src0q), ._, ._ },
-                                        .{ ._, .p_b, .cmpeq, .tmp3q, .limb(.src1q), ._, ._ },
-                                        .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2w, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, ._dqu, .mov, .tmp3q, .limb(.src0q), ._, ._ },
-                                        .{ ._, .p_b, .cmpeq, .tmp3q, .limb(.src1q), ._, ._ },
-                                        .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2w, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2w, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", ._q, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(8), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ .@"0:", ._q, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ },
+                                    .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ },
+                                    .{ ._, ._, .add, .tmp0p, .i(8), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                                 },
                             } },
                         }, .{
-                            .required_features = .{ .mmx, null },
+                            .required_features = .{ .sse, .mmx },
                             .src_constraints = .{ .{ .int = .word }, .{ .int = .word } },
                             .patterns = &.{
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+                                .{ .kind = .{ .rc = .mmx } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .mmx } },
-                                .unused,
-                                .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0q,
-                                .of_mask = .dst0w,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, ._dqu, .mov, .tmp3q, .limb(.src0q), ._, ._ },
-                                        .{ ._, .p_w, .cmpeq, .tmp3q, .limb(.src1q), ._, ._ },
-                                        .{ ._, .p_b, .ackssw, .tmp3q, .tmp3q, ._, ._ },
-                                        .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, ._dqu, .mov, .tmp3q, .limb(.src0q), ._, ._ },
-                                        .{ ._, .p_w, .cmpeq, .tmp3q, .limb(.src1q), ._, ._ },
-                                        .{ ._, .p_b, .ackssw, .tmp3q, .tmp3q, ._, ._ },
-                                        .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ },
-                                        .{ ._, ._, .not, .tmp2b, ._, ._, ._ },
-                                        .{ ._, ._, .mov, .maskLimb(.dst0w), .tmp2b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ },
+                                    .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_w, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp4d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(8), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp4d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp4), .tmp2b, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ },
+                                    .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_w, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp4b, .i(0b1111), ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp4d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(8), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp4d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp4), .tmp2b, ._, ._ },
                                 },
                             } },
                         }, .{
-                            .required_features = .{ .mmx, null },
+                            .required_features = .{ .sse, .mmx },
                             .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword } },
                             .patterns = &.{
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .reg = .rcx } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .u32, .kind = .{ .reg = .rcx } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+                                .{ .kind = .{ .rc = .mmx } },
+                                .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .{ .kind = .{ .rc = .mmx } },
-                                .unused,
                             },
                             .dst_temps = .{.mem},
-                            .each = .{ .limb_and_mask_limb = .{
-                                .of = .src0q,
-                                .of_mask = .dst0d,
-                                .body = switch (cc) {
-                                    else => unreachable,
-                                    .e => &.{
-                                        .{ ._, ._dqu, .mov, .tmp4q, .limb(.src0q), ._, ._ },
-                                        .{ ._, .p_q, .cmpeq, .tmp4q, .limb(.src1q), ._, ._ },
-                                        .{ ._, ._ps, .movmsk, .tmp3d, .tmp4q, ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
-                                    .ne => &.{
-                                        .{ ._, ._dqu, .mov, .tmp4q, .limb(.src0q), ._, ._ },
-                                        .{ ._, .p_q, .cmpeq, .tmp4q, .limb(.src1q), ._, ._ },
-                                        .{ ._, ._ps, .movmsk, .tmp3d, .tmp4q, ._, ._ },
-                                        .{ ._, ._, .xor, .tmp3b, .i(0b1111), ._, ._ },
-                                        .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ },
-                                        .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ },
-                                    },
+                            .each = .{ .once = switch (cc) {
+                                else => unreachable,
+                                .e => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ },
+                                    .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_d, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_w, .ackssd, .tmp5q, .tmp3q, ._, ._ },
+                                    .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp4d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(8), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp4d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp4), .tmp2b, ._, ._ },
+                                },
+                                .ne => &.{
+                                    .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                                    .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ },
+                                    .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_d, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
+                                    .{ ._, .p_w, .ackssd, .tmp5q, .tmp3q, ._, ._ },
+                                    .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ },
+                                    .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp4b, .i(0b11), ._, ._ },
+                                    .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ },
+                                    .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ },
+                                    .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp4d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ },
+                                    .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ },
+                                    .{ .@"1:", ._, .add, .tmp0p, .i(8), ._, ._ },
+                                    .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                                    .{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ },
+                                    .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
+                                    .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ },
+                                    .{ ._, ._r, .sh, .tmp4d, .i(3), ._, ._ },
+                                    .{ ._, ._, .mov, .memi(.dst0b, .tmp4), .tmp2b, ._, ._ },
                                 },
                             } },
                         }, .{
@@ -3887,7 +4155,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .unused,
@@ -3915,7 +4183,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
                                 .unused,
@@ -3944,7 +4212,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
                                 .unused,
@@ -3972,7 +4240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
                                 .unused,
@@ -4001,7 +4269,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .unused,
@@ -4029,7 +4297,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .unused,
@@ -4058,7 +4326,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .unused,
@@ -4087,7 +4355,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .unused,
@@ -4185,7 +4453,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
@@ -4214,7 +4482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
@@ -4244,7 +4512,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
@@ -4273,7 +4541,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
@@ -4303,7 +4571,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
@@ -4332,7 +4600,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
@@ -4362,7 +4630,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
@@ -4392,7 +4660,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
@@ -4493,7 +4761,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
@@ -4523,7 +4791,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
@@ -4553,7 +4821,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
@@ -4582,7 +4850,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
@@ -4612,7 +4880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
@@ -4642,7 +4910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
@@ -4672,7 +4940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
@@ -4702,7 +4970,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u8, .kind = .{ .reg = .cl } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
@@ -4803,7 +5071,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u32, .kind = .{ .reg = .ecx } },
                                 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
@@ -4822,15 +5090,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ },
                                 .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ },
                                 .{ ._, ._, .add, .tmp1d, .i(1), ._, ._ },
-                                .{ ._, ._, .@"test", .tmp1d, .ia(-1, .tmp2, .add_bit_size), ._, ._ },
+                                .{ ._, ._, .@"test", .tmp1d, .ia(-1, .none, .add_ptr_bit_size), ._, ._ },
                                 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
                                 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
                                 .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
-                                .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_access_size), .tmp2p, ._, ._ },
+                                .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ },
                                 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
                                 .{ .@"1:", ._, .add, .tmp0p, .i(1), ._, ._ },
                                 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
-                                .{ ._, ._, .@"test", .tmp1d, .ia(-1, .tmp2, .add_bit_size), ._, ._ },
+                                .{ ._, ._, .@"test", .tmp1d, .ia(-1, .none, .add_ptr_bit_size), ._, ._ },
                                 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
                                 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
                                 .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
@@ -4842,7 +5110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ .src = .{ .to_mem, .to_mem } },
                             },
                             .extra_temps = .{
-                                .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                                .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .u32, .kind = .{ .reg = .ecx } },
                                 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
                                 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
@@ -4861,15 +5129,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                                 .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ },
                                 .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ },
                                 .{ ._, ._, .inc, .tmp1d, ._, ._, ._ },
-                                .{ ._, ._, .@"test", .tmp1d, .ia(-1, .tmp2, .add_bit_size), ._, ._ },
+                                .{ ._, ._, .@"test", .tmp1d, .ia(-1, .none, .add_ptr_bit_size), ._, ._ },
                                 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
                                 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
                                 .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
-                                .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_access_size), .tmp2p, ._, ._ },
+                                .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ },
                                 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
                                 .{ .@"1:", ._, .inc, .tmp0p, ._, ._, ._ },
                                 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
-                                .{ ._, ._, .@"test", .tmp1d, .ia(-1, .tmp2, .add_bit_size), ._, ._ },
+                                .{ ._, ._, .@"test", .tmp1d, .ia(-1, .none, .add_ptr_bit_size), ._, ._ },
                                 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
                                 .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ },
                                 .{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ },
@@ -5040,8 +5308,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                            .{ .type = .bool, .kind = .{ .rc = .general_purpose } },
                             .unused,
                             .unused,
                             .unused,
@@ -5049,18 +5317,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                         },
                         .clobbers = .{ .eflags = true },
                         .dst_temps = .{.{ .rc = .general_purpose }},
-                        .each = .{ .limb = .{
-                            .of = .src0p,
-                            .header = &.{
-                                .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, ._, .mov, .tmp0p, .limb(.src0p), ._, ._ },
-                                .{ ._, ._r, .sh, .tmp1b, .i(1), ._, ._ },
-                                .{ ._, ._, .sbb, .tmp0p, .limb(.src1p), ._, ._ },
-                                .{ ._, ._c, .set, .tmp1b, ._, ._, ._ },
-                                .{ ._, .fromCondition(cc), .set, .dst0b, ._, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ },
+                            .{ .@"0:", ._r, .sh, .tmp1b, .i(1), ._, ._ },
+                            .{ ._, ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._, .sbb, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._c, .set, .tmp1b, ._, ._, ._ },
+                            .{ ._, .fromCondition(cc), .set, .dst0b, ._, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .a(.tmp1, .add_size), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
                         } },
                     } },
                 }) catch |err| switch (err) {
@@ -5296,35 +5562,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
-                            .{ .kind = .{ .rc = .sse } },
-                            .{ .kind = .{ .rc = .sse } },
-                            .unused,
-                            .unused,
-                            .unused,
-                        },
-                        .dst_temps = .{.{ .cc = cc }},
-                        .each = .{ .limb = .{
-                            .of = .src0y,
-                            .header = &.{
-                                .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .tmp2y, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, .v_dqu, .mov, .tmp1y, .limb(.src0y), ._, ._ },
-                                .{ ._, .vp_, .xor, .tmp1y, .tmp1y, .limb(.src1y), ._ },
-                                .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .tmp1y, ._ },
-                            },
-                            .trailer = &.{
-                                .{ ._, .vp_, .@"test", .tmp2y, .tmp2y, ._, ._ },
-                            },
-                        } },
-                    }, .{
-                        .required_features = .{ .avx, null },
-                        .patterns = &.{
-                            .{ .src = .{ .to_mem, .to_mem } },
-                        },
-                        .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
@@ -5332,19 +5570,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.{ .cc = cc }},
-                        .each = .{ .limb = .{
-                            .of = .src0y,
-                            .header = &.{
-                                .{ ._, .v_pd, .xor, .tmp2y, .tmp2y, .tmp2y, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, .v_pd, .movu, .tmp1y, .limb(.src0y), ._, ._ },
-                                .{ ._, .v_pd, .xor, .tmp1y, .tmp1y, .limb(.src1y), ._ },
-                                .{ ._, .v_pd, .@"or", .tmp2y, .tmp2y, .tmp1y, ._ },
-                            },
-                            .trailer = &.{
-                                .{ ._, .vp_, .@"test", .tmp2y, .tmp2y, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ ._, .vp_, .xor, .tmp1y, .tmp1y, .tmp1y, ._ },
+                            .{ .@"0:", .v_dqu, .mov, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._ },
+                            .{ ._, .vp_, .@"or", .tmp1y, .tmp1y, .tmp2y, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                            .{ ._, .vp_, .@"test", .tmp1y, .tmp1y, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .avx, null },
@@ -5352,7 +5586,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
@@ -5360,19 +5594,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.{ .cc = cc }},
-                        .each = .{ .limb = .{
-                            .of = .src0x,
-                            .header = &.{
-                                .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, .v_dqu, .mov, .tmp1x, .limb(.src0x), ._, ._ },
-                                .{ ._, .vp_, .xor, .tmp1x, .tmp1x, .limb(.src1x), ._ },
-                                .{ ._, .vp_, .@"or", .tmp2x, .tmp2x, .tmp1x, ._ },
-                            },
-                            .trailer = &.{
-                                .{ ._, .vp_, .@"test", .tmp2x, .tmp2x, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ ._, .v_pd, .xor, .tmp1y, .tmp1y, .tmp1y, ._ },
+                            .{ .@"0:", .v_pd, .movu, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .v_pd, .xor, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._ },
+                            .{ ._, .v_pd, .@"or", .tmp1y, .tmp1y, .tmp2y, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(32), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                            .{ ._, .vp_, .@"test", .tmp1y, .tmp1y, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .avx, null },
@@ -5380,7 +5610,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
@@ -5388,19 +5618,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.{ .cc = cc }},
-                        .each = .{ .limb = .{
-                            .of = .src0x,
-                            .header = &.{
-                                .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, .v_dqu, .mov, .tmp1x, .limb(.src0x), ._, ._ },
-                                .{ ._, .vp_, .xor, .tmp1x, .tmp1x, .limb(.src1x), ._ },
-                                .{ ._, .vp_, .@"or", .tmp2x, .tmp2x, .tmp1x, ._ },
-                            },
-                            .trailer = &.{
-                                .{ ._, .vp_, .@"test", .tmp2x, .tmp2x, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ ._, .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
+                            .{ .@"0:", .v_dqu, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._ },
+                            .{ ._, .vp_, .@"or", .tmp1x, .tmp1x, .tmp2x, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                            .{ ._, .vp_, .@"test", .tmp1x, .tmp1x, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .sse4_1, null },
@@ -5408,7 +5634,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
@@ -5416,19 +5642,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.{ .cc = cc }},
-                        .each = .{ .limb = .{
-                            .of = .src0x,
-                            .header = &.{
-                                .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, ._dqu, .mov, .tmp1x, .limb(.src0x), ._, ._ },
-                                .{ ._, .p_, .xor, .tmp1x, .limb(.src1x), ._, ._ },
-                                .{ ._, .p_, .@"or", .tmp2x, .tmp1x, ._, ._ },
-                            },
-                            .trailer = &.{
-                                .{ ._, .p_, .@"test", .tmp2x, .tmp2x, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ ._, .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
+                            .{ .@"0:", ._dqu, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .p_, .xor, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                            .{ ._, .p_, .@"test", .tmp1x, .tmp1x, ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .sse2, null },
@@ -5436,7 +5658,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .sse } },
                             .{ .kind = .{ .rc = .sse } },
                             .unused,
@@ -5444,22 +5666,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.{ .cc = cc }},
-                        .each = .{ .limb = .{
-                            .of = .src0x,
-                            .header = &.{
-                                .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, ._dqu, .mov, .tmp1x, .limb(.src0x), ._, ._ },
-                                .{ ._, .p_, .xor, .tmp1x, .limb(.src1x), ._, ._ },
-                                .{ ._, .p_, .@"or", .tmp2x, .tmp1x, ._, ._ },
-                            },
-                            .trailer = &.{
-                                .{ ._, .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
-                                .{ ._, .p_b, .cmpeq, .tmp2x, .tmp1x, ._, ._ },
-                                .{ ._, .p_b, .movmsk, .tmp0d, .tmp2x, ._, ._ },
-                                .{ ._, ._, .xor, .tmp0d, .i(0xffff), ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ ._, .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
+                            .{ .@"0:", ._dqu, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .p_, .xor, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(16), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                            .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
+                            .{ ._, .p_b, .cmpeq, .tmp1x, .tmp2x, ._, ._ },
+                            .{ ._, .p_b, .movmsk, .tmp0d, .tmp1x, ._, ._ },
+                            .{ ._, ._, .cmp, .tmp0d, .i(0xffff), ._, ._ },
                         } },
                     }, .{
                         .required_features = .{ .sse, .mmx },
@@ -5467,7 +5685,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .kind = .{ .rc = .mmx } },
                             .{ .kind = .{ .rc = .mmx } },
                             .unused,
@@ -5475,29 +5693,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.{ .cc = cc }},
-                        .each = .{ .limb = .{
-                            .of = .src0q,
-                            .header = &.{
-                                .{ ._, .p_, .xor, .tmp2q, .tmp2q, ._, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, ._q, .mov, .tmp1q, .limb(.src0q), ._, ._ },
-                                .{ ._, .p_, .xor, .tmp1q, .limb(.src1q), ._, ._ },
-                                .{ ._, .p_, .@"or", .tmp2q, .tmp1q, ._, ._ },
-                            },
-                            .trailer = &.{
-                                .{ ._, .p_, .xor, .tmp1q, .tmp1q, ._, ._ },
-                                .{ ._, .p_b, .cmpeq, .tmp2q, .tmp1q, ._, ._ },
-                                .{ ._, .p_b, .movmsk, .tmp0d, .tmp2q, ._, ._ },
-                                .{ ._, ._, .xor, .tmp0d, .i(0xff), ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ ._, .p_, .xor, .tmp1q, .tmp1q, ._, ._ },
+                            .{ .@"0:", ._q, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .p_, .xor, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
+                            .{ ._, .p_, .@"or", .tmp1q, .tmp2q, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .i(8), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                            .{ ._, .p_, .xor, .tmp2q, .tmp2q, ._, ._ },
+                            .{ ._, .p_b, .cmpeq, .tmp1q, .tmp2q, ._, ._ },
+                            .{ ._, .p_b, .movmsk, .tmp0d, .tmp1q, ._, ._ },
+                            .{ ._, ._, .cmp, .tmp0d, .i(0xff), ._, ._ },
                         } },
                     }, .{
                         .patterns = &.{
                             .{ .src = .{ .to_mem, .to_mem } },
                         },
                         .extra_temps = .{
-                            .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+                            .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
                             .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
                             .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
                             .unused,
@@ -5505,19 +5719,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
                             .unused,
                         },
                         .dst_temps = .{.{ .cc = cc }},
-                        .each = .{ .limb = .{
-                            .of = .src0p,
-                            .header = &.{
-                                .{ ._, ._, .xor, .tmp2p, .tmp2p, ._, ._ },
-                            },
-                            .body = &.{
-                                .{ ._, ._, .mov, .tmp1p, .limb(.src0p), ._, ._ },
-                                .{ ._, ._, .xor, .tmp1p, .limb(.src1p), ._, ._ },
-                                .{ ._, ._, .@"or", .tmp2p, .tmp1p, ._, ._ },
-                            },
-                            .trailer = &.{
-                                .{ ._, ._, .@"test", .tmp2p, .tmp2p, ._, ._ },
-                            },
+                        .each = .{ .once = &.{
+                            .{ ._, ._, .mov, .tmp0p, .a(.src0, .sub_size), ._, ._ },
+                            .{ ._, ._, .xor, .tmp1p, .tmp1p, ._, ._ },
+                            .{ .@"0:", ._, .mov, .tmp2p, .memia(.src0p, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._, .xor, .tmp2p, .memia(.src1p, .tmp0, .add_size), ._, ._ },
+                            .{ ._, ._, .@"or", .tmp1p, .tmp2p, ._, ._ },
+                            .{ ._, ._, .add, .tmp0p, .a(.tmp2, .add_size), ._, ._ },
+                            .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
+                            .{ ._, ._, .@"test", .tmp1p, .tmp1p, ._, ._ },
                         } },
                     } },
                 }) catch |err| switch (err) {
@@ -24063,8 +24273,6 @@ const Select = struct {
         backward: ?Mir.Inst.Index,
         forward: [1]?Mir.Inst.Index,
     },
-    limb: Memory.Mod.Rm,
-    mask_limb: Memory.Mod.Rm,
 
     fn emitLabel(s: *Select, label_index: Label) void {
         if (label_index == ._) return;
@@ -24112,23 +24320,6 @@ const Select = struct {
         dst_temps: [@intFromEnum(Select.Operand.Ref.src0) - @intFromEnum(Select.Operand.Ref.dst0)]TempSpec.Kind = @splat(.unused),
         each: union(enum) {
             once: []const Instruction,
-            limb: struct {
-                of: Select.Operand.Ref.Sized,
-                header: []const Instruction = &.{},
-                first: ?[]const Instruction = null,
-                body: []const Instruction,
-                last: ?[]const Instruction = null,
-                trailer: []const Instruction = &.{},
-            },
-            limb_and_mask_limb: struct {
-                of: Select.Operand.Ref.Sized,
-                of_mask: Select.Operand.Ref.Sized,
-                header: []const Instruction = &.{},
-                first: ?[]const Instruction = null,
-                body: []const Instruction,
-                last: ?[]const Instruction = null,
-                trailer: []const Instruction = &.{},
-            },
         },
     };
 
@@ -24349,26 +24540,20 @@ const Select = struct {
             backward_label,
             forward_label,
             ref,
-            limb,
-            mask_limb,
             simm,
             lea,
             mem,
         };
         const Adjust = enum {
             none,
-            add_access_size,
-            sub_access_size,
+            add_ptr_size,
+            sub_ptr_size,
+            add_ptr_bit_size,
+            sub_ptr_bit_size,
             add_size,
             sub_size,
-            add_bit_size,
-            sub_bit_size,
-            add_limbs,
-            sub_limbs,
             add_len,
             sub_len,
-            add_elem_size,
-            sub_elem_size,
             add_elem_limbs,
             sub_elem_limbs,
         };
@@ -24435,6 +24620,15 @@ const Select = struct {
                 const tmp4x: Sized = .{ .ref = .tmp4, .size = .xword };
                 const tmp4y: Sized = .{ .ref = .tmp4, .size = .yword };
 
+                const tmp5: Sized = .{ .ref = .tmp5, .size = .none };
+                const tmp5b: Sized = .{ .ref = .tmp5, .size = .byte };
+                const tmp5w: Sized = .{ .ref = .tmp5, .size = .word };
+                const tmp5d: Sized = .{ .ref = .tmp5, .size = .dword };
+                const tmp5p: Sized = .{ .ref = .tmp5, .size = .ptr };
+                const tmp5q: Sized = .{ .ref = .tmp5, .size = .qword };
+                const tmp5x: Sized = .{ .ref = .tmp5, .size = .xword };
+                const tmp5y: Sized = .{ .ref = .tmp5, .size = .yword };
+
                 const dst0: Sized = .{ .ref = .dst0, .size = .none };
                 const dst0b: Sized = .{ .ref = .dst0, .size = .byte };
                 const dst0w: Sized = .{ .ref = .dst0, .size = .word };
@@ -24515,6 +24709,14 @@ const Select = struct {
         const tmp4x: Select.Operand = .{ .tag = .ref, .base = .tmp4x };
         const tmp4y: Select.Operand = .{ .tag = .ref, .base = .tmp4y };
 
+        const tmp5b: Select.Operand = .{ .tag = .ref, .base = .tmp5b };
+        const tmp5w: Select.Operand = .{ .tag = .ref, .base = .tmp5w };
+        const tmp5d: Select.Operand = .{ .tag = .ref, .base = .tmp5d };
+        const tmp5p: Select.Operand = .{ .tag = .ref, .base = .tmp5p };
+        const tmp5q: Select.Operand = .{ .tag = .ref, .base = .tmp5q };
+        const tmp5x: Select.Operand = .{ .tag = .ref, .base = .tmp5x };
+        const tmp5y: Select.Operand = .{ .tag = .ref, .base = .tmp5y };
+
         const dst0b: Select.Operand = .{ .tag = .ref, .base = .dst0b };
         const dst0w: Select.Operand = .{ .tag = .ref, .base = .dst0w };
         const dst0d: Select.Operand = .{ .tag = .ref, .base = .dst0d };
@@ -24539,13 +24741,6 @@ const Select = struct {
         const src1x: Select.Operand = .{ .tag = .ref, .base = .src1x };
         const src1y: Select.Operand = .{ .tag = .ref, .base = .src1y };
 
-        fn limb(ref: Ref.Sized) Select.Operand {
-            return .{ .tag = .limb, .base = ref };
-        }
-        fn maskLimb(ref: Ref.Sized) Select.Operand {
-            return .{ .tag = .mask_limb, .base = ref };
-        }
-
         fn i(imm: i32) Select.Operand {
             return .{ .tag = .simm, .imm = imm };
         }
@@ -24673,28 +24868,14 @@ const Select = struct {
         fn adjustedImm(op: Select.Operand, s: *const Select) i32 {
             return switch (op.adjust) {
                 .none => op.imm,
-                .add_access_size => op.imm + @as(i32, @intCast(@divExact(op.base.size.bitSize(s.cg.target), 8))),
-                .sub_access_size => op.imm - @as(i32, @intCast(@divExact(op.base.size.bitSize(s.cg.target), 8))),
+                .add_ptr_size => op.imm + @divExact(s.cg.target.ptrBitWidth(), 8),
+                .sub_ptr_size => op.imm - @divExact(s.cg.target.ptrBitWidth(), 8),
+                .add_ptr_bit_size => op.imm + s.cg.target.ptrBitWidth(),
+                .sub_ptr_bit_size => op.imm - s.cg.target.ptrBitWidth(),
                 .add_size => op.imm + @as(i32, @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu))),
                 .sub_size => op.imm - @as(i32, @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu))),
-                .add_bit_size => op.imm + @as(i32, @intCast(op.base.ref.deref(s).typeOf(s.cg).bitSize(s.cg.pt.zcu))),
-                .sub_bit_size => op.imm - @as(i32, @intCast(op.base.ref.deref(s).typeOf(s.cg).bitSize(s.cg.pt.zcu))),
-                .add_limbs => op.imm + @as(i32, @intCast(@divExact(
-                    op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu),
-                    @divExact(op.base.size.bitSize(s.cg.target), 8),
-                ))),
-                .sub_limbs => op.imm + @as(i32, @intCast(@divExact(
-                    op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu),
-                    @divExact(op.base.size.bitSize(s.cg.target), 8),
-                ))),
                 .add_len => op.imm + @as(i32, @intCast(op.base.ref.deref(s).typeOf(s.cg).vectorLen(s.cg.pt.zcu))),
                 .sub_len => op.imm - @as(i32, @intCast(op.base.ref.deref(s).typeOf(s.cg).vectorLen(s.cg.pt.zcu))),
-                .add_elem_size => op.imm + @as(i32, @intCast(
-                    op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),
-                )),
-                .sub_elem_size => op.imm - @as(i32, @intCast(
-                    op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),
-                )),
                 .add_elem_limbs => op.imm + @as(i32, @intCast(@divExact(
                     op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),
                     @divExact(op.base.size.bitSize(s.cg.target), 8),
@@ -24726,7 +24907,6 @@ const Select = struct {
                     else => |mcv| .{ .mem = try mcv.mem(s.cg, .{ .size = op.base.size }) },
                     .register => |reg| .{ .reg = registerAlias(reg, @intCast(@divExact(op.base.size.bitSize(s.cg.target), 8))) },
                 },
-                inline .limb, .mask_limb => |kind| .{ .mem = try op.base.ref.deref(s).tracking(s.cg).short.mem(s.cg, @field(s, @tagName(kind))) },
                 .simm => .{ .imm = .s(op.adjustedImm(s)) },
                 .lea => .{ .mem = .{
                     .base = .{ .reg = registerAlias(op.base.ref.deref(s).tracking(s.cg).short.register, @divExact(s.cg.target.ptrBitWidth(), 8)) },
@@ -24775,8 +24955,6 @@ fn select(
                 .cg = cg,
                 .temps = undefined,
                 .labels = @splat(.{ .forward = @splat(null), .backward = null }),
-                .limb = undefined,
-                .mask_limb = undefined,
             };
             const tmp_slots = s.temps[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];
             const dst_slots = s.temps[@intFromEnum(Select.Operand.Ref.dst0)..@intFromEnum(Select.Operand.Ref.src0)];
@@ -24797,74 +24975,11 @@ fn select(
             @memcpy(dst_slots[0..dst_temps.len], dst_temps);
 
             switch (case.each) {
-                .once => |body| for (body) |inst| try s.emit(inst),
-                .limb => |limb| {
-                    const limb_of_size: i32 = @intCast(limb.of.ref.deref(&s).typeOf(cg).abiSize(cg.pt.zcu));
-                    s.limb = .{
-                        .size = limb.of.size,
-                        .index = (try Select.Operand.tmp0p.lower(&s)).reg,
-                        .disp = limb_of_size,
-                    };
-                    for (limb.header) |inst| try s.emit(inst);
-                    try s.emit(.{ ._, ._, .mov, .tmp0p, .i(-limb_of_size), ._, ._ });
-                    assert(s.labels[0].backward == null);
-                    s.labels[0].backward = @intCast(cg.mir_instructions.len);
-                    for (limb.body) |inst| try s.emit(inst);
-                    try s.emit(.{ ._, ._, .add, .tmp0p, .i(@intCast(@divExact(limb.of.size.bitSize(cg.target), 8))), ._, ._ });
-                    try s.emit(.{ ._, ._nc, .j, .@"0b", ._, ._, ._ });
-                    for (limb.trailer) |inst| try s.emit(inst);
-                },
-                .limb_and_mask_limb => |limb| {
-                    const limb_of_size: i32 = @intCast(limb.of.ref.deref(&s).typeOf(cg).abiSize(cg.pt.zcu));
-                    s.limb = .{
-                        .size = limb.of.size,
-                        .index = (try Select.Operand.tmp0p.lower(&s)).reg,
-                        .disp = limb_of_size,
-                    };
-                    const mask_limb_bit_size: u31 = @intCast(@divExact(
-                        limb.of.size.bitSize(cg.target),
-                        limb.of_mask.size.bitSize(cg.target),
-                    ));
-                    if (mask_limb_bit_size >= 8) {
-                        s.mask_limb = .{
-                            .size = .fromBitSize(mask_limb_bit_size),
-                            .index = (try Select.Operand.tmp1p.lower(&s)).reg,
-                        };
-                        for (limb.header) |inst| try s.emit(inst);
-                        try s.emit(.{ ._, ._, .mov, .tmp0p, .i(-limb_of_size), ._, ._ });
-                        try s.emit(.{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ });
-                        assert(s.labels[0].backward == null);
-                        s.labels[0].backward = @intCast(cg.mir_instructions.len);
-                        for (limb.body) |inst| try s.emit(inst);
-                        try s.emit(.{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, @divExact(mask_limb_bit_size, 8)), ._, ._ });
-                        try s.emit(.{ ._, ._, .add, .tmp0p, .i(@intCast(@divExact(limb.of.size.bitSize(cg.target), 8))), ._, ._ });
-                        try s.emit(.{ ._, ._nc, .j, .@"0b", ._, ._, ._ });
-                        for (limb.trailer) |inst| try s.emit(inst);
-                    } else {
-                        for (limb.header) |inst| try s.emit(inst);
-                        try s.emit(.{ ._, ._, .mov, .tmp0p, .i(-limb_of_size), ._, ._ });
-                        try s.emit(.{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ });
-                        try s.emit(.{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ });
-                        assert(s.labels[0].backward == null);
-                        s.labels[0].backward = @intCast(cg.mir_instructions.len);
-                        for (limb.body) |inst| try s.emit(inst);
-                        try s.emit(.{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, mask_limb_bit_size), ._, ._ });
-                        try s.emit(.{ ._, ._, .@"test", .tmp1d, .i(0b111), ._, ._ });
-                        try s.emit(.{ ._, ._nz, .j, .@"1f", ._, ._, ._ });
-                        try s.emit(.{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ });
-                        try s.emit(.{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ });
-                        try s.emit(.{ ._, ._, .mov, .memid(.{ .ref = limb.of_mask.ref, .size = .byte }, .tmp3, -1), .tmp2b, ._, ._ });
-                        try s.emit(.{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ });
-                        try s.emit(.{ .@"1:", ._, .add, .tmp0p, .i(@intCast(@divExact(limb.of.size.bitSize(cg.target), 8))), ._, ._ });
-                        try s.emit(.{ ._, ._nc, .j, .@"0b", ._, ._, ._ });
-                        try s.emit(.{ ._, ._, .lea, .tmp3d, .lead(.none, .tmp1, -1), ._, ._ });
-                        try s.emit(.{ ._, ._r, .sh, .tmp3d, .i(3), ._, ._ });
-                        try s.emit(.{ ._, ._, .mov, .memi(.{ .ref = limb.of_mask.ref, .size = .byte }, .tmp3), .tmp2b, ._, ._ });
-                        for (limb.trailer) |inst| try s.emit(inst);
-                    }
+                .once => |body| {
+                    for (body) |inst| try s.emit(inst);
+                    s.emitLabel(.@"0:");
                 },
             }
-            s.emitLabel(.@"0:");
 
             for (dst_temps, case.dst_temps[0..dst_temps.len]) |dst_temp, dst_kind| dst_kind.finish(dst_temp, &s);
             for (case.extra_temps, tmp_slots) |spec, temp| if (spec.kind != .unused) try temp.die(cg);