Commit 3fd3358f37
Changed files (17)
lib
std
zig
src
lib/std/zig/Zir.zig
@@ -2142,7 +2142,7 @@ pub const Inst = struct {
ref_start_index = static_len,
_,
- pub const static_len = 109;
+ pub const static_len = 117;
pub fn toRef(i: Index) Inst.Ref {
return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i));
@@ -2229,6 +2229,7 @@ pub const Inst = struct {
vector_8_i8_type,
vector_16_i8_type,
vector_32_i8_type,
+ vector_64_i8_type,
vector_1_u8_type,
vector_2_u8_type,
vector_4_u8_type,
@@ -2236,20 +2237,27 @@ pub const Inst = struct {
vector_16_u8_type,
vector_32_u8_type,
vector_64_u8_type,
+ vector_2_i16_type,
vector_4_i16_type,
vector_8_i16_type,
vector_16_i16_type,
+ vector_32_i16_type,
vector_4_u16_type,
vector_8_u16_type,
vector_16_u16_type,
+ vector_32_u16_type,
vector_4_i32_type,
vector_8_i32_type,
+ vector_16_i32_type,
vector_4_u32_type,
vector_8_u32_type,
+ vector_16_u32_type,
vector_2_i64_type,
vector_4_i64_type,
+ vector_8_i64_type,
vector_2_u64_type,
vector_4_u64_type,
+ vector_8_u64_type,
vector_1_u128_type,
vector_2_u128_type,
vector_1_u256_type,
src/arch/x86_64/CodeGen.zig
@@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}
fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
- @setEvalBranchQuota(24_000);
+ @setEvalBranchQuota(25_200);
const pt = cg.pt;
const zcu = pt.zcu;
const ip = &zcu.intern_pool;
@@ -117441,7 +117441,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
const res_ty = cg.typeOfIndex(inst);
switch (reduce.operation) {
.And, .Or, .Xor => {},
- .Min, .Max => break :fallback try cg.airReduce(inst),
+ .Min => if (cg.floatBits(res_ty)) |_| break :fallback try cg.airReduce(inst),
+ .Max => break :fallback try cg.airReduce(inst),
.Add, .Mul => {},
}
var ops = try cg.tempsFromOperands(inst, .{reduce.operand});
@@ -119006,7 +119007,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
@@ -119033,8 +119034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
@@ -119062,7 +119062,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
@@ -119089,8 +119089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
.{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
@@ -119117,9 +119116,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
@@ -119146,10 +119145,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
@@ -119190,9 +119188,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.@"and" => .@"or",
.@"or", .xor => .@"and",
}, .dst0x, .src0x, .lea(.tmp0x), ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
@@ -119232,10 +119230,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.@"and" => .@"or",
.@"or", .xor => .@"and",
}, .dst0x, .lea(.tmp0x), ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
@@ -119263,11 +119260,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
@@ -119294,12 +119291,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
@@ -119340,11 +119336,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.@"and" => .@"or",
.@"or", .xor => .@"and",
}, .dst0x, .src0x, .lea(.tmp0x), ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
@@ -119384,12 +119380,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.@"and" => .@"or",
.@"or", .xor => .@"and",
}, .dst0x, .lea(.tmp0x), ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
@@ -119419,11 +119414,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
@@ -119454,9 +119449,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
.{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
@@ -119498,11 +119493,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}, .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
@@ -119546,9 +119541,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
@@ -119579,11 +119574,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
@@ -119633,11 +119628,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
@@ -119672,11 +119667,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
@@ -119713,9 +119708,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
@@ -119748,12 +119743,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
@@ -119810,11 +119804,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
@@ -119862,11 +119856,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
@@ -119916,9 +119910,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
@@ -119964,12 +119958,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
@@ -120054,7 +120047,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -120079,8 +120072,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -120105,9 +120097,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -120132,10 +120124,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -120160,9 +120151,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .dst0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -120185,11 +120176,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .dst0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -120214,11 +120205,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -120243,12 +120234,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -120286,11 +120276,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.@"and" => .@"or",
.@"or", .xor => .@"and",
}, .dst0x, .src0x, .lea(.tmp0x), ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -120328,12 +120318,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.@"and" => .@"or",
.@"or", .xor => .@"and",
}, .dst0x, .lea(.tmp0x), ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -120360,11 +120349,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -120393,9 +120382,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
.{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -120435,11 +120424,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}, .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -120481,9 +120470,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -120512,11 +120501,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -120564,11 +120553,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -120601,11 +120590,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -120640,9 +120629,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -120673,12 +120662,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -120732,11 +120720,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -120782,11 +120770,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -120834,9 +120822,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -120880,12 +120868,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -120938,7 +120925,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -120963,7 +120950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -120988,9 +120975,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -121015,9 +121002,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -121042,9 +121029,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -121069,9 +121056,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -121098,9 +121085,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -121129,7 +121116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
.{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -121169,9 +121156,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}, .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -121213,7 +121200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -121242,9 +121229,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -121292,9 +121279,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -121327,9 +121314,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -121364,7 +121351,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -121395,9 +121382,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -121451,9 +121438,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -121499,9 +121486,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -121549,7 +121536,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -121593,9 +121580,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -121648,7 +121635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -121673,7 +121660,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -121700,7 +121687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -121754,7 +121741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -121810,7 +121797,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -121858,7 +121845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -121891,7 +121878,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -121955,7 +121942,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -122009,7 +121996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -122055,7 +122042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -122145,7 +122132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -122797,16 +122784,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
} },
},
- .Min, .Max => unreachable,
- .Add => comptime &.{ .{
+ .Min => comptime &.{ .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
.extra_temps = .{
- .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
.unused,
.unused,
.unused,
@@ -122821,17 +122807,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
- .required_features = .{ .sse2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mut_sse, .none, .none } },
},
.extra_temps = .{
- .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
.unused,
.unused,
.unused,
@@ -122847,12 +122833,42 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
@@ -122871,15 +122887,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mut_sse, .none, .none } },
},
@@ -122899,16 +122913,102 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .tmp0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .tmp0x, .dst0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .mins, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"and", .tmp0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"or", .tmp0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
@@ -122927,15 +123027,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .tmp0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .tmp0x, .src0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .tmp0x, .dst0x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mut_sse, .none, .none } },
},
@@ -122954,16 +123054,106 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
- .{ ._, .p_b, .add, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .minu, .tmp0x, .src0x, ._, ._ },
.{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
@@ -122982,17 +123172,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mut_sse, .none, .none } },
},
@@ -123011,25 +123199,135 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
.{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -123043,24 +123341,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
- .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mut_sse, .none, .none } },
},
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
.{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -123074,20 +123372,120 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
- .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
@@ -123106,19 +123504,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mut_sse, .none, .none } },
},
@@ -123137,27 +123533,147 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
.{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -123171,26 +123687,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
- .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
.required_features = .{ .sse2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mut_sse, .none, .none } },
},
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
.{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -123204,27 +123720,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
- .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
- .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
- .required_features = .{ .avx2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
.extra_temps = .{
- .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
.unused,
.unused,
.unused,
@@ -123238,21 +123753,99 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
- .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
@@ -123271,27 +123864,131 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
- .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
.required_features = .{ .avx2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
.{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -123305,28 +124002,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
- .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_sse, .none, .none } },
},
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
- .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
.{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -123340,24 +124037,90 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
- .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
- .required_features = .{ .avx512f, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
.patterns = &.{
- .{ .src = .{ .to_mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
},
.extra_temps = .{
.{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
@@ -123372,31 +124135,104 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
- .{ ._, .vp_b, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
- .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
.required_features = .{ .avx512f, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_64_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
+ .{ ._, .vp_b, .mins, .dst0y, .dst0y, .tmp3y, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
.{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -123410,26 +124246,269 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .rc = .sse }, .unused },
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
- .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
- .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
- .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
- .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
- .{ ._, .vp_b, .add, .dst0y, .dst0y, .tmp2y, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_b, .minu, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .vp_b, .mins, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
+ .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .vp_b, .minu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
+ .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
.required_features = .{ .avx2, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
+ .{ .@"0:", .vp_b, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .vp_b, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .p_b, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -123451,24 +124530,6434 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
.{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
- .{ .@"0:", .vp_b, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ .@"0:", .vp_b, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
- .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
.required_features = .{ .avx, null, null, null },
- .dst_constraints = .{ .{ .int = .byte }, .any },
- .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .vp_b, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .p_b, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_64_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .vp_b, .mins, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
+ .{ ._, .vp_b, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_b, .mins, .dst0y, .dst0y, .tmp3y, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .vp_b, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
+ .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ .@"0:", .vp_b, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .p_b, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
+ .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
+ .{ .@"0:", .vp_b, .minu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
+ .{ ._, .vp_b, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_b, .minu, .dst0y, .dst0y, .tmp2y, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ .@"0:", .vp_b, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ .@"0:", .vp_b, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ .@"0:", .p_b, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .cmov, .slow_incdec, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
+ .{ ._, ._g, .cmov, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .cmov, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
+ .{ ._, ._g, .cmov, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
+ .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .slow_incdec, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
+ .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .dst_constraints = .{ .{ .signed_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
+ .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
+ .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
+ .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .cmov, .slow_incdec, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
+ .{ ._, ._a, .cmov, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .cmov, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
+ .{ ._, ._a, .cmov, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
+ .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .slow_incdec, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
+ .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
+ .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
+ .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
+ .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .minu, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_w, .mins, .tmp0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .tmp0x, .dst0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .mins, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_w, .minu, .tmp0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .tmp0x, .dst0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .minu, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .minu, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_w, .sub, .tmp0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .minu, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .minu, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_w, .broadcast, .tmp2x, .lea(.tmp0w), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
+ .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
+ .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._, .movddup, .tmp3x, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vph_w, .minposu, .dst0x, .src0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .ph_w, .minposu, .dst0x, .src0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_w, .broadcast, .tmp2y, .lea(.tmp0w), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ss, .broadcast, .tmp2y, .lea(.tmp0d), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .v_ps, .xor, .dst0y, .tmp2y, .src0y, ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp0x, .lea(.tmp1x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp0x, .lea(.tmp1x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_w, .broadcast, .tmp2y, .lea(.tmp0w), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .xor, .tmp4y, .tmp2y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
+ .{ ._, .vp_w, .minu, .dst0y, .dst0y, .tmp4y, ._ },
+ .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_w, .minu, .dst0y, .dst0y, .tmp2y, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .vp_w, .mins, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
+ .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp0x, .lea(.tmp1x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .vp_w, .minu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
+ .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
+ .{ .@"0:", .vp_w, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .vp_w, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .p_w, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .p_w, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
+ .{ .@"0:", .vp_w, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .vp_w, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .p_w, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_32_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .vp_w, .mins, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
+ .{ ._, .vp_w, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_w, .mins, .dst0y, .dst0y, .tmp3y, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .vp_w, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
+ .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ .@"0:", .vp_w, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .p_w, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .p_w, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
+ .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
+ .{ .@"0:", .vp_w, .minu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
+ .{ ._, .vp_w, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_w, .minu, .dst0y, .dst0y, .tmp2y, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ .@"0:", .vp_w, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ .@"0:", .vp_w, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ .@"0:", .p_w, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp2x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .cmov, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._g, .cmov, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .dst_constraints = .{ .{ .signed_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
+ .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .cmov, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._a, .cmov, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
+ .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .tmp0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .tmp0x, .dst0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"and", .tmp0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"or", .tmp0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .tmp0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .tmp0x, .dst0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"and", .tmp3x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"or", .tmp3x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp1x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .src0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
+ .{ ._, .vp_d, .mins, .dst0y, .dst0y, .tmp3y, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_d, .minu, .dst0y, .dst0y, .tmp2y, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .vp_d, .mins, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
+ .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .vp_d, .minu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
+ .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
+ .{ .@"0:", .vp_d, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .vp_d, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .p_d, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
+ .{ .@"0:", .vp_d, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .vp_d, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .p_d, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .dst0x, .tmp1x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .dst0x, .tmp1x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .vp_d, .mins, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
+ .{ ._, .vp_d, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .mins, .dst0y, .dst0y, .tmp3y, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .vp_d, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
+ .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ .@"0:", .vp_d, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .p_d, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .dst0x, .tmp3x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .mins, .dst0x, .tmp3x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
+ .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
+ .{ .@"0:", .vp_d, .minu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
+ .{ ._, .vp_d, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .minu, .dst0y, .dst0y, .tmp2y, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ .@"0:", .vp_d, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ .@"0:", .vp_d, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_1, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ .@"0:", .p_d, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_d, .minu, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp4x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
+ .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
+ .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .cmov, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._g, .cmov, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .dst_constraints = .{ .{ .signed_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .cmov, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._a, .cmov, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
+ .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
+ } },
+ }, .{
+ .required_features = .{ .sse4_2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .tmp0x, .src0x, .tmp0x, .tmp1x },
+ .{ ._, .v_i128, .extract, .dst0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .tmp0x, .dst0x, .tmp1x },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .tmp0x, .src0x, .tmp0x, .tmp1x },
+ .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .tmp0x, .dst0x, .tmp1x },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .tmp3x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .v_i128, .extract, .dst0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .tmp3x, .dst0x, .tmp4x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, .v_pd, .xor, .dst0y, .tmp2y, .src0y, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .tmp3x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .v_f128, .extract, .dst0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .tmp3x, .dst0x, .tmp4x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .mem, .none, .none } },
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, .v_pd, .xor, .dst0y, .tmp2y, .src0y, ._ },
+ .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_8_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .xor, .tmp4y, .tmp2y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
+ .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp0y, .memd(.src0y, 32), ._, ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1y, .dst0y, .tmp0y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp0y, .tmp1y },
+ .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
+ .{ ._, .vp_, .xor, .tmp3y, .tmp2y, .memd(.src0y, 32), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
+ .{ .@"0:", .v_dqa, .mov, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp2y, .dst0y, .tmp1y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp1y, .tmp2y },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp2x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp2x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp2x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp2x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
+ } },
+ }, .{
+ .required_features = .{ .sse4_2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp1x, .tmp2x, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp1x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_unaligned_size, -32), ._ },
+ .{ .@"0:", .vp_, .xor, .tmp3y, .tmp2y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0x, .tmp2x, .memad(.src0x, .add_unaligned_size, -16), ._ },
+ .{ .@"0:", .vp_, .xor, .tmp3x, .tmp2x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_8_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
+ .{ .@"0:", .v_dqa, .mov, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_4_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .v_dqa, .mov, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_4_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
+ .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ .@"0:", .v_dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
+ } },
+ }, .{
+ .required_features = .{ .sse4_2, null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_2_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .vp_, .xor, .tmp4y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_size, -64), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
+ .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .vp_, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
+ .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
+ .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, .v_ps, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
+ .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
+ .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ .@"0:", .vp_, .xor, .tmp4x, .tmp2x, .memi(.src0x, .tmp0), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
+ .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
+ .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse4_2, null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
+ .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
+ .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
+ .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
+ .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
+ .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp4x, .tmp5x, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
+ .{ ._, .p_q, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
+ .{ ._, .p_b, .blendv, .dst0x, .tmp4x, .tmp5x, ._ },
+ .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .cmov, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._g, .cmov, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .dst_constraints = .{ .{ .signed_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .cmov, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._a, .cmov, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
+ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
+ .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
+ .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .cmov, null, null },
+ .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
+ .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .reg = .rdi } },
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .isize, .kind = .{ .reg = .rcx } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2p, .sia(1, .dst0, .sub_size_div_8), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
+ .{ ._, ._c, .cl, ._, ._, ._, ._ },
+ .{ .@"1:", ._, .mov, .tmp4q, .leasiad(.tmp1q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
+ .{ ._, ._, .sbb, .tmp4q, .leasiad(.tmp3q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
+ .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .leaad(.tmp1q, .add_src0_elem_size, -8), ._, ._ },
+ .{ ._, ._, .sbb, .tmp4q, .leaad(.tmp3q, .add_src0_elem_size, -8), ._, ._ },
+ .{ ._, ._nl, .cmov, .tmp1p, .tmp3p, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
+ .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .reg = .rdi } },
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .isize, .kind = .{ .reg = .rcx } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2p, .sia(1, .dst0, .sub_size_div_8), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
+ .{ ._, ._c, .cl, ._, ._, ._, ._ },
+ .{ .@"1:", ._, .mov, .tmp4q, .leasiad(.tmp1q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
+ .{ ._, ._, .sbb, .tmp4q, .leasiad(.tmp3q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
+ .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp4q, .leaad(.tmp1q, .add_src0_elem_size, -8), ._, ._ },
+ .{ ._, ._, .sbb, .tmp4q, .leaad(.tmp3q, .add_src0_elem_size, -8), ._, ._ },
+ .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp1p, .tmp3p, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .cmov, null, null },
+ .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any },
+ .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .reg = .rdi } },
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .isize, .kind = .{ .reg = .rcx } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2p, .sa(.dst0, .sub_size_div_8), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
+ .{ ._, ._c, .cl, ._, ._, ._, ._ },
+ .{ .@"1:", ._, .mov, .tmp4q, .leasia(.tmp1q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .sbb, .tmp4q, .leasia(.tmp3q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._nb, .cmov, .tmp1p, .tmp3p, ._, ._ },
+ .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any },
+ .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .reg = .rdi } },
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .isize, .kind = .{ .reg = .rcx } },
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .mem, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
+ .{ .@"0:", ._, .mov, .tmp2p, .sa(.dst0, .sub_size_div_8), ._, ._ },
+ .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
+ .{ ._, ._c, .cl, ._, ._, ._, ._ },
+ .{ .@"1:", ._, .mov, .tmp4q, .leasia(.tmp1q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._, .sbb, .tmp4q, .leasia(.tmp3q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
+ .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
+ .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
+ .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp1p, .tmp3p, ._, ._ },
+ .{ .@"1:", ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ } },
+ } },
+ .Max => unreachable,
+ .Add => comptime &.{ .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .tmp0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .tmp0x, .dst0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .add, .tmp0x, .src0x, ._, ._ },
+ .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .sse2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mut_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
+ .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
+ .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_sse, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
+ .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .vp_b, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
+ .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx512f, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
+ .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
+ .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
+ .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
+ .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
+ .{ ._, .vp_b, .add, .dst0y, .dst0y, .tmp2y, ._ },
+ .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx2, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
+ .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{ .{ .rc = .sse }, .unused },
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
+ .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
+ .{ .@"0:", .vp_b, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
+ .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
+ .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
+ .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
+ .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
+ .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
+ } },
+ }, .{
+ .required_features = .{ .avx, null, null, null },
+ .dst_constraints = .{ .{ .int = .byte }, .any },
+ .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
.patterns = &.{
.{ .src = .{ .to_mem, .none, .none } },
},
@@ -123493,11 +130982,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_b, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
@@ -123530,12 +131019,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_b, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_b, .add, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_b, .add, .dst0x, .tmp1x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_b, .add, .dst0x, .tmp1x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
@@ -123577,11 +131065,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_b, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
@@ -123618,11 +131106,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
@@ -123659,11 +131147,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_b, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
@@ -123698,12 +131186,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_b, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
@@ -123799,7 +131286,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -123835,8 +131322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -123873,9 +131359,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -123912,10 +131398,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -123941,7 +131426,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .vph_w, .add, .tmp0x, .src0x, .src0x, ._ },
- .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -123966,9 +131451,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .dst0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -123993,7 +131478,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ },
.{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
} },
@@ -124017,11 +131502,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.unused,
.unused,
},
- .dst_temps = .{ .{ .ref = .src0 }, .unused },
+ .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .dst0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -124059,11 +131544,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -124101,12 +131586,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -124161,11 +131645,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
.{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -124220,12 +131704,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
.{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -124267,11 +131750,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -124313,11 +131796,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -124376,11 +131859,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -124439,11 +131922,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -124472,11 +131955,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -124509,11 +131992,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -124580,11 +132063,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -124647,11 +132130,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_w, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -124714,12 +132197,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_w, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -124758,11 +132240,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -124833,11 +132315,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -124908,11 +132390,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_w, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -124979,12 +132461,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_w, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -125048,7 +132529,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -125084,7 +132565,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -125121,9 +132602,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -125160,9 +132641,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -125188,7 +132669,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .vph_d, .add, .tmp0x, .src0x, .src0x, ._ },
- .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -125213,9 +132694,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -125240,7 +132721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .ph_d, .add, .dst0x, .src0x, ._, ._ },
.{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
} },
@@ -125266,9 +132747,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -125309,9 +132790,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -125352,9 +132833,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -125412,9 +132893,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -125472,9 +132953,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
.{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -125504,9 +132985,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -125540,9 +133021,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -125608,9 +133089,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -125672,9 +133153,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_d, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -125736,9 +133217,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_d, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -125777,9 +133258,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -125849,9 +133330,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -125920,9 +133401,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_d, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -125988,9 +133469,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_d, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_d, .add, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -126043,7 +133524,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -126068,7 +133549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_q, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -126095,7 +133576,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -126122,7 +133603,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -126149,7 +133630,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -126176,7 +133657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -126205,7 +133686,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_q, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -126238,7 +133719,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_q, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -126271,7 +133752,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -126302,7 +133783,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_q, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -126333,7 +133814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_q, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_q, .add, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -126372,7 +133853,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_q, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -126407,7 +133888,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -126442,7 +133923,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_q, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -126475,7 +133956,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_q, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_q, .add, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -126583,7 +134064,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -126612,7 +134093,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
.{ ._, .vh_ps, .add, .tmp0x, .dst0x, .dst0x, ._ },
- .{ ._, .v_ps, .shuf, .dst0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .dst0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -126640,9 +134121,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -126707,7 +134188,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) },
.{ .@"0:", .vp_w, .insr, .dst0x, .dst0x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(1) },
.{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
.{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
@@ -126847,7 +134328,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -126884,7 +134365,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
.{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -126937,7 +134418,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
.{ ._, .v_ss, .add, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -126992,7 +134473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
.{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
.{ ._, ._ss, .add, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -127467,7 +134948,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
.{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -127495,8 +134976,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
.{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._dqa, .mov, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .srl, .dst0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .tmp0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -127521,7 +135001,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .tmp0x, .src0x, .tmp0x, ._ },
.{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
.{ ._, .vp_w, .mull, .dst0x, .tmp0x, .dst0x, ._ },
@@ -127548,8 +135028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
.{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
@@ -127578,9 +135057,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
.{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -127608,10 +135087,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
.{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .shuf, .dst0x, .tmp0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .tmp0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -127643,9 +135121,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_b, .sub, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -127679,10 +135157,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -127709,11 +135186,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
.{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -127741,12 +135218,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
.{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .shuf, .dst0x, .tmp0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .dst0x, .tmp0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -127777,11 +135253,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_b, .sub, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -127815,12 +135291,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
.{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -127849,11 +135324,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0y, .src0y, .tmp0y, ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -127884,11 +135359,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .srl, .tmp1x, .tmp0x, .ui(8), ._ },
.{ ._, .vp_w, .mull, .tmp0x, .tmp0x, .tmp1x, ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -127922,11 +135397,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -127964,11 +135439,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .srl, .tmp3x, .tmp2x, .ui(8), ._ },
.{ ._, .vp_w, .mull, .tmp2x, .tmp2x, .tmp3x, ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -128002,11 +135477,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp0y, ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -128045,11 +135520,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -128085,11 +135560,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -128123,11 +135598,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -128162,12 +135637,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -128203,12 +135677,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -128255,11 +135728,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -128298,11 +135771,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -128345,11 +135818,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -128388,12 +135861,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -128433,12 +135905,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -128520,7 +135991,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -128545,8 +136016,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -128571,9 +136041,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -128598,10 +136068,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -128626,9 +136095,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .dst0x, .src0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -128653,9 +136122,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .srl, .dst0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -128680,11 +136149,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -128709,12 +136178,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -128744,11 +136212,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
.{ ._, .vp_, .andn, .dst0x, .tmp2x, .src0x, ._ },
.{ ._, .vp_w, .sub, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -128779,12 +136247,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
.{ ._, .p_, .andn, .dst0x, .src0x, ._, ._ },
.{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -128811,11 +136278,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -128842,11 +136309,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -128877,11 +136344,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .sub, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -128914,11 +136381,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_f128, .extract, .tmp3x, .tmp3y, .ui(1), ._ },
.{ ._, .vp_w, .sub, .tmp2x, .tmp3x, .tmp2x, ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -128947,11 +136414,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
.{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -128986,11 +136453,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129023,11 +136490,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -129058,11 +136525,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_w, .mull, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -129093,12 +136560,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_w, .mull, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -129139,11 +136605,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129179,11 +136645,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129221,11 +136687,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .vp_w, .mull, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
+ .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129260,12 +136726,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ .@"0:", .p_w, .mull, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
- .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
- .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
+ .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
.{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -129318,7 +136783,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -129343,7 +136808,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -129370,7 +136835,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -129397,7 +136862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_11_01_01), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp0x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -129422,9 +136887,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -129449,9 +136914,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_udq, .mul, .tmp0x, .src0x, ._, ._ },
- .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -129480,7 +136945,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .src0x, .tmp0x, ._ },
.{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -129509,7 +136974,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .src0x, .tmp0x, ._ },
.{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -129543,7 +137008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129579,7 +137044,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129610,7 +137075,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -129647,7 +137112,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129682,7 +137147,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -129715,7 +137180,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -129748,7 +137213,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -129784,7 +137249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -129827,7 +137292,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129865,7 +137330,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129905,7 +137370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -129942,7 +137407,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -129982,7 +137447,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
- .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
+ .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
.{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -130320,7 +137785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -130348,9 +137813,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -130382,7 +137847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) },
.{ .@"0:", .vp_w, .insr, .dst0x, .dst0x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(1) },
.{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
.{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
@@ -130511,7 +137976,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -130537,7 +138002,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
.{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -130564,7 +138029,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
.{ ._, .v_ss, .mul, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -130592,7 +138057,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
.{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
.{ ._, ._ss, .mul, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -130948,8 +138413,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
} },
}) catch |err| switch (err) {
- error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{
+ error.SelectFailed => return cg.fail("failed to select {s}.{s} {} {}", .{
@tagName(air_tag),
+ @tagName(reduce.operation),
cg.typeOf(reduce.operand).fmt(pt),
ops[0].tracking(cg),
}),
@@ -130958,8 +138424,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
switch (reduce.operation) {
.And, .Or, .Xor, .Min, .Max => {},
.Add, .Mul => if (cg.intInfo(res_ty)) |_| res[0].wrapInt(cg) catch |err| switch (err) {
- error.SelectFailed => return cg.fail("failed to select {s} wrap {} {}", .{
+ error.SelectFailed => return cg.fail("failed to select {s}.{s} wrap {} {}", .{
@tagName(air_tag),
+ @tagName(reduce.operation),
res_ty.fmt(pt),
res[0].tracking(cg),
}),
@@ -131018,7 +138485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131047,7 +138514,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
.{ ._, .vh_ps, .add, .tmp0x, .dst0x, .dst0x, ._ },
- .{ ._, .v_ps, .shuf, .dst0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .dst0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131075,9 +138542,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131120,9 +138587,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131184,9 +138651,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
.{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131246,9 +138713,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
.{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131316,9 +138783,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131382,9 +138849,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ },
.{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131426,9 +138893,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
.{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131467,9 +138934,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp1y, ._ },
.{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131539,9 +139006,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131589,9 +139056,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131673,9 +139140,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -131813,7 +139280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -131850,7 +139317,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
.{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -131903,7 +139370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
.{ ._, .v_ss, .add, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -131958,7 +139425,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
.{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
.{ ._, ._ss, .add, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -131997,7 +139464,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
.{ ._, .v_ps, .add, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -132038,7 +139505,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
.{ ._, ._ps, .add, .dst0x, .tmp0x, ._, ._ },
.{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
.{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -132098,7 +139565,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -132154,7 +139621,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0x, .src0x, .tmp1x, ._ },
.{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -132189,7 +139656,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -132221,7 +139688,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -132289,7 +139756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -132355,7 +139822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
.{ ._, ._ps, .add, .dst0x, .tmp1x, ._, ._ },
.{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
.{ ._, ._ss, .add, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -132396,7 +139863,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -132468,7 +139935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
- .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
} },
}, .{
@@ -132538,7 +140005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ },
.{ ._, ._ps, .add, .dst0x, .tmp2x, ._, ._ },
.{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp2x, .tmp2x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp2x, .tmp2x, .ui(0b01), ._ },
.{ ._, ._ss, .add, .dst0x, .tmp2x, ._, ._ },
} },
}, .{
@@ -133263,7 +140730,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133291,9 +140758,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133321,9 +140788,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
.{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133337,7 +140804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -133356,9 +140823,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
.{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133388,9 +140855,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
.{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133404,7 +140871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -133426,9 +140893,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
.{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133460,9 +140927,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ },
.{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133476,7 +140943,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.unused,
@@ -133507,9 +140974,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
.{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133548,9 +141015,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp1y, ._ },
.{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133585,9 +141052,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133601,7 +141068,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.unused,
@@ -133638,9 +141105,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133654,7 +141121,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -133683,9 +141150,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
.{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
} },
@@ -133812,7 +141279,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
},
.dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
.each = .{ .once = &.{
- .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -133838,7 +141305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.dst_temps = .{ .{ .ref = .src0 }, .unused },
.each = .{ .once = &.{
.{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
.{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -133865,7 +141332,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
.{ ._, .v_ss, .mul, .tmp0x, .src0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .tmp0x, .dst0x, ._ },
} },
}, .{
@@ -133893,7 +141360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
.{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
.{ ._, ._ss, .mul, .tmp0x, .src0x, ._, ._ },
- .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
.{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -133920,7 +141387,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.each = .{ .once = &.{
.{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
.{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .src0x, .tmp0x, ._ },
} },
}, .{
@@ -133949,7 +141416,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
.{ ._, ._ps, .mul, .dst0x, .tmp0x, ._, ._ },
.{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
.{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
} },
}, .{
@@ -133962,7 +141429,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -133982,7 +141449,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
.{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
} },
}, .{
@@ -134011,7 +141478,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp1x, ._ },
.{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -134024,7 +141491,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -134049,7 +141516,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
.{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
} },
}, .{
@@ -134081,7 +141548,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
.{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
- .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
} },
}, .{
@@ -134116,7 +141583,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
.{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
- .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
} },
}, .{
@@ -134151,7 +141618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
.{ ._, ._ps, .mul, .dst0x, .tmp1x, ._, ._ },
.{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
.{ ._, ._ss, .mul, .dst0x, .tmp1x, ._, ._ },
} },
}, .{
@@ -134164,7 +141631,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -134195,7 +141662,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
.{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
} },
}, .{
@@ -134208,7 +141675,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -134234,7 +141701,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
.{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
.{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
- .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
+ .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
.{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
} },
}, .{
@@ -134247,7 +141714,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -134273,7 +141740,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
.{ ._, ._ps, .mul, .dst0x, .tmp3x, ._, ._ },
.{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
- .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01_01_01_01), ._ },
+ .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
.{ ._, ._ss, .mul, .dst0x, .tmp3x, ._, ._ },
} },
}, .{
@@ -134391,7 +141858,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .usize, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -134522,7 +141989,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -134564,7 +142031,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -134601,7 +142068,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.extra_temps = .{
.{ .type = .u32, .kind = .{ .rc = .general_purpose } },
.{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
- .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .val = 1.0, .fill = .outside } } },
+ .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
.{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
.unused,
.unused,
@@ -134783,8 +142250,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
} },
}) catch |err| switch (err) {
- error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{
+ error.SelectFailed => return cg.fail("failed to select {s}.{s} {} {}", .{
@tagName(air_tag),
+ @tagName(reduce.operation),
cg.typeOf(reduce.operand).fmt(pt),
ops[0].tracking(cg),
}),
@@ -154977,17 +162445,18 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
);
} else return self.fail("TODO implement airSelect for {}", .{ty.fmt(pt)});
const elem_bits: u16 = @intCast(elem_abi_size * 8);
- const mask_elem_ty = try pt.intType(.unsigned, elem_bits);
- const mask_ty = try pt.vectorType(.{ .len = vec_len, .child = mask_elem_ty.toIntern() });
if (!pred_fits_in_elem) if (self.hasFeature(.ssse3)) {
- var mask_elems: [32]InternPool.Index = undefined;
- for (mask_elems[0..vec_len], 0..) |*elem, bit| elem.* = try pt.intern(.{ .int = .{
- .ty = mask_elem_ty.toIntern(),
- .storage = .{ .u64 = bit / elem_bits },
- } });
+ const mask_len = elem_abi_size * vec_len;
+ const mask_ty = try pt.vectorType(.{
+ .len = mask_len,
+ .child = .u8_type,
+ });
+ var mask_elems_buf: [32]u8 = undefined;
+ const mask_elems = mask_elems_buf[0..mask_len];
+ for (mask_elems, 0..) |*elem, bit| elem.* = @intCast(bit / elem_bits);
const mask_mcv = try self.genTypedValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = mask_ty.toIntern(),
- .storage = .{ .elems = mask_elems[0..vec_len] },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, mask_elems, .maybe_embedded_nulls) },
} })));
const mask_mem: Memory = .{
.base = .{ .reg = try self.copyToTmpRegister(.usize, mask_mcv.address()) },
@@ -155005,14 +162474,17 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
);
} else return self.fail("TODO implement airSelect for {}", .{ty.fmt(pt)});
{
- var mask_elems: [32]InternPool.Index = undefined;
- for (mask_elems[0..vec_len], 0..) |*elem, bit| elem.* = try pt.intern(.{ .int = .{
+ const mask_elem_ty = try pt.intType(.unsigned, elem_bits);
+ const mask_ty = try pt.vectorType(.{ .len = vec_len, .child = mask_elem_ty.toIntern() });
+ var mask_elems_buf: [32]InternPool.Index = undefined;
+ const mask_elems = mask_elems_buf[0..vec_len];
+ for (mask_elems, 0..) |*elem, bit| elem.* = try pt.intern(.{ .int = .{
.ty = mask_elem_ty.toIntern(),
- .storage = .{ .u64 = @as(u32, 1) << @intCast(bit & (elem_bits - 1)) },
+ .storage = .{ .u64 = @as(u64, 1) << @intCast(bit) },
} });
const mask_mcv = try self.genTypedValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = mask_ty.toIntern(),
- .storage = .{ .elems = mask_elems[0..vec_len] },
+ .storage = .{ .elems = mask_elems },
} })));
const mask_mem: Memory = .{
.base = .{ .reg = try self.copyToTmpRegister(.usize, mask_mcv.address()) },
@@ -155026,7 +162498,13 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
mask_mem,
);
try self.asmRegisterRegisterMemory(
- .{ .vp_d, .cmpeq },
+ .{ switch (elem_abi_size) {
+ else => unreachable,
+ 1 => .vp_b,
+ 2 => .vp_w,
+ 4 => .vp_d,
+ 8 => .vp_q,
+ }, .cmpeq },
mask_alias,
mask_alias,
mask_mem,
@@ -155038,7 +162516,13 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
mask_mem,
);
try self.asmRegisterMemory(
- .{ .p_d, .cmpeq },
+ .{ switch (elem_abi_size) {
+ else => unreachable,
+ 1 => .p_b,
+ 2 => .p_w,
+ 4 => .p_d,
+ 8 => if (has_blend) .p_q else unreachable,
+ }, .cmpeq },
mask_alias,
mask_mem,
);
@@ -156792,8 +164276,8 @@ fn genTypedValue(self: *CodeGen, val: Value) InnerError!MCValue {
return self.genResult(try codegen.genTypedValue(self.bin_file, self.pt, self.src_loc, val, self.target.*));
}
-fn lowerUav(self: *CodeGen, val: Value) InnerError!MCValue {
- return self.genResult(try self.bin_file.lowerUav(self.pt, val.toIntern(), .none, self.src_loc));
+fn lowerUav(self: *CodeGen, val: Value, alignment: InternPool.Alignment) InnerError!MCValue {
+ return self.genResult(try self.bin_file.lowerUav(self.pt, val.toIntern(), alignment, self.src_loc));
}
const CallMCValues = struct {
@@ -163000,7 +170484,11 @@ fn tempFromValue(cg: *CodeGen, value: Value) InnerError!Temp {
}
fn tempMemFromValue(cg: *CodeGen, value: Value) InnerError!Temp {
- return cg.tempInit(value.typeOf(cg.pt.zcu), try cg.lowerUav(value));
+ return cg.tempMemFromAlignedValue(.none, value);
+}
+
+fn tempMemFromAlignedValue(cg: *CodeGen, alignment: InternPool.Alignment, value: Value) InnerError!Temp {
+ return cg.tempInit(value.typeOf(cg.pt.zcu), try cg.lowerUav(value, alignment));
}
fn tempFromOperand(cg: *CodeGen, op_ref: Air.Inst.Ref, op_dies: bool) InnerError!Temp {
@@ -163273,9 +170761,14 @@ const Select = struct {
scalar_unsigned_int_is: Memory.Size,
scalar: OfIsSizes,
scalar_int: OfIsSizes,
- exact_scalar_int: OfIsSizes,
scalar_signed_int: OfIsSizes,
scalar_unsigned_int: OfIsSizes,
+ exclusive_scalar_int: OfIsSizes,
+ exclusive_scalar_signed_int: OfIsSizes,
+ exclusive_scalar_unsigned_int: OfIsSizes,
+ exact_scalar_int: OfIsSizes,
+ exact_scalar_signed_int: OfIsSizes,
+ exact_scalar_unsigned_int: OfIsSizes,
scalar_signed_or_exclusive_int: OfIsSizes,
scalar_exact_int: struct { of: Memory.Size, is: u16 },
scalar_exact_signed_int: struct { of: Memory.Size, is: u16 },
@@ -163283,6 +170776,8 @@ const Select = struct {
multiple_scalar: OfIsSizes,
multiple_scalar_int: OfIsSizes,
unaligned_multiple_scalar_int: OfIsSizes,
+ unaligned_multiple_scalar_signed_int: OfIsSizes,
+ unaligned_multiple_scalar_unsigned_int: OfIsSizes,
multiple_scalar_signed_int: OfIsSizes,
multiple_scalar_unsigned_int: OfIsSizes,
multiple_scalar_signed_or_exclusive_int: OfIsSizes,
@@ -163397,14 +170892,28 @@ const Select = struct {
false,
.scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
- .exact_scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
- if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
.scalar_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
of_is.is.bitSize(cg.target) >= int_info.bits else false,
.scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
of_is.is.bitSize(cg.target) >= int_info.bits else false,
+ .exclusive_scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) > cg.unalignedSize(ty) and
+ if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
+ .exclusive_scalar_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) > cg.unalignedSize(ty) and
+ if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
+ of_is.is.bitSize(cg.target) >= int_info.bits else false,
+ .exclusive_scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) > cg.unalignedSize(ty) and
+ if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
+ of_is.is.bitSize(cg.target) >= int_info.bits else false,
+ .exact_scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
+ if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
+ .exact_scalar_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
+ if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
+ of_is.is.bitSize(cg.target) >= int_info.bits else false,
+ .exact_scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
+ if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
+ of_is.is.bitSize(cg.target) >= int_info.bits else false,
.scalar_signed_or_exclusive_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {
.signed => of_is.is.bitSize(cg.target) >= int_info.bits,
@@ -163429,6 +170938,12 @@ const Select = struct {
if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
.unaligned_multiple_scalar_int => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
+ .unaligned_multiple_scalar_signed_int => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
+ if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
+ of_is.is.bitSize(cg.target) >= int_info.bits else false,
+ .unaligned_multiple_scalar_unsigned_int => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
+ if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
+ of_is.is.bitSize(cg.target) >= int_info.bits else false,
.multiple_scalar_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
of_is.is.bitSize(cg.target) >= int_info.bits else false,
@@ -163823,7 +171338,8 @@ const Select = struct {
ptest_mask_mem: Select.Operand.Ref,
pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 },
bits_mem: enum { forward, reverse },
- splat_float_mem: struct { ref: Select.Operand.Ref, val: f16, fill: enum { inside, outside } = .inside },
+ splat_int_mem: struct { ref: Select.Operand.Ref, inside: enum { umin, smin, smax } = .umin, outside: enum { smin, smax } },
+ splat_float_mem: struct { ref: Select.Operand.Ref, inside: enum { zero } = .zero, outside: f16 },
frame: FrameIndex,
lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none },
symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 },
@@ -164213,23 +171729,51 @@ const Select = struct {
.storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
} }))), true };
},
+ .splat_int_mem => |splat_spec| {
+ const zcu = pt.zcu;
+ const elem_ty = spec.type.scalarType(zcu);
+ const elem_bits = cg.intInfo(elem_ty).?.bits;
+ const ref_ty = splat_spec.ref.typeOf(s);
+ assert(ref_ty.isVector(zcu) and cg.intInfo(ref_ty.childType(zcu)).?.bits <= elem_bits);
+ var elem_buf: [64]InternPool.Index = undefined;
+ const elems = elem_buf[0..if (elem_ty.toIntern() == spec.type.toIntern()) 1 else spec.type.vectorLen(zcu)];
+ const inside_len = (ref_ty.vectorLen(zcu) - 1) % elems.len + 1;
+ @memset(elems[0..inside_len], (try pt.intValue(elem_ty, @as(i64, switch (splat_spec.inside) {
+ .umin => 0,
+ .smin => std.math.minInt(i64),
+ .smax => std.math.maxInt(i64),
+ }) >> @intCast(64 - elem_bits))).toIntern());
+ @memset(elems[inside_len..], (try pt.intValue(elem_ty, @as(i64, switch (splat_spec.outside) {
+ .smin => std.math.minInt(i64),
+ .smax => std.math.maxInt(i64),
+ }) >> @intCast(64 - elem_bits))).toIntern());
+ if (elems.len == 1) return .{ try cg.tempMemFromValue(.fromInterned(elems[0])), true };
+ const mem_size = cg.unalignedSize(spec.type);
+ return .{ try cg.tempMemFromAlignedValue(
+ if (mem_size < 16) .fromByteUnits(mem_size) else .none,
+ .fromInterned(try pt.intern(.{ .aggregate = .{
+ .ty = if (mem_size < 16)
+ (try pt.arrayType(.{ .len = elems.len, .child = elem_ty.toIntern() })).toIntern()
+ else
+ spec.type.toIntern(),
+ .storage = .{ .elems = elems },
+ } })),
+ ), true };
+ },
.splat_float_mem => |splat_spec| {
const zcu = pt.zcu;
assert(spec.type.isVector(zcu));
const elem_ty = spec.type.childType(zcu);
+ assert(cg.floatBits(elem_ty) != null);
const ref_ty = splat_spec.ref.typeOf(s);
assert(ref_ty.isVector(zcu) and ref_ty.childType(zcu).toIntern() == elem_ty.toIntern());
var elem_buf: [@divExact(64, 2)]InternPool.Index = undefined;
const elems = elem_buf[0..spec.type.vectorLen(zcu)];
const inside_len = (ref_ty.vectorLen(zcu) - 1) % elems.len + 1;
- @memset(elems[0..inside_len], (try pt.floatValue(elem_ty, switch (splat_spec.fill) {
- .inside => splat_spec.val,
- .outside => 0.0,
- })).toIntern());
- @memset(elems[inside_len..], (try pt.floatValue(elem_ty, switch (splat_spec.fill) {
- .inside => 0.0,
- .outside => splat_spec.val,
- })).toIntern());
+ @memset(elems[0..inside_len], (try pt.floatValue(elem_ty, @as(f16, switch (splat_spec.inside) {
+ .zero => 0.0,
+ }))).toIntern());
+ @memset(elems[inside_len..], (try pt.floatValue(elem_ty, splat_spec.outside)).toIntern());
return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = spec.type.toIntern(),
.storage = .{ .elems = elems },
@@ -164336,6 +171880,7 @@ const Select = struct {
src1,
src1_sub_bit_size,
log2_src0_elem_size,
+ elem_mask,
smin,
smax,
umax,
@@ -164387,6 +171932,7 @@ const Select = struct {
const add_2_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"2" };
const add_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"1" };
const sub_len: Adjust = .{ .sign = .neg, .lhs = .len, .op = .mul, .rhs = .@"1" };
+ const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" };
const add_elem_size: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .mul, .rhs = .@"1" };
const add_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .div, .rhs = .@"8" };
const sub_elem_size_div_8: Adjust = .{ .sign = .neg, .lhs = .elem_size, .op = .div, .rhs = .@"8" };
@@ -164406,7 +171952,7 @@ const Select = struct {
const add_src1_rem_64: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"8" };
const add_src1_sub_bit_size: Adjust = .{ .sign = .pos, .lhs = .src1_sub_bit_size, .op = .mul, .rhs = .@"1" };
const add_log2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .log2_src0_elem_size, .op = .mul, .rhs = .@"1" };
- const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" };
+ const elem_mask: Adjust = .{ .sign = .pos, .lhs = .elem_mask, .op = .mul, .rhs = .@"1" };
const add_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"1" };
const add_2_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"2" };
const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" };
@@ -164896,6 +172442,9 @@ const Select = struct {
fn uia(imm: u32, base: Ref.Sized, adjust: Adjust) Select.Operand {
return .{ .flags = .{ .tag = .uimm, .adjust = adjust, .base = base }, .imm = @bitCast(imm) };
}
+ fn uas(base: Ref.Sized, scale: Memory.Scale, adjust: Adjust) Select.Operand {
+ return .{ .flags = .{ .tag = .uimm, .adjust = adjust, .base = base, .index = .{ .scale = scale } } };
+ }
fn rm(mode: bits.RoundMode) Select.Operand {
return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(mode.imm().unsigned) };
@@ -165188,6 +172737,11 @@ const Select = struct {
.src1_sub_bit_size => @as(SignedImm, @intCast(Select.Operand.Ref.src1.valueOf(s).immediate)) -
@as(SignedImm, @intCast(s.cg.nonBoolScalarBitSize(op.flags.base.ref.typeOf(s)))),
.log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))),
+ .elem_mask => @as(u8, std.math.maxInt(u8)) >> @intCast(
+ 8 - ((s.cg.unalignedSize(op.flags.base.ref.typeOf(s)) - 1) %
+ @divExact(op.flags.base.size.bitSize(s.cg.target), 8) + 1 >>
+ op.flags.index.scale.toLog2()),
+ ),
inline .smin, .smax, .umax, .smin_shr_src1, .smax_shr_src1, .umax_shr_src1 => |adjust| switch (op.flags.base.size) {
else => unreachable,
inline .none, .byte, .word, .dword, .qword => |size| {
src/arch/x86_64/Mir.zig
@@ -1170,11 +1170,11 @@ pub const Inst = struct {
/// Extract packed floating-point values
/// Extract packed integer values
extract,
- /// Packed horizontal word minimum
- hminposu,
/// Insert scalar single-precision floating-point value
/// Insert packed floating-point values
insert,
+ /// Packed horizontal word minimum
+ minposu,
/// Packed move with sign extend
movsxb,
movsxd,
src/codegen/c/Type.zig
@@ -1492,6 +1492,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_64_i8_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .i8,
+ .len = 64,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.i8.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_1_u8_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .u8,
@@ -1597,6 +1612,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_2_i16_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .i16,
+ .len = 2,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.i16.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_4_i16_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .i16,
@@ -1642,6 +1672,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_32_i16_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .i16,
+ .len = 32,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.i16.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_4_u16_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .u16,
@@ -1687,6 +1732,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_32_u16_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .u16,
+ .len = 32,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.u16.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_4_i32_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .i32,
@@ -1717,6 +1777,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_16_i32_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .i32,
+ .len = 16,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.i32.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_4_u32_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .u32,
@@ -1747,6 +1822,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_16_u32_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .u32,
+ .len = 16,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.u32.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_2_i64_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .i64,
@@ -1777,6 +1867,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_8_i64_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .i64,
+ .len = 8,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.i64.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_2_u64_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .u64,
@@ -1807,6 +1912,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_8_u64_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .u64,
+ .len = 8,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.u64.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_1_u128_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .u128,
src/Air.zig
@@ -1012,6 +1012,7 @@ pub const Inst = struct {
vector_8_i8_type = @intFromEnum(InternPool.Index.vector_8_i8_type),
vector_16_i8_type = @intFromEnum(InternPool.Index.vector_16_i8_type),
vector_32_i8_type = @intFromEnum(InternPool.Index.vector_32_i8_type),
+ vector_64_i8_type = @intFromEnum(InternPool.Index.vector_64_i8_type),
vector_1_u8_type = @intFromEnum(InternPool.Index.vector_1_u8_type),
vector_2_u8_type = @intFromEnum(InternPool.Index.vector_2_u8_type),
vector_4_u8_type = @intFromEnum(InternPool.Index.vector_4_u8_type),
@@ -1019,20 +1020,27 @@ pub const Inst = struct {
vector_16_u8_type = @intFromEnum(InternPool.Index.vector_16_u8_type),
vector_32_u8_type = @intFromEnum(InternPool.Index.vector_32_u8_type),
vector_64_u8_type = @intFromEnum(InternPool.Index.vector_64_u8_type),
+ vector_2_i16_type = @intFromEnum(InternPool.Index.vector_2_i16_type),
vector_4_i16_type = @intFromEnum(InternPool.Index.vector_4_i16_type),
vector_8_i16_type = @intFromEnum(InternPool.Index.vector_8_i16_type),
vector_16_i16_type = @intFromEnum(InternPool.Index.vector_16_i16_type),
+ vector_32_i16_type = @intFromEnum(InternPool.Index.vector_32_i16_type),
vector_4_u16_type = @intFromEnum(InternPool.Index.vector_4_u16_type),
vector_8_u16_type = @intFromEnum(InternPool.Index.vector_8_u16_type),
vector_16_u16_type = @intFromEnum(InternPool.Index.vector_16_u16_type),
+ vector_32_u16_type = @intFromEnum(InternPool.Index.vector_32_u16_type),
vector_4_i32_type = @intFromEnum(InternPool.Index.vector_4_i32_type),
vector_8_i32_type = @intFromEnum(InternPool.Index.vector_8_i32_type),
+ vector_16_i32_type = @intFromEnum(InternPool.Index.vector_16_i32_type),
vector_4_u32_type = @intFromEnum(InternPool.Index.vector_4_u32_type),
vector_8_u32_type = @intFromEnum(InternPool.Index.vector_8_u32_type),
+ vector_16_u32_type = @intFromEnum(InternPool.Index.vector_16_u32_type),
vector_2_i64_type = @intFromEnum(InternPool.Index.vector_2_i64_type),
vector_4_i64_type = @intFromEnum(InternPool.Index.vector_4_i64_type),
+ vector_8_i64_type = @intFromEnum(InternPool.Index.vector_8_i64_type),
vector_2_u64_type = @intFromEnum(InternPool.Index.vector_2_u64_type),
vector_4_u64_type = @intFromEnum(InternPool.Index.vector_4_u64_type),
+ vector_8_u64_type = @intFromEnum(InternPool.Index.vector_8_u64_type),
vector_1_u128_type = @intFromEnum(InternPool.Index.vector_1_u128_type),
vector_2_u128_type = @intFromEnum(InternPool.Index.vector_2_u128_type),
vector_1_u256_type = @intFromEnum(InternPool.Index.vector_1_u256_type),
src/InternPool.zig
@@ -4589,6 +4589,7 @@ pub const Index = enum(u32) {
vector_8_i8_type,
vector_16_i8_type,
vector_32_i8_type,
+ vector_64_i8_type,
vector_1_u8_type,
vector_2_u8_type,
vector_4_u8_type,
@@ -4596,20 +4597,27 @@ pub const Index = enum(u32) {
vector_16_u8_type,
vector_32_u8_type,
vector_64_u8_type,
+ vector_2_i16_type,
vector_4_i16_type,
vector_8_i16_type,
vector_16_i16_type,
+ vector_32_i16_type,
vector_4_u16_type,
vector_8_u16_type,
vector_16_u16_type,
+ vector_32_u16_type,
vector_4_i32_type,
vector_8_i32_type,
+ vector_16_i32_type,
vector_4_u32_type,
vector_8_u32_type,
+ vector_16_u32_type,
vector_2_i64_type,
vector_4_i64_type,
+ vector_8_i64_type,
vector_2_u64_type,
vector_4_u64_type,
+ vector_8_u64_type,
vector_1_u128_type,
vector_2_u128_type,
vector_1_u256_type,
@@ -4954,7 +4962,7 @@ pub const Index = enum(u32) {
}
};
-pub const static_keys = [_]Key{
+pub const static_keys: [static_len]Key = .{
.{ .int_type = .{
.signedness = .unsigned,
.bits = 0,
@@ -5126,6 +5134,8 @@ pub const static_keys = [_]Key{
.{ .vector_type = .{ .len = 16, .child = .i8_type } },
// @Vector(32, i8)
.{ .vector_type = .{ .len = 32, .child = .i8_type } },
+ // @Vector(64, i8)
+ .{ .vector_type = .{ .len = 64, .child = .i8_type } },
// @Vector(1, u8)
.{ .vector_type = .{ .len = 1, .child = .u8_type } },
// @Vector(2, u8)
@@ -5140,34 +5150,48 @@ pub const static_keys = [_]Key{
.{ .vector_type = .{ .len = 32, .child = .u8_type } },
// @Vector(64, u8)
.{ .vector_type = .{ .len = 64, .child = .u8_type } },
+ // @Vector(2, i16)
+ .{ .vector_type = .{ .len = 2, .child = .i16_type } },
// @Vector(4, i16)
.{ .vector_type = .{ .len = 4, .child = .i16_type } },
// @Vector(8, i16)
.{ .vector_type = .{ .len = 8, .child = .i16_type } },
// @Vector(16, i16)
.{ .vector_type = .{ .len = 16, .child = .i16_type } },
+ // @Vector(32, i16)
+ .{ .vector_type = .{ .len = 32, .child = .i16_type } },
// @Vector(4, u16)
.{ .vector_type = .{ .len = 4, .child = .u16_type } },
// @Vector(8, u16)
.{ .vector_type = .{ .len = 8, .child = .u16_type } },
// @Vector(16, u16)
.{ .vector_type = .{ .len = 16, .child = .u16_type } },
+ // @Vector(32, u16)
+ .{ .vector_type = .{ .len = 32, .child = .u16_type } },
// @Vector(4, i32)
.{ .vector_type = .{ .len = 4, .child = .i32_type } },
// @Vector(8, i32)
.{ .vector_type = .{ .len = 8, .child = .i32_type } },
+ // @Vector(16, i32)
+ .{ .vector_type = .{ .len = 16, .child = .i32_type } },
// @Vector(4, u32)
.{ .vector_type = .{ .len = 4, .child = .u32_type } },
// @Vector(8, u32)
.{ .vector_type = .{ .len = 8, .child = .u32_type } },
+ // @Vector(16, u32)
+ .{ .vector_type = .{ .len = 16, .child = .u32_type } },
// @Vector(2, i64)
.{ .vector_type = .{ .len = 2, .child = .i64_type } },
// @Vector(4, i64)
.{ .vector_type = .{ .len = 4, .child = .i64_type } },
+ // @Vector(8, i64)
+ .{ .vector_type = .{ .len = 8, .child = .i64_type } },
// @Vector(2, u64)
.{ .vector_type = .{ .len = 2, .child = .u64_type } },
- // @Vector(8, u64)
+ // @Vector(4, u64)
.{ .vector_type = .{ .len = 4, .child = .u64_type } },
+ // @Vector(8, u64)
+ .{ .vector_type = .{ .len = 8, .child = .u64_type } },
// @Vector(1, u128)
.{ .vector_type = .{ .len = 1, .child = .u128_type } },
// @Vector(2, u128)
@@ -5273,10 +5297,6 @@ pub const static_keys = [_]Key{
/// assert below to break an unfortunate and arguably incorrect dependency loop
/// when compiling.
pub const static_len = Zir.Inst.Index.static_len;
-comptime {
- //@compileLog(static_keys.len);
- assert(static_len == static_keys.len);
-}
pub const Tag = enum(u8) {
/// This special tag represents a value which was removed from this pool via
@@ -11833,6 +11853,7 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
.vector_8_i8_type,
.vector_16_i8_type,
.vector_32_i8_type,
+ .vector_64_i8_type,
.vector_1_u8_type,
.vector_2_u8_type,
.vector_4_u8_type,
@@ -11840,20 +11861,27 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
.vector_16_u8_type,
.vector_32_u8_type,
.vector_64_u8_type,
+ .vector_2_i16_type,
.vector_4_i16_type,
.vector_8_i16_type,
.vector_16_i16_type,
+ .vector_32_i16_type,
.vector_4_u16_type,
.vector_8_u16_type,
.vector_16_u16_type,
+ .vector_32_u16_type,
.vector_4_i32_type,
.vector_8_i32_type,
+ .vector_16_i32_type,
.vector_4_u32_type,
.vector_8_u32_type,
+ .vector_16_u32_type,
.vector_2_i64_type,
.vector_4_i64_type,
+ .vector_8_i64_type,
.vector_2_u64_type,
.vector_4_u64_type,
+ .vector_8_u64_type,
.vector_1_u128_type,
.vector_2_u128_type,
.vector_1_u256_type,
@@ -12165,6 +12193,7 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
.vector_8_i8_type,
.vector_16_i8_type,
.vector_32_i8_type,
+ .vector_64_i8_type,
.vector_1_u8_type,
.vector_2_u8_type,
.vector_4_u8_type,
@@ -12172,20 +12201,27 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
.vector_16_u8_type,
.vector_32_u8_type,
.vector_64_u8_type,
+ .vector_2_i16_type,
.vector_4_i16_type,
.vector_8_i16_type,
.vector_16_i16_type,
+ .vector_32_i16_type,
.vector_4_u16_type,
.vector_8_u16_type,
.vector_16_u16_type,
+ .vector_32_u16_type,
.vector_4_i32_type,
.vector_8_i32_type,
+ .vector_16_i32_type,
.vector_4_u32_type,
.vector_8_u32_type,
+ .vector_16_u32_type,
.vector_2_i64_type,
.vector_4_i64_type,
+ .vector_8_i64_type,
.vector_2_u64_type,
.vector_4_u64_type,
+ .vector_8_u64_type,
.vector_1_u128_type,
.vector_2_u128_type,
.vector_1_u256_type,
src/Sema.zig
@@ -36545,6 +36545,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
.vector_8_i8_type,
.vector_16_i8_type,
.vector_32_i8_type,
+ .vector_64_i8_type,
.vector_1_u8_type,
.vector_2_u8_type,
.vector_4_u8_type,
@@ -36552,20 +36553,27 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
.vector_16_u8_type,
.vector_32_u8_type,
.vector_64_u8_type,
+ .vector_2_i16_type,
.vector_4_i16_type,
.vector_8_i16_type,
.vector_16_i16_type,
+ .vector_32_i16_type,
.vector_4_u16_type,
.vector_8_u16_type,
.vector_16_u16_type,
+ .vector_32_u16_type,
.vector_4_i32_type,
.vector_8_i32_type,
+ .vector_16_i32_type,
.vector_4_u32_type,
.vector_8_u32_type,
+ .vector_16_u32_type,
.vector_2_i64_type,
.vector_4_i64_type,
+ .vector_8_i64_type,
.vector_2_u64_type,
.vector_4_u64_type,
+ .vector_8_u64_type,
.vector_1_u128_type,
.vector_2_u128_type,
.vector_1_u256_type,
src/Type.zig
@@ -4110,6 +4110,7 @@ pub const slice_const_u8_sentinel_0: Type = .{ .ip_index = .slice_const_u8_senti
pub const vector_8_i8: Type = .{ .ip_index = .vector_8_i8_type };
pub const vector_16_i8: Type = .{ .ip_index = .vector_16_i8_type };
pub const vector_32_i8: Type = .{ .ip_index = .vector_32_i8_type };
+pub const vector_64_i8: Type = .{ .ip_index = .vector_64_i8_type };
pub const vector_1_u8: Type = .{ .ip_index = .vector_1_u8_type };
pub const vector_2_u8: Type = .{ .ip_index = .vector_2_u8_type };
pub const vector_4_u8: Type = .{ .ip_index = .vector_4_u8_type };
@@ -4117,20 +4118,27 @@ pub const vector_8_u8: Type = .{ .ip_index = .vector_8_u8_type };
pub const vector_16_u8: Type = .{ .ip_index = .vector_16_u8_type };
pub const vector_32_u8: Type = .{ .ip_index = .vector_32_u8_type };
pub const vector_64_u8: Type = .{ .ip_index = .vector_64_u8_type };
+pub const vector_2_i16: Type = .{ .ip_index = .vector_2_i16_type };
pub const vector_4_i16: Type = .{ .ip_index = .vector_4_i16_type };
pub const vector_8_i16: Type = .{ .ip_index = .vector_8_i16_type };
pub const vector_16_i16: Type = .{ .ip_index = .vector_16_i16_type };
+pub const vector_32_i16: Type = .{ .ip_index = .vector_32_i16_type };
pub const vector_4_u16: Type = .{ .ip_index = .vector_4_u16_type };
pub const vector_8_u16: Type = .{ .ip_index = .vector_8_u16_type };
pub const vector_16_u16: Type = .{ .ip_index = .vector_16_u16_type };
+pub const vector_32_u16: Type = .{ .ip_index = .vector_32_u16_type };
pub const vector_4_i32: Type = .{ .ip_index = .vector_4_i32_type };
pub const vector_8_i32: Type = .{ .ip_index = .vector_8_i32_type };
+pub const vector_16_i32: Type = .{ .ip_index = .vector_16_i32_type };
pub const vector_4_u32: Type = .{ .ip_index = .vector_4_u32_type };
pub const vector_8_u32: Type = .{ .ip_index = .vector_8_u32_type };
+pub const vector_16_u32: Type = .{ .ip_index = .vector_16_u32_type };
pub const vector_2_i64: Type = .{ .ip_index = .vector_2_i64_type };
pub const vector_4_i64: Type = .{ .ip_index = .vector_4_i64_type };
+pub const vector_8_i64: Type = .{ .ip_index = .vector_8_i64_type };
pub const vector_2_u64: Type = .{ .ip_index = .vector_2_u64_type };
pub const vector_4_u64: Type = .{ .ip_index = .vector_4_u64_type };
+pub const vector_8_u64: Type = .{ .ip_index = .vector_8_u64_type };
pub const vector_1_u128: Type = .{ .ip_index = .vector_1_u128_type };
pub const vector_2_u128: Type = .{ .ip_index = .vector_2_u128_type };
pub const vector_1_u256: Type = .{ .ip_index = .vector_1_u256_type };
test/behavior/x86_64/mem.zig → test/behavior/x86_64/access.zig
File renamed without changes
test/behavior/x86_64/build.zig
@@ -117,9 +117,9 @@ pub fn build(b: *std.Build) void {
const target = b.resolveTargetQuery(query);
const cpu = query.serializeCpuAlloc(b.allocator) catch @panic("OOM");
for ([_][]const u8{
+ "access.zig",
"binary.zig",
"cast.zig",
- "mem.zig",
"unary.zig",
}) |path| {
const test_mod = b.createModule(.{
test/behavior/x86_64/unary.zig
@@ -5094,6 +5094,14 @@ test reduceXor {
try test_reduce_xor.testIntVectors();
}
+inline fn reduceMin(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
+ return @reduce(.Min, rhs);
+}
+test reduceMin {
+ const test_reduce_min = unary(reduceMin, .{});
+ try test_reduce_min.testIntVectors();
+}
+
inline fn reduceAdd(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
return @reduce(.Add, rhs);
}
test/behavior/x86_64.zig
@@ -7,8 +7,8 @@ test {
if (builtin.object_format == .macho) return error.SkipZigTest;
// COFF linker does not support the new backend.
if (builtin.object_format == .coff) return error.SkipZigTest;
+ _ = @import("x86_64/access.zig");
_ = @import("x86_64/binary.zig");
_ = @import("x86_64/cast.zig");
- _ = @import("x86_64/mem.zig");
_ = @import("x86_64/unary.zig");
}
test/cases/compile_errors/@import_zon_bad_type.zig
@@ -117,9 +117,9 @@ export fn testMutablePointer() void {
// tmp.zig:37:38: note: imported here
// neg_inf.zon:1:1: error: expected type '?u8'
// tmp.zig:57:28: note: imported here
-// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_509'
+// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_517'
// tmp.zig:62:39: note: imported here
-// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_511'
+// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_519'
// tmp.zig:67:44: note: imported here
-// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_514'
+// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_522'
// tmp.zig:72:50: note: imported here
test/cases/compile_errors/anytype_param_requires_comptime.zig
@@ -15,6 +15,6 @@ pub export fn entry() void {
// error
//
// :7:25: error: unable to resolve comptime value
-// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_483.C' must be comptime-known
+// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_491.C' must be comptime-known
// :4:16: note: struct requires comptime because of this field
// :4:16: note: types are not available at runtime
test/cases/compile_errors/bogus_method_call_on_slice.zig
@@ -16,5 +16,5 @@ pub export fn entry2() void {
//
// :3:6: error: no field or member function named 'copy' in '[]const u8'
// :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})'
-// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_487'
+// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_495'
// :12:6: note: struct declared here
test/cases/compile_errors/coerce_anon_struct.zig
@@ -6,6 +6,6 @@ export fn foo() void {
// error
//
-// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_476'
+// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_484'
// :3:16: note: struct declared here
// :1:11: note: struct declared here
test/cases/compile_errors/redundant_try.zig
@@ -44,9 +44,9 @@ comptime {
//
// :5:23: error: expected error union type, found 'comptime_int'
// :10:23: error: expected error union type, found '@TypeOf(.{})'
-// :15:23: error: expected error union type, found 'tmp.test2__struct_513'
+// :15:23: error: expected error union type, found 'tmp.test2__struct_521'
// :15:23: note: struct declared here
-// :20:27: error: expected error union type, found 'tmp.test3__struct_515'
+// :20:27: error: expected error union type, found 'tmp.test3__struct_523'
// :20:27: note: struct declared here
// :25:23: error: expected error union type, found 'struct { comptime *const [5:0]u8 = "hello" }'
// :31:13: error: expected error union type, found 'u32'