From 3fd3358f37668e54d214aec57033861ea17fd76d Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 27 May 2025 11:02:35 -0400 Subject: [PATCH] x86_64: implement integer `@reduce(.Min)` --- lib/std/zig/Zir.zig | 10 +- src/Air.zig | 8 + src/InternPool.zig | 48 +- src/Sema.zig | 8 + src/Type.zig | 8 + src/arch/x86_64/CodeGen.zig | 8916 +++++++++++++++-- src/arch/x86_64/Mir.zig | 4 +- src/codegen/c/Type.zig | 120 + test/behavior/x86_64.zig | 2 +- test/behavior/x86_64/{mem.zig => access.zig} | 0 test/behavior/x86_64/build.zig | 2 +- test/behavior/x86_64/unary.zig | 8 + .../compile_errors/@import_zon_bad_type.zig | 6 +- .../anytype_param_requires_comptime.zig | 2 +- .../bogus_method_call_on_slice.zig | 2 +- .../compile_errors/coerce_anon_struct.zig | 2 +- test/cases/compile_errors/redundant_try.zig | 4 +- 17 files changed, 8450 insertions(+), 700 deletions(-) rename test/behavior/x86_64/{mem.zig => access.zig} (100%) diff --git a/lib/std/zig/Zir.zig b/lib/std/zig/Zir.zig index fb8a4ef696..5eb1ec3f3a 100644 --- a/lib/std/zig/Zir.zig +++ b/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, diff --git a/src/Air.zig b/src/Air.zig index e1ee37c134..b5078a7748 100644 --- a/src/Air.zig +++ b/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), diff --git a/src/InternPool.zig b/src/InternPool.zig index 8967d23aaa..0a6a4c0f76 100644 --- a/src/InternPool.zig +++ b/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, diff --git a/src/Sema.zig b/src/Sema.zig index 2b117aad82..95f968a346 100644 --- a/src/Sema.zig +++ b/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, diff --git a/src/Type.zig b/src/Type.zig index 17a58807eb..7988033501 100644 --- a/src/Type.zig +++ b/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 }; diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 92d4bf2bc1..ca79f995a0 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/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,7 +122784,7515 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, } }, }, - .Min, .Max => unreachable, + .Min => comptime &.{ .{ + .required_features = .{ .avx, null, null, null }, + .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_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, .srl, .tmp0x, .src0x, .ui(8), ._ }, + .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ }, + } }, + }, .{ + .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_i8, .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, .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 = .{ .{ .unsigned_int = .byte }, .any }, + .src_constraints = .{ .{ .exact_scalar_unsigned_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, .minu, .dst0x, .src0x, .tmp0x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .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 } }, + }, + .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, .minu, .dst0x, .tmp0x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .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 } }, + }, + .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, .minu, .tmp0x, .src0x, .tmp0x, ._ }, + .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ }, + .{ ._, .vp_b, .minu, .dst0x, .tmp0x, .dst0x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .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 } }, + }, + .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, .minu, .tmp0x, .src0x, ._, ._ }, + .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ }, + .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .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 } }, + }, + .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, .minu, .dst0x, .src0x, .tmp0x, ._ }, + .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ }, + .{ ._, .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 = .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, .minu, .dst0x, .tmp0x, ._, ._ }, + .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ }, + .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ }, + .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .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, + .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), ._ }, + .{ ._, .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 = .{ .{ .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, .invert = true } } }, + .{ .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_, .@"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, .minu, .dst0x, .tmp2x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .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 } }, + }, + .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, .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, .minu, .dst0x, .dst0x, .tmp0x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .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 } }, + }, + .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, .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 = .{ .avx, null, null, null }, + .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, + .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), ._ }, + .{ ._, .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 = .{ .{ .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, .invert = true } } }, + .{ .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_, .@"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, .minu, .dst0x, .tmp2x, ._, ._ }, + } }, + }, .{ + .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_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_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, .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 = .{ .{ .unsigned_int = .byte }, .any }, + .src_constraints = .{ .{ .exact_scalar_unsigned_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, .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, .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 = .{ .{ .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, + .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_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 = .{ .{ .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, + .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_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 = .{ .{ .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_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 } }, + .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, .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 = .{ .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 = .{ .{ .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, + .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_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 = .{ .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 = .{ .{ .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 } }, + }, + .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, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, + .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, + .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, + .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, + .{ ._, .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, .minu, .dst0x, .dst0x, .tmp1x, ._ }, + } }, + }, .{ + .required_features = .{ .avx, 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), ._, ._ }, + .{ ._, .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 }, @@ -122871,7 +130366,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_b, .add, .dst0x, .src0x, .tmp0x, ._ }, .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ }, .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ }, @@ -122898,8 +130393,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_b, .add, .dst0x, .tmp0x, ._, ._ }, .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ }, .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ }, @@ -122927,7 +130421,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_b, .add, .tmp0x, .src0x, .tmp0x, ._ }, .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ }, .{ ._, .vp_b, .add, .dst0x, .tmp0x, .dst0x, ._ }, @@ -122954,8 +130448,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_b, .add, .tmp0x, .src0x, ._, ._ }, .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ }, .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ }, @@ -122982,9 +130475,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_b, .add, .dst0x, .src0x, .tmp0x, ._ }, - .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, + .{ ._, .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, ._ }, @@ -123011,10 +130504,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_b, .add, .dst0x, .tmp0x, ._, ._ }, - .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ }, - .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ }, + .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ }, .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ }, .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ }, .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ }, @@ -123044,9 +130536,9 @@ 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(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, ._ }, @@ -123075,10 +130567,9 @@ 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(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), ._, ._ }, @@ -123106,11 +130597,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_b, .add, .dst0x, .src0x, .tmp0x, ._ }, - .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, + .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ }, .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, + .{ ._, .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, ._ }, @@ -123137,12 +130628,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_b, .add, .dst0x, .tmp0x, ._, ._ }, - .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, + .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ }, .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ }, - .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ }, - .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ }, + .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ }, .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ }, .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ }, .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ }, @@ -123172,11 +130662,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_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, ._ }, @@ -123205,12 +130695,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_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), ._, ._ }, @@ -123240,11 +130729,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .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_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ }, .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, + .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ }, .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, + .{ ._, .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, ._ }, @@ -123273,11 +130762,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .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_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ }, .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, + .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ }, .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, + .{ ._, .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, ._ }, @@ -123308,11 +130797,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_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, ._ }, @@ -123343,11 +130832,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_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, ._ }, @@ -123378,11 +130867,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ ._, .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_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ }, .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, + .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ }, .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, + .{ ._, .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, ._ }, @@ -123417,11 +130906,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, ._ }, @@ -123456,11 +130945,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ ._, ._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_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, ._ }, @@ -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| { diff --git a/src/arch/x86_64/Mir.zig b/src/arch/x86_64/Mir.zig index bd846e55fc..83dbc855ec 100644 --- a/src/arch/x86_64/Mir.zig +++ b/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, diff --git a/src/codegen/c/Type.zig b/src/codegen/c/Type.zig index 93e52cd2ec..783e887324 100644 --- a/src/codegen/c/Type.zig +++ b/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, diff --git a/test/behavior/x86_64.zig b/test/behavior/x86_64.zig index 5ad7b228c6..def436dde4 100644 --- a/test/behavior/x86_64.zig +++ b/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"); } diff --git a/test/behavior/x86_64/mem.zig b/test/behavior/x86_64/access.zig similarity index 100% rename from test/behavior/x86_64/mem.zig rename to test/behavior/x86_64/access.zig diff --git a/test/behavior/x86_64/build.zig b/test/behavior/x86_64/build.zig index 8a580714ca..90e5d09cca 100644 --- a/test/behavior/x86_64/build.zig +++ b/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(.{ diff --git a/test/behavior/x86_64/unary.zig b/test/behavior/x86_64/unary.zig index 93ede2a77a..9540aafeb1 100644 --- a/test/behavior/x86_64/unary.zig +++ b/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); } diff --git a/test/cases/compile_errors/@import_zon_bad_type.zig b/test/cases/compile_errors/@import_zon_bad_type.zig index 15282956f2..0b245d3e33 100644 --- a/test/cases/compile_errors/@import_zon_bad_type.zig +++ b/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 diff --git a/test/cases/compile_errors/anytype_param_requires_comptime.zig b/test/cases/compile_errors/anytype_param_requires_comptime.zig index d85a5559f4..6cbb2e9234 100644 --- a/test/cases/compile_errors/anytype_param_requires_comptime.zig +++ b/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 diff --git a/test/cases/compile_errors/bogus_method_call_on_slice.zig b/test/cases/compile_errors/bogus_method_call_on_slice.zig index fe338c86fe..fcd40557b3 100644 --- a/test/cases/compile_errors/bogus_method_call_on_slice.zig +++ b/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 diff --git a/test/cases/compile_errors/coerce_anon_struct.zig b/test/cases/compile_errors/coerce_anon_struct.zig index 2e2cab6ac7..4262baafca 100644 --- a/test/cases/compile_errors/coerce_anon_struct.zig +++ b/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 diff --git a/test/cases/compile_errors/redundant_try.zig b/test/cases/compile_errors/redundant_try.zig index b1acf7f7cc..d9bd8317eb 100644 --- a/test/cases/compile_errors/redundant_try.zig +++ b/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'