authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-27 19:06:50-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-28 15:10:22-04:00
log8bacf3e75703b312c345a79e9bd995d186d63b7d
treed7aea9c62cde920ee4f243ed3132fba179c4ab04
parent3fd3358f37668e54d214aec57033861ea17fd76d

x86_64: implement integer `@reduce(.Max)`


14 files changed, 8246 insertions(+), 118 deletions(-)

lib/std/simd.zig+2-1
......@@ -368,7 +368,8 @@ pub fn countElementsWithValue(vec: anytype, value: std.meta.Child(@TypeOf(vec)))
368368}
369369
370370test "vector searching" {
371 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
371 if (builtin.zig_backend == .stage2_x86_64 and
372 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .ssse3)) return error.SkipZigTest;
372373
373374 const base = @Vector(8, u32){ 6, 4, 7, 4, 4, 2, 3, 7 };
374375
lib/std/zig/Zir.zig+2-1
......@@ -2142,7 +2142,7 @@ pub const Inst = struct {
21422142 ref_start_index = static_len,
21432143 _,
21442144
2145 pub const static_len = 117;
2145 pub const static_len = 118;
21462146
21472147 pub fn toRef(i: Index) Inst.Ref {
21482148 return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i));
......@@ -2246,6 +2246,7 @@ pub const Inst = struct {
22462246 vector_8_u16_type,
22472247 vector_16_u16_type,
22482248 vector_32_u16_type,
2249 vector_2_i32_type,
22492250 vector_4_i32_type,
22502251 vector_8_i32_type,
22512252 vector_16_i32_type,
src/Air.zig+1
......@@ -1029,6 +1029,7 @@ pub const Inst = struct {
10291029 vector_8_u16_type = @intFromEnum(InternPool.Index.vector_8_u16_type),
10301030 vector_16_u16_type = @intFromEnum(InternPool.Index.vector_16_u16_type),
10311031 vector_32_u16_type = @intFromEnum(InternPool.Index.vector_32_u16_type),
1032 vector_2_i32_type = @intFromEnum(InternPool.Index.vector_2_i32_type),
10321033 vector_4_i32_type = @intFromEnum(InternPool.Index.vector_4_i32_type),
10331034 vector_8_i32_type = @intFromEnum(InternPool.Index.vector_8_i32_type),
10341035 vector_16_i32_type = @intFromEnum(InternPool.Index.vector_16_i32_type),
src/InternPool.zig+5
......@@ -4606,6 +4606,7 @@ pub const Index = enum(u32) {
46064606 vector_8_u16_type,
46074607 vector_16_u16_type,
46084608 vector_32_u16_type,
4609 vector_2_i32_type,
46094610 vector_4_i32_type,
46104611 vector_8_i32_type,
46114612 vector_16_i32_type,
......@@ -5168,6 +5169,8 @@ pub const static_keys: [static_len]Key = .{
51685169 .{ .vector_type = .{ .len = 16, .child = .u16_type } },
51695170 // @Vector(32, u16)
51705171 .{ .vector_type = .{ .len = 32, .child = .u16_type } },
5172 // @Vector(2, i32)
5173 .{ .vector_type = .{ .len = 2, .child = .i32_type } },
51715174 // @Vector(4, i32)
51725175 .{ .vector_type = .{ .len = 4, .child = .i32_type } },
51735176 // @Vector(8, i32)
......@@ -11870,6 +11873,7 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
1187011873 .vector_8_u16_type,
1187111874 .vector_16_u16_type,
1187211875 .vector_32_u16_type,
11876 .vector_2_i32_type,
1187311877 .vector_4_i32_type,
1187411878 .vector_8_i32_type,
1187511879 .vector_16_i32_type,
......@@ -12210,6 +12214,7 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
1221012214 .vector_8_u16_type,
1221112215 .vector_16_u16_type,
1221212216 .vector_32_u16_type,
12217 .vector_2_i32_type,
1221312218 .vector_4_i32_type,
1221412219 .vector_8_i32_type,
1221512220 .vector_16_i32_type,
src/Sema.zig+1
......@@ -36562,6 +36562,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
3656236562 .vector_8_u16_type,
3656336563 .vector_16_u16_type,
3656436564 .vector_32_u16_type,
36565 .vector_2_i32_type,
3656536566 .vector_4_i32_type,
3656636567 .vector_8_i32_type,
3656736568 .vector_16_i32_type,
src/Type.zig+1
......@@ -4127,6 +4127,7 @@ pub const vector_4_u16: Type = .{ .ip_index = .vector_4_u16_type };
41274127pub const vector_8_u16: Type = .{ .ip_index = .vector_8_u16_type };
41284128pub const vector_16_u16: Type = .{ .ip_index = .vector_16_u16_type };
41294129pub const vector_32_u16: Type = .{ .ip_index = .vector_32_u16_type };
4130pub const vector_2_i32: Type = .{ .ip_index = .vector_2_i32_type };
41304131pub const vector_4_i32: Type = .{ .ip_index = .vector_4_i32_type };
41314132pub const vector_8_i32: Type = .{ .ip_index = .vector_8_i32_type };
41324133pub const vector_16_i32: Type = .{ .ip_index = .vector_16_i32_type };
src/arch/x86_64/CodeGen.zig+8203-108
......@@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23892389}
23902390
23912391fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2392 @setEvalBranchQuota(25_200);
2392 @setEvalBranchQuota(26_500);
23932393 const pt = cg.pt;
23942394 const zcu = pt.zcu;
23952395 const ip = &zcu.intern_pool;
......@@ -117441,8 +117441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
117441117441 const res_ty = cg.typeOfIndex(inst);
117442117442 switch (reduce.operation) {
117443117443 .And, .Or, .Xor => {},
117444 .Min => if (cg.floatBits(res_ty)) |_| break :fallback try cg.airReduce(inst),
117445 .Max => break :fallback try cg.airReduce(inst),
117444 .Min, .Max => if (cg.floatBits(res_ty)) |_| break :fallback try cg.airReduce(inst),
117446117445 .Add, .Mul => {},
117447117446 }
117448117447 var ops = try cg.tempsFromOperands(inst, .{reduce.operand});
......@@ -125052,7 +125051,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125052125051 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125053125052 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125054125053 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125055 .{ ._, ._g, .cmov, .dst0d, .tmp1d, ._, ._ },
125054 .{ ._, ._nl, .cmov, .dst0d, .tmp1d, ._, ._ },
125056125055 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
125057125056 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
125058125057 } },
......@@ -125083,7 +125082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125083125082 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125084125083 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125085125084 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125086 .{ ._, ._g, .cmov, .dst0d, .tmp1d, ._, ._ },
125085 .{ ._, ._nl, .cmov, .dst0d, .tmp1d, ._, ._ },
125087125086 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
125088125087 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
125089125088 } },
......@@ -125114,7 +125113,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125114125113 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125115125114 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125116125115 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125117 .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
125116 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
125118125117 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
125119125118 .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
125120125119 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
......@@ -125145,7 +125144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125145125144 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125146125145 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125147125146 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125148 .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
125147 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
125149125148 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
125150125149 .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
125151125150 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
......@@ -125177,7 +125176,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125177125176 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125178125177 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125179125178 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125180 .{ ._, ._a, .cmov, .dst0d, .tmp1d, ._, ._ },
125179 .{ ._, ._nb, .cmov, .dst0d, .tmp1d, ._, ._ },
125181125180 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
125182125181 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
125183125182 } },
......@@ -125208,7 +125207,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125208125207 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125209125208 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125210125209 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125211 .{ ._, ._a, .cmov, .dst0d, .tmp1d, ._, ._ },
125210 .{ ._, ._nb, .cmov, .dst0d, .tmp1d, ._, ._ },
125212125211 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
125213125212 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
125214125213 } },
......@@ -125239,7 +125238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125239125238 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125240125239 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125241125240 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125242 .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
125241 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
125243125242 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
125244125243 .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
125245125244 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
......@@ -125270,7 +125269,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125270125269 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125271125270 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125272125271 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125273 .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
125272 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
125274125273 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
125275125274 .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
125276125275 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
......@@ -125894,6 +125893,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125894125893 .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
125895125894 .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
125896125895 } },
125896 }, .{
125897 .required_features = .{ .avx2, null, null, null },
125898 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125899 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125900 .patterns = &.{
125901 .{ .src = .{ .to_sse, .none, .none } },
125902 },
125903 .extra_temps = .{
125904 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125905 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125906 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125907 .unused,
125908 .unused,
125909 .unused,
125910 .unused,
125911 .unused,
125912 .unused,
125913 .unused,
125914 .unused,
125915 },
125916 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125917 .each = .{ .once = &.{
125918 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125919 .{ ._, .vp_w, .broadcast, .tmp2x, .lea(.tmp0w), ._, ._ },
125920 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
125921 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125922 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
125923 } },
125897125924 }, .{
125898125925 .required_features = .{ .avx, null, null, null },
125899125926 .dst_constraints = .{ .{ .signed_int = .word }, .any },
......@@ -125903,7 +125930,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125903125930 },
125904125931 .extra_temps = .{
125905125932 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125906 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125933 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125907125934 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125908125935 .unused,
125909125936 .unused,
......@@ -125917,7 +125944,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125917125944 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125918125945 .each = .{ .once = &.{
125919125946 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125920 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
125947 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
125921125948 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
125922125949 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125923125950 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
......@@ -125931,7 +125958,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125931125958 },
125932125959 .extra_temps = .{
125933125960 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125934 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125961 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125935125962 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125936125963 .unused,
125937125964 .unused,
......@@ -125945,7 +125972,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
125945125972 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125946125973 .each = .{ .once = &.{
125947125974 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125948 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
125975 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
125949125976 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
125950125977 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125951125978 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
......@@ -126168,7 +126195,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126168126195 .extra_temps = .{
126169126196 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126170126197 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126171 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126198 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126172126199 .unused,
126173126200 .unused,
126174126201 .unused,
......@@ -126183,7 +126210,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126183126210 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
126184126211 .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
126185126212 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
126186 .{ ._, .v_dqa, .mov, .tmp0x, .lea(.tmp1x), ._, ._ },
126213 .{ ._, .vp_w, .broadcast, .tmp0x, .lea(.tmp1w), ._, ._ },
126187126214 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126188126215 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126189126216 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
......@@ -126198,7 +126225,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126198126225 .extra_temps = .{
126199126226 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126200126227 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126201 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126228 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126202126229 .unused,
126203126230 .unused,
126204126231 .unused,
......@@ -126213,7 +126240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126213126240 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
126214126241 .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
126215126242 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
126216 .{ ._, .v_dqa, .mov, .tmp0x, .lea(.tmp1x), ._, ._ },
126243 .{ ._, .v_ss, .broadcast, .tmp0x, .lea(.tmp1d), ._, ._ },
126217126244 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126218126245 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126219126246 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
......@@ -126348,7 +126375,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126348126375 .extra_temps = .{
126349126376 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126350126377 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126351 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126378 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126352126379 .unused,
126353126380 .unused,
126354126381 .unused,
......@@ -126365,7 +126392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126365126392 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
126366126393 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp0x, ._ },
126367126394 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
126368 .{ ._, .v_dqa, .mov, .tmp0x, .lea(.tmp1x), ._, ._ },
126395 .{ ._, .vp_w, .broadcast, .tmp0x, .lea(.tmp1w), ._, ._ },
126369126396 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126370126397 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126371126398 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
......@@ -126408,7 +126435,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126408126435 .extra_temps = .{
126409126436 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126410126437 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126411 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126438 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126412126439 .unused,
126413126440 .unused,
126414126441 .unused,
......@@ -126429,7 +126456,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126429126456 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
126430126457 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp1x, ._ },
126431126458 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
126432 .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ },
126459 .{ ._, .vp_w, .broadcast, .tmp1x, .lea(.tmp0w), ._, ._ },
126433126460 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
126434126461 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126435126462 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
......@@ -126443,7 +126470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126443126470 },
126444126471 .extra_temps = .{
126445126472 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126446 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126473 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126447126474 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126448126475 .unused,
126449126476 .unused,
......@@ -126463,7 +126490,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126463126490 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126464126491 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126465126492 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126466 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
126493 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
126467126494 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
126468126495 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126469126496 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
......@@ -126477,7 +126504,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126477126504 },
126478126505 .extra_temps = .{
126479126506 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126480 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126507 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126481126508 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126482126509 .unused,
126483126510 .unused,
......@@ -126497,7 +126524,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126497126524 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126498126525 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126499126526 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126500 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
126527 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
126501126528 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
126502126529 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126503126530 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
......@@ -126684,7 +126711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126684126711 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126685126712 .{ .type = .vector_32_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126686126713 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
126687 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126714 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126688126715 .unused,
126689126716 .unused,
126690126717 .unused,
......@@ -126712,7 +126739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126712126739 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
126713126740 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp3x, ._ },
126714126741 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
126715 .{ ._, .v_dqa, .mov, .tmp3x, .lea(.tmp0x), ._, ._ },
126742 .{ ._, .vp_w, .broadcast, .tmp3x, .lea(.tmp0w), ._, ._ },
126716126743 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126717126744 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126718126745 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
......@@ -126729,7 +126756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126729126756 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126730126757 .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126731126758 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126732 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126759 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126733126760 .unused,
126734126761 .unused,
126735126762 .unused,
......@@ -126752,7 +126779,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126752126779 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
126753126780 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp3x, ._ },
126754126781 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
126755 .{ ._, .v_dqa, .mov, .tmp3x, .lea(.tmp0x), ._, ._ },
126782 .{ ._, .vp_w, .broadcast, .tmp3x, .lea(.tmp0w), ._, ._ },
126756126783 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126757126784 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126758126785 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
......@@ -126769,7 +126796,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126769126796 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126770126797 .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126771126798 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126772 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126799 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126773126800 .unused,
126774126801 .unused,
126775126802 .unused,
......@@ -126792,7 +126819,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126792126819 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126793126820 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126794126821 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
126795 .{ ._, .v_dqa, .mov, .tmp3x, .lea(.tmp0x), ._, ._ },
126822 .{ ._, .v_ss, .broadcast, .tmp3x, .lea(.tmp0d), ._, ._ },
126796126823 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126797126824 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126798126825 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
......@@ -126808,7 +126835,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126808126835 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126809126836 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126810126837 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126811 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126838 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126812126839 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126813126840 .unused,
126814126841 .unused,
......@@ -126830,7 +126857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
126830126857 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126831126858 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126832126859 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
126833 .{ ._, ._dqa, .mov, .tmp4x, .lea(.tmp0x), ._, ._ },
126860 .{ ._, ._, .movddup, .tmp4x, .lea(.tmp0q), ._, ._ },
126834126861 .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
126835126862 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126836126863 .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
......@@ -127084,7 +127111,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
127084127111 .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
127085127112 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
127086127113 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
127087 .{ ._, ._g, .cmov, .dst0d, .tmp1d, ._, ._ },
127114 .{ ._, ._nl, .cmov, .dst0d, .tmp1d, ._, ._ },
127088127115 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
127089127116 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127090127117 } },
......@@ -127114,7 +127141,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
127114127141 .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
127115127142 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
127116127143 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
127117 .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
127144 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
127118127145 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
127119127146 .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
127120127147 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
......@@ -127146,7 +127173,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
127146127173 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
127147127174 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
127148127175 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
127149 .{ ._, ._a, .cmov, .dst0d, .tmp1d, ._, ._ },
127176 .{ ._, ._nb, .cmov, .dst0d, .tmp1d, ._, ._ },
127150127177 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
127151127178 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127152127179 } },
......@@ -127176,7 +127203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
127176127203 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
127177127204 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
127178127205 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
127179 .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
127206 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
127180127207 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
127181127208 .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
127182127209 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
......@@ -127310,6 +127337,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
127310127337 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127311127338 .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
127312127339 } },
127340 }, .{
127341 .required_features = .{ .sse3, null, null, null },
127342 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127343 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
127344 .patterns = &.{
127345 .{ .src = .{ .to_mut_sse, .none, .none } },
127346 },
127347 .extra_temps = .{
127348 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127349 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127350 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127351 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127352 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127353 .unused,
127354 .unused,
127355 .unused,
127356 .unused,
127357 .unused,
127358 .unused,
127359 },
127360 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127361 .each = .{ .once = &.{
127362 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127363 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
127364 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127365 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127366 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127367 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127368 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127369 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127370 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127371 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127372 } },
127313127373 }, .{
127314127374 .required_features = .{ .sse2, null, null, null },
127315127375 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
......@@ -127486,6 +127546,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
127486127546 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
127487127547 .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
127488127548 } },
127549 }, .{
127550 .required_features = .{ .sse3, null, null, null },
127551 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127552 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127553 .patterns = &.{
127554 .{ .src = .{ .to_mut_sse, .none, .none } },
127555 },
127556 .extra_temps = .{
127557 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127558 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127559 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127560 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127561 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127562 .unused,
127563 .unused,
127564 .unused,
127565 .unused,
127566 .unused,
127567 .unused,
127568 },
127569 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127570 .each = .{ .once = &.{
127571 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127572 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
127573 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127574 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127575 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
127576 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
127577 .{ ._, .p_, .@"and", .tmp3x, .tmp4x, ._, ._ },
127578 .{ ._, .p_, .andn, .tmp4x, .dst0x, ._, ._ },
127579 .{ ._, .p_, .@"or", .tmp3x, .tmp4x, ._, ._ },
127580 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
127581 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127582 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127583 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127584 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127585 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127586 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127587 } },
127489127588 }, .{
127490127589 .required_features = .{ .sse2, null, null, null },
127491127590 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
......@@ -127668,6 +127767,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
127668127767 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
127669127768 .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
127670127769 } },
127770 }, .{
127771 .required_features = .{ .sse3, null, null, null },
127772 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127773 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127774 .patterns = &.{
127775 .{ .src = .{ .to_mut_sse, .none, .none } },
127776 },
127777 .extra_temps = .{
127778 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127779 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127780 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127781 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127782 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127783 .unused,
127784 .unused,
127785 .unused,
127786 .unused,
127787 .unused,
127788 .unused,
127789 },
127790 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127791 .each = .{ .once = &.{
127792 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127793 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
127794 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127795 .{ ._, .p_d, .shuf, .tmp3x, .src0x, .ui(0b11_10), ._ },
127796 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127797 .{ ._, .p_d, .cmpgt, .tmp4x, .src0x, ._, ._ },
127798 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127799 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127800 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127801 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127802 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127803 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127804 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127805 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127806 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127807 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127808 } },
127671127809 }, .{
127672127810 .required_features = .{ .sse2, null, null, null },
127673127811 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
......@@ -128334,6 +128472,57 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
128334128472 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128335128473 .{ ._, .p_d, .minu, .dst0x, .tmp1x, ._, ._ },
128336128474 } },
128475 }, .{
128476 .required_features = .{ .sse3, null, null, null },
128477 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128478 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128479 .patterns = &.{
128480 .{ .src = .{ .to_mem, .none, .none } },
128481 },
128482 .extra_temps = .{
128483 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128484 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
128485 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128486 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128487 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128488 .unused,
128489 .unused,
128490 .unused,
128491 .unused,
128492 .unused,
128493 .unused,
128494 },
128495 .dst_temps = .{ .{ .rc = .sse }, .unused },
128496 .clobbers = .{ .eflags = true },
128497 .each = .{ .once = &.{
128498 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128499 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
128500 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
128501 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
128502 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128503 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
128504 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
128505 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128506 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128507 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128508 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128509 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128510 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128511 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128512 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128513 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128514 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128515 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128516 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128517 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128518 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128519 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128520 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128521 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128522 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128523 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128524 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128525 } },
128337128526 }, .{
128338128527 .required_features = .{ .sse2, null, null, null },
128339128528 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
......@@ -128744,6 +128933,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
128744128933 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128745128934 .{ ._, .p_d, .minu, .dst0x, .tmp2x, ._, ._ },
128746128935 } },
128936 }, .{
128937 .required_features = .{ .sse3, null, null, null },
128938 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128939 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128940 .patterns = &.{
128941 .{ .src = .{ .to_mem, .none, .none } },
128942 },
128943 .extra_temps = .{
128944 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128945 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
128946 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128947 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
128948 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128949 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128950 .unused,
128951 .unused,
128952 .unused,
128953 .unused,
128954 .unused,
128955 },
128956 .dst_temps = .{ .{ .rc = .sse }, .unused },
128957 .clobbers = .{ .eflags = true },
128958 .each = .{ .once = &.{
128959 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128960 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
128961 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
128962 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
128963 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
128964 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128965 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
128966 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
128967 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
128968 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
128969 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
128970 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
128971 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
128972 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
128973 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128974 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128975 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
128976 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
128977 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
128978 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
128979 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
128980 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
128981 .{ ._, .p_w, .shufl, .tmp4x, .dst0x, .ui(0b11_10), ._ },
128982 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
128983 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
128984 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
128985 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
128986 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
128987 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128988 } },
128747128989 }, .{
128748128990 .required_features = .{ .sse2, null, null, null },
128749128991 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
......@@ -128771,8 +129013,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
128771129013 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
128772129014 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
128773129015 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
128774 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128775129016 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
129017 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128776129018 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
128777129019 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
128778129020 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
......@@ -128824,7 +129066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
128824129066 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
128825129067 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
128826129068 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
128827 .{ ._, ._g, .cmov, .dst0d, .tmp1d, ._, ._ },
129069 .{ ._, ._nl, .cmov, .dst0d, .tmp1d, ._, ._ },
128828129070 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
128829129071 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128830129072 } },
......@@ -128854,7 +129096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
128854129096 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
128855129097 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
128856129098 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
128857 .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
129099 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
128858129100 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
128859129101 .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
128860129102 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
......@@ -128886,7 +129128,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
128886129128 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
128887129129 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
128888129130 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
128889 .{ ._, ._a, .cmov, .dst0d, .tmp1d, ._, ._ },
129131 .{ ._, ._nb, .cmov, .dst0d, .tmp1d, ._, ._ },
128890129132 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
128891129133 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128892129134 } },
......@@ -128916,7 +129158,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
128916129158 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
128917129159 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
128918129160 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
128919 .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
129161 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
128920129162 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
128921129163 .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
128922129164 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
......@@ -128974,6 +129216,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
128974129216 .{ ._, .p_q, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
128975129217 .{ ._, .p_b, .blendv, .dst0x, .tmp0x, .tmp1x, ._ },
128976129218 } },
129219 }, .{
129220 .required_features = .{ .avx2, null, null, null },
129221 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129222 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129223 .patterns = &.{
129224 .{ .src = .{ .mem, .none, .none } },
129225 .{ .src = .{ .to_sse, .none, .none } },
129226 },
129227 .extra_temps = .{
129228 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129229 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129230 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129231 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129232 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129233 .unused,
129234 .unused,
129235 .unused,
129236 .unused,
129237 .unused,
129238 .unused,
129239 },
129240 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129241 .each = .{ .once = &.{
129242 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129243 .{ ._, .vp_q, .broadcast, .tmp2x, .lea(.tmp0q), ._, ._ },
129244 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
129245 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129246 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129247 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129248 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129249 } },
128977129250 }, .{
128978129251 .required_features = .{ .avx, null, null, null },
128979129252 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
......@@ -129352,10 +129625,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
129352129625 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129353129626 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129354129627 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
129355 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
129356 .{ ._, .vp_, .xor, .tmp4y, .tmp2y, .memd(.src0y, 32), ._ },
129628 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
129629 .{ ._, .v_dqa, .mov, .tmp4y, .memd(.src0y, 32), ._, ._ },
129357129630 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
129358129631 .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
129632 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
129633 .{ ._, .vp_, .xor, .tmp4y, .tmp4y, .tmp2y, ._ },
129359129634 .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
129360129635 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
129361129636 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
......@@ -129854,10 +130129,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
129854130129 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129855130130 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129856130131 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
129857 .{ ._, .vp_, .xor, .tmp4y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
129858 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_size, -64), ._ },
130132 .{ ._, .v_dqa, .mov, .tmp4y, .memad(.src0y, .add_size, -32), ._, ._ },
130133 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_size, -64), ._, ._ },
129859130134 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
129860130135 .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
130136 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
130137 .{ ._, .vp_, .xor, .tmp4y, .tmp4y, .tmp2y, ._ },
129861130138 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
129862130139 .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
129863130140 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
......@@ -129901,8 +130178,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
129901130178 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129902130179 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129903130180 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
129904 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
130181 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_size, -32), ._, ._ },
129905130182 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130183 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
129906130184 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
129907130185 .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
129908130186 .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
......@@ -129944,8 +130222,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
129944130222 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129945130223 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129946130224 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
129947 .{ ._, .v_ps, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
130225 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_size, -32), ._, ._ },
129948130226 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130227 .{ ._, .v_ps, .xor, .dst0y, .dst0y, .tmp2y, ._ },
129949130228 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
129950130229 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
129951130230 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
......@@ -129987,8 +130266,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
129987130266 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
129988130267 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
129989130268 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
129990 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
129991130269 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
130270 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
129992130271 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
129993130272 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
129994130273 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
......@@ -130030,7 +130309,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130030130309 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
130031130310 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
130032130311 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
130033 .{ ._, ._g, .cmov, .dst0q, .tmp1q, ._, ._ },
130312 .{ ._, ._nl, .cmov, .dst0q, .tmp1q, ._, ._ },
130034130313 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
130035130314 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130036130315 } },
......@@ -130061,7 +130340,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130061130340 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
130062130341 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
130063130342 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
130064 .{ ._, ._ng, .j, .@"1f", ._, ._, ._ },
130343 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
130065130344 .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
130066130345 .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
130067130346 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
......@@ -130093,7 +130372,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130093130372 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
130094130373 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
130095130374 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
130096 .{ ._, ._a, .cmov, .dst0q, .tmp1q, ._, ._ },
130375 .{ ._, ._nb, .cmov, .dst0q, .tmp1q, ._, ._ },
130097130376 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
130098130377 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130099130378 } },
......@@ -130124,7 +130403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130124130403 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
130125130404 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
130126130405 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
130127 .{ ._, ._na, .j, .@"1f", ._, ._, ._ },
130406 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
130128130407 .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
130129130408 .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
130130130409 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
......@@ -130292,11 +130571,91 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130292130571 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
130293130572 } },
130294130573 } },
130295 .Max => unreachable,
130296 .Add => comptime &.{ .{
130574 .Max => comptime &.{ .{
130297130575 .required_features = .{ .avx, null, null, null },
130298 .dst_constraints = .{ .{ .int = .byte }, .any },
130299 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
130576 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130577 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
130578 .patterns = &.{
130579 .{ .src = .{ .to_sse, .none, .none } },
130580 },
130581 .extra_temps = .{
130582 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130583 .unused,
130584 .unused,
130585 .unused,
130586 .unused,
130587 .unused,
130588 .unused,
130589 .unused,
130590 .unused,
130591 .unused,
130592 .unused,
130593 },
130594 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130595 .each = .{ .once = &.{
130596 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
130597 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
130598 } },
130599 }, .{
130600 .required_features = .{ .sse4_1, null, null, null },
130601 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130602 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
130603 .patterns = &.{
130604 .{ .src = .{ .to_mut_sse, .none, .none } },
130605 },
130606 .extra_temps = .{
130607 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130608 .unused,
130609 .unused,
130610 .unused,
130611 .unused,
130612 .unused,
130613 .unused,
130614 .unused,
130615 .unused,
130616 .unused,
130617 .unused,
130618 },
130619 .dst_temps = .{ .{ .ref = .src0 }, .unused },
130620 .each = .{ .once = &.{
130621 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
130622 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
130623 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
130624 } },
130625 }, .{
130626 .required_features = .{ .sse2, null, null, null },
130627 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130628 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
130629 .patterns = &.{
130630 .{ .src = .{ .to_mut_sse, .none, .none } },
130631 },
130632 .extra_temps = .{
130633 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130634 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130635 .unused,
130636 .unused,
130637 .unused,
130638 .unused,
130639 .unused,
130640 .unused,
130641 .unused,
130642 .unused,
130643 .unused,
130644 },
130645 .dst_temps = .{ .{ .ref = .src0 }, .unused },
130646 .each = .{ .once = &.{
130647 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
130648 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
130649 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
130650 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
130651 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
130652 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
130653 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
130654 } },
130655 }, .{
130656 .required_features = .{ .avx, null, null, null },
130657 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
130658 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any },
130300130659 .patterns = &.{
130301130660 .{ .src = .{ .to_sse, .none, .none } },
130302130661 },
......@@ -130316,12 +130675,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130316130675 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130317130676 .each = .{ .once = &.{
130318130677 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
130319 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
130678 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
130320130679 } },
130321130680 }, .{
130322130681 .required_features = .{ .sse2, null, null, null },
130323 .dst_constraints = .{ .{ .int = .byte }, .any },
130324 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
130682 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
130683 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any },
130325130684 .patterns = &.{
130326130685 .{ .src = .{ .to_mut_sse, .none, .none } },
130327130686 },
......@@ -130342,17 +130701,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130342130701 .each = .{ .once = &.{
130343130702 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
130344130703 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
130345 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
130704 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
130346130705 } },
130347130706 }, .{
130348130707 .required_features = .{ .avx, null, null, null },
130349 .dst_constraints = .{ .{ .int = .byte }, .any },
130350 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130708 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130709 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130351130710 .patterns = &.{
130352130711 .{ .src = .{ .to_sse, .none, .none } },
130353130712 },
130354130713 .extra_temps = .{
130355 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
130714 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130356130715 .unused,
130357130716 .unused,
130358130717 .unused,
......@@ -130367,19 +130726,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130367130726 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130368130727 .each = .{ .once = &.{
130369130728 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130370 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
130371 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
130372 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
130729 .{ ._, .vp_b, .maxs, .tmp0x, .src0x, .tmp0x, ._ },
130730 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
130731 .{ ._, .vp_b, .maxs, .dst0x, .tmp0x, .dst0x, ._ },
130373130732 } },
130374130733 }, .{
130375 .required_features = .{ .sse2, null, null, null },
130376 .dst_constraints = .{ .{ .int = .byte }, .any },
130377 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130734 .required_features = .{ .sse4_1, null, null, null },
130735 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130736 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130378130737 .patterns = &.{
130379130738 .{ .src = .{ .to_mut_sse, .none, .none } },
130380130739 },
130381130740 .extra_temps = .{
130382 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
130741 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130383130742 .unused,
130384130743 .unused,
130385130744 .unused,
......@@ -130394,15 +130753,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130394130753 .dst_temps = .{ .{ .ref = .src0 }, .unused },
130395130754 .each = .{ .once = &.{
130396130755 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130397 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
130398 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
130399 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
130400 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
130756 .{ ._, .p_b, .maxs, .tmp0x, .src0x, ._, ._ },
130757 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
130758 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
130759 } },
130760 }, .{
130761 .required_features = .{ .sse2, null, null, null },
130762 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130763 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130764 .patterns = &.{
130765 .{ .src = .{ .to_mut_sse, .none, .none } },
130766 },
130767 .extra_temps = .{
130768 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130769 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130770 .unused,
130771 .unused,
130772 .unused,
130773 .unused,
130774 .unused,
130775 .unused,
130776 .unused,
130777 .unused,
130778 .unused,
130779 },
130780 .dst_temps = .{ .{ .ref = .src0 }, .unused },
130781 .each = .{ .once = &.{
130782 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130783 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
130784 .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
130785 .{ ._, .p_, .@"and", .tmp0x, .tmp1x, ._, ._ },
130786 .{ ._, .p_, .andn, .tmp1x, .src0x, ._, ._ },
130787 .{ ._, .p_, .@"or", .tmp0x, .tmp1x, ._, ._ },
130788 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
130789 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
130790 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
130791 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
130792 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
130793 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
130401130794 } },
130402130795 }, .{
130403130796 .required_features = .{ .avx, null, null, null },
130404 .dst_constraints = .{ .{ .int = .byte }, .any },
130405 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130797 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
130798 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130406130799 .patterns = &.{
130407130800 .{ .src = .{ .to_sse, .none, .none } },
130408130801 },
......@@ -130422,14 +130815,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130422130815 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130423130816 .each = .{ .once = &.{
130424130817 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130425 .{ ._, .vp_b, .add, .tmp0x, .src0x, .tmp0x, ._ },
130818 .{ ._, .vp_b, .maxu, .tmp0x, .src0x, .tmp0x, ._ },
130426130819 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
130427 .{ ._, .vp_b, .add, .dst0x, .tmp0x, .dst0x, ._ },
130820 .{ ._, .vp_b, .maxu, .dst0x, .tmp0x, .dst0x, ._ },
130428130821 } },
130429130822 }, .{
130430130823 .required_features = .{ .sse2, null, null, null },
130431 .dst_constraints = .{ .{ .int = .byte }, .any },
130432 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130824 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
130825 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130433130826 .patterns = &.{
130434130827 .{ .src = .{ .to_mut_sse, .none, .none } },
130435130828 },
......@@ -130449,14 +130842,105 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130449130842 .dst_temps = .{ .{ .ref = .src0 }, .unused },
130450130843 .each = .{ .once = &.{
130451130844 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130452 .{ ._, .p_b, .add, .tmp0x, .src0x, ._, ._ },
130845 .{ ._, .p_b, .maxu, .tmp0x, .src0x, ._, ._ },
130453130846 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
130454 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
130847 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
130455130848 } },
130456130849 }, .{
130457130850 .required_features = .{ .avx, null, null, null },
130458 .dst_constraints = .{ .{ .int = .byte }, .any },
130459 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
130851 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130852 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130853 .patterns = &.{
130854 .{ .src = .{ .to_sse, .none, .none } },
130855 },
130856 .extra_temps = .{
130857 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130858 .unused,
130859 .unused,
130860 .unused,
130861 .unused,
130862 .unused,
130863 .unused,
130864 .unused,
130865 .unused,
130866 .unused,
130867 .unused,
130868 },
130869 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130870 .each = .{ .once = &.{
130871 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130872 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
130873 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
130874 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
130875 } },
130876 }, .{
130877 .required_features = .{ .sse4_1, null, null, null },
130878 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130879 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130880 .patterns = &.{
130881 .{ .src = .{ .to_mut_sse, .none, .none } },
130882 },
130883 .extra_temps = .{
130884 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130885 .unused,
130886 .unused,
130887 .unused,
130888 .unused,
130889 .unused,
130890 .unused,
130891 .unused,
130892 .unused,
130893 .unused,
130894 .unused,
130895 },
130896 .dst_temps = .{ .{ .ref = .src0 }, .unused },
130897 .each = .{ .once = &.{
130898 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130899 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
130900 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
130901 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
130902 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
130903 } },
130904 }, .{
130905 .required_features = .{ .sse2, null, null, null },
130906 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130907 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130908 .patterns = &.{
130909 .{ .src = .{ .to_mut_sse, .none, .none } },
130910 },
130911 .extra_temps = .{
130912 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130913 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
130914 .unused,
130915 .unused,
130916 .unused,
130917 .unused,
130918 .unused,
130919 .unused,
130920 .unused,
130921 .unused,
130922 .unused,
130923 },
130924 .dst_temps = .{ .{ .ref = .src0 }, .unused },
130925 .each = .{ .once = &.{
130926 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130927 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
130928 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
130929 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
130930 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
130931 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
130932 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
130933 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
130934 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
130935 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
130936 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
130937 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
130938 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
130939 } },
130940 }, .{
130941 .required_features = .{ .avx, null, null, null },
130942 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
130943 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130460130944 .patterns = &.{
130461130945 .{ .src = .{ .to_sse, .none, .none } },
130462130946 },
......@@ -130475,17 +130959,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130475130959 },
130476130960 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130477130961 .each = .{ .once = &.{
130478 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
130479 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
130480 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
130481 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
130962 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130963 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
130482130964 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
130483 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
130965 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
130484130966 } },
130485130967 }, .{
130486130968 .required_features = .{ .sse2, null, null, null },
130487 .dst_constraints = .{ .{ .int = .byte }, .any },
130488 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
130969 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
130970 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
130489130971 .patterns = &.{
130490130972 .{ .src = .{ .to_mut_sse, .none, .none } },
130491130973 },
......@@ -130504,18 +130986,129 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130504130986 },
130505130987 .dst_temps = .{ .{ .ref = .src0 }, .unused },
130506130988 .each = .{ .once = &.{
130507 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
130508 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
130509 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
130510 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
130989 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
130990 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
130511130991 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
130512130992 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
130513 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
130993 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
130514130994 } },
130515130995 }, .{
130516130996 .required_features = .{ .avx, null, null, null },
130517 .dst_constraints = .{ .{ .int = .byte }, .any },
130518 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
130997 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
130998 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
130999 .patterns = &.{
131000 .{ .src = .{ .to_sse, .none, .none } },
131001 },
131002 .extra_temps = .{
131003 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131004 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131005 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131006 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131007 .unused,
131008 .unused,
131009 .unused,
131010 .unused,
131011 .unused,
131012 .unused,
131013 .unused,
131014 },
131015 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131016 .each = .{ .once = &.{
131017 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131018 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
131019 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131020 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
131021 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131022 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131023 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
131024 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131025 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
131026 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131027 } },
131028 }, .{
131029 .required_features = .{ .sse4_1, null, null, null },
131030 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131031 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131032 .patterns = &.{
131033 .{ .src = .{ .to_mut_sse, .none, .none } },
131034 },
131035 .extra_temps = .{
131036 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131037 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131038 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131039 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131040 .unused,
131041 .unused,
131042 .unused,
131043 .unused,
131044 .unused,
131045 .unused,
131046 .unused,
131047 },
131048 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131049 .each = .{ .once = &.{
131050 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131051 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
131052 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131053 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
131054 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131055 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
131056 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
131057 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
131058 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
131059 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
131060 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
131061 } },
131062 }, .{
131063 .required_features = .{ .sse2, null, null, null },
131064 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131065 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131066 .patterns = &.{
131067 .{ .src = .{ .to_mut_sse, .none, .none } },
131068 },
131069 .extra_temps = .{
131070 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131071 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131072 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131073 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131074 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131075 .unused,
131076 .unused,
131077 .unused,
131078 .unused,
131079 .unused,
131080 .unused,
131081 },
131082 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131083 .each = .{ .once = &.{
131084 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131085 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
131086 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131087 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
131088 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131089 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
131090 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
131091 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
131092 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
131093 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
131094 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
131095 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
131096 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
131097 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
131098 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
131099 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
131100 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
131101 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
131102 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
131103 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
131104 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
131105 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
131106 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
131107 } },
131108 }, .{
131109 .required_features = .{ .avx, null, null, null },
131110 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131111 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
130519131112 .patterns = &.{
130520131113 .{ .src = .{ .to_sse, .none, .none } },
130521131114 },
......@@ -130537,16 +131130,7518 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
130537131130 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130538131131 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
130539131132 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
130540 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
131133 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
130541131134 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
130542 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
131135 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
130543131136 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
130544 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
131137 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
130545131138 } },
130546131139 }, .{
130547131140 .required_features = .{ .sse2, null, null, null },
130548 .dst_constraints = .{ .{ .int = .byte }, .any },
130549 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131141 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131142 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131143 .patterns = &.{
131144 .{ .src = .{ .to_mut_sse, .none, .none } },
131145 },
131146 .extra_temps = .{
131147 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131148 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131149 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131150 .unused,
131151 .unused,
131152 .unused,
131153 .unused,
131154 .unused,
131155 .unused,
131156 .unused,
131157 .unused,
131158 },
131159 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131160 .each = .{ .once = &.{
131161 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131162 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
131163 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131164 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
131165 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
131166 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
131167 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
131168 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
131169 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
131170 } },
131171 }, .{
131172 .required_features = .{ .avx, null, null, null },
131173 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131174 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131175 .patterns = &.{
131176 .{ .src = .{ .to_sse, .none, .none } },
131177 },
131178 .extra_temps = .{
131179 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131180 .unused,
131181 .unused,
131182 .unused,
131183 .unused,
131184 .unused,
131185 .unused,
131186 .unused,
131187 .unused,
131188 .unused,
131189 .unused,
131190 },
131191 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131192 .each = .{ .once = &.{
131193 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
131194 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
131195 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131196 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131197 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
131198 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131199 } },
131200 }, .{
131201 .required_features = .{ .sse4_1, null, null, null },
131202 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131203 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131204 .patterns = &.{
131205 .{ .src = .{ .to_mut_sse, .none, .none } },
131206 },
131207 .extra_temps = .{
131208 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131209 .unused,
131210 .unused,
131211 .unused,
131212 .unused,
131213 .unused,
131214 .unused,
131215 .unused,
131216 .unused,
131217 .unused,
131218 .unused,
131219 },
131220 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131221 .each = .{ .once = &.{
131222 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
131223 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
131224 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131225 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
131226 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
131227 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
131228 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
131229 } },
131230 }, .{
131231 .required_features = .{ .sse2, null, null, null },
131232 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131233 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131234 .patterns = &.{
131235 .{ .src = .{ .to_mut_sse, .none, .none } },
131236 },
131237 .extra_temps = .{
131238 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131239 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131240 .unused,
131241 .unused,
131242 .unused,
131243 .unused,
131244 .unused,
131245 .unused,
131246 .unused,
131247 .unused,
131248 .unused,
131249 },
131250 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131251 .each = .{ .once = &.{
131252 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
131253 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
131254 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
131255 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
131256 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
131257 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
131258 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131259 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
131260 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
131261 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
131262 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
131263 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
131264 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
131265 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
131266 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
131267 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
131268 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
131269 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
131270 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
131271 } },
131272 }, .{
131273 .required_features = .{ .avx, null, null, null },
131274 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131275 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131276 .patterns = &.{
131277 .{ .src = .{ .to_sse, .none, .none } },
131278 },
131279 .extra_temps = .{
131280 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131281 .unused,
131282 .unused,
131283 .unused,
131284 .unused,
131285 .unused,
131286 .unused,
131287 .unused,
131288 .unused,
131289 .unused,
131290 .unused,
131291 },
131292 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131293 .each = .{ .once = &.{
131294 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
131295 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
131296 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131297 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131298 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
131299 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131300 } },
131301 }, .{
131302 .required_features = .{ .sse2, null, null, null },
131303 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131304 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
131305 .patterns = &.{
131306 .{ .src = .{ .to_mut_sse, .none, .none } },
131307 },
131308 .extra_temps = .{
131309 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131310 .unused,
131311 .unused,
131312 .unused,
131313 .unused,
131314 .unused,
131315 .unused,
131316 .unused,
131317 .unused,
131318 .unused,
131319 .unused,
131320 },
131321 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131322 .each = .{ .once = &.{
131323 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
131324 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
131325 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131326 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
131327 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
131328 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
131329 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
131330 } },
131331 }, .{
131332 .required_features = .{ .avx, null, null, null },
131333 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131334 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131335 .patterns = &.{
131336 .{ .src = .{ .to_sse, .none, .none } },
131337 },
131338 .extra_temps = .{
131339 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131340 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131341 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131342 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131343 .unused,
131344 .unused,
131345 .unused,
131346 .unused,
131347 .unused,
131348 .unused,
131349 .unused,
131350 },
131351 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131352 .each = .{ .once = &.{
131353 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131354 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
131355 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131356 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
131357 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131358 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131359 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131360 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131361 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
131362 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131363 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
131364 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131365 } },
131366 }, .{
131367 .required_features = .{ .sse4_1, null, null, null },
131368 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131369 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131370 .patterns = &.{
131371 .{ .src = .{ .to_mut_sse, .none, .none } },
131372 },
131373 .extra_temps = .{
131374 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131375 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131376 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131377 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131378 .unused,
131379 .unused,
131380 .unused,
131381 .unused,
131382 .unused,
131383 .unused,
131384 .unused,
131385 },
131386 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131387 .each = .{ .once = &.{
131388 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131389 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
131390 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131391 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
131392 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131393 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
131394 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131395 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
131396 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
131397 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
131398 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
131399 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
131400 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
131401 } },
131402 }, .{
131403 .required_features = .{ .sse2, null, null, null },
131404 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131405 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131406 .patterns = &.{
131407 .{ .src = .{ .to_mut_sse, .none, .none } },
131408 },
131409 .extra_temps = .{
131410 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131411 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131412 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131413 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131414 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131415 .unused,
131416 .unused,
131417 .unused,
131418 .unused,
131419 .unused,
131420 .unused,
131421 },
131422 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131423 .each = .{ .once = &.{
131424 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131425 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
131426 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131427 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
131428 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131429 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
131430 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
131431 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
131432 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
131433 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
131434 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131435 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
131436 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
131437 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
131438 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
131439 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
131440 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
131441 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
131442 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
131443 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
131444 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
131445 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
131446 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
131447 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
131448 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
131449 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
131450 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
131451 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
131452 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
131453 } },
131454 }, .{
131455 .required_features = .{ .avx, null, null, null },
131456 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131457 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131458 .patterns = &.{
131459 .{ .src = .{ .to_sse, .none, .none } },
131460 },
131461 .extra_temps = .{
131462 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131463 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131464 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131465 .unused,
131466 .unused,
131467 .unused,
131468 .unused,
131469 .unused,
131470 .unused,
131471 .unused,
131472 .unused,
131473 },
131474 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131475 .each = .{ .once = &.{
131476 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131477 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
131478 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131479 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131480 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131481 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131482 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
131483 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131484 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
131485 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131486 } },
131487 }, .{
131488 .required_features = .{ .sse2, null, null, null },
131489 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131490 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131491 .patterns = &.{
131492 .{ .src = .{ .to_mut_sse, .none, .none } },
131493 },
131494 .extra_temps = .{
131495 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131496 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131497 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131498 .unused,
131499 .unused,
131500 .unused,
131501 .unused,
131502 .unused,
131503 .unused,
131504 .unused,
131505 .unused,
131506 },
131507 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131508 .each = .{ .once = &.{
131509 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131510 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
131511 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131512 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
131513 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131514 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
131515 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
131516 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
131517 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
131518 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
131519 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
131520 } },
131521 }, .{
131522 .required_features = .{ .avx, null, null, null },
131523 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131524 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131525 .patterns = &.{
131526 .{ .src = .{ .to_sse, .none, .none } },
131527 },
131528 .extra_temps = .{
131529 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131530 .unused,
131531 .unused,
131532 .unused,
131533 .unused,
131534 .unused,
131535 .unused,
131536 .unused,
131537 .unused,
131538 .unused,
131539 .unused,
131540 },
131541 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131542 .each = .{ .once = &.{
131543 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
131544 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
131545 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131546 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131547 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131548 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131549 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
131550 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131551 } },
131552 }, .{
131553 .required_features = .{ .sse4_1, null, null, null },
131554 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131555 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131556 .patterns = &.{
131557 .{ .src = .{ .to_mut_sse, .none, .none } },
131558 },
131559 .extra_temps = .{
131560 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131561 .unused,
131562 .unused,
131563 .unused,
131564 .unused,
131565 .unused,
131566 .unused,
131567 .unused,
131568 .unused,
131569 .unused,
131570 .unused,
131571 },
131572 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131573 .each = .{ .once = &.{
131574 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
131575 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
131576 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131577 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
131578 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131579 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
131580 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
131581 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
131582 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
131583 } },
131584 }, .{
131585 .required_features = .{ .sse2, null, null, null },
131586 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131587 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131588 .patterns = &.{
131589 .{ .src = .{ .to_mut_sse, .none, .none } },
131590 },
131591 .extra_temps = .{
131592 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131593 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131594 .unused,
131595 .unused,
131596 .unused,
131597 .unused,
131598 .unused,
131599 .unused,
131600 .unused,
131601 .unused,
131602 .unused,
131603 },
131604 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131605 .each = .{ .once = &.{
131606 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
131607 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
131608 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
131609 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
131610 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
131611 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
131612 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131613 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
131614 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
131615 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
131616 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
131617 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
131618 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131619 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
131620 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
131621 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
131622 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
131623 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
131624 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
131625 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
131626 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
131627 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
131628 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
131629 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
131630 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
131631 } },
131632 }, .{
131633 .required_features = .{ .avx, null, null, null },
131634 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131635 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131636 .patterns = &.{
131637 .{ .src = .{ .to_sse, .none, .none } },
131638 },
131639 .extra_temps = .{
131640 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131641 .unused,
131642 .unused,
131643 .unused,
131644 .unused,
131645 .unused,
131646 .unused,
131647 .unused,
131648 .unused,
131649 .unused,
131650 .unused,
131651 },
131652 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131653 .each = .{ .once = &.{
131654 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
131655 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
131656 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131657 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131658 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131659 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131660 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
131661 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131662 } },
131663 }, .{
131664 .required_features = .{ .sse2, null, null, null },
131665 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131666 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
131667 .patterns = &.{
131668 .{ .src = .{ .to_mut_sse, .none, .none } },
131669 },
131670 .extra_temps = .{
131671 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131672 .unused,
131673 .unused,
131674 .unused,
131675 .unused,
131676 .unused,
131677 .unused,
131678 .unused,
131679 .unused,
131680 .unused,
131681 .unused,
131682 },
131683 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131684 .each = .{ .once = &.{
131685 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
131686 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
131687 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131688 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
131689 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131690 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
131691 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
131692 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
131693 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
131694 } },
131695 }, .{
131696 .required_features = .{ .avx2, null, null, null },
131697 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131698 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
131699 .patterns = &.{
131700 .{ .src = .{ .to_sse, .none, .none } },
131701 },
131702 .extra_temps = .{
131703 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131704 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131705 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131706 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131707 .unused,
131708 .unused,
131709 .unused,
131710 .unused,
131711 .unused,
131712 .unused,
131713 .unused,
131714 },
131715 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131716 .each = .{ .once = &.{
131717 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131718 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
131719 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131720 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131721 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131722 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131723 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131724 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131725 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131726 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131727 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
131728 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131729 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
131730 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131731 } },
131732 }, .{
131733 .required_features = .{ .avx, null, null, null },
131734 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131735 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
131736 .patterns = &.{
131737 .{ .src = .{ .to_sse, .none, .none } },
131738 },
131739 .extra_temps = .{
131740 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131741 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131742 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131743 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131744 .unused,
131745 .unused,
131746 .unused,
131747 .unused,
131748 .unused,
131749 .unused,
131750 .unused,
131751 },
131752 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131753 .each = .{ .once = &.{
131754 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131755 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
131756 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131757 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131758 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131759 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131760 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131761 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131762 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
131763 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131764 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
131765 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131766 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
131767 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
131768 } },
131769 }, .{
131770 .required_features = .{ .avx2, null, null, null },
131771 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131772 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
131773 .patterns = &.{
131774 .{ .src = .{ .to_sse, .none, .none } },
131775 },
131776 .extra_temps = .{
131777 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131778 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131779 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131780 .unused,
131781 .unused,
131782 .unused,
131783 .unused,
131784 .unused,
131785 .unused,
131786 .unused,
131787 .unused,
131788 },
131789 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131790 .each = .{ .once = &.{
131791 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131792 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
131793 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
131794 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131795 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131796 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131797 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131798 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131799 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
131800 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131801 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
131802 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131803 } },
131804 }, .{
131805 .required_features = .{ .avx, null, null, null },
131806 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131807 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
131808 .patterns = &.{
131809 .{ .src = .{ .to_sse, .none, .none } },
131810 },
131811 .extra_temps = .{
131812 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131813 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131814 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131815 .unused,
131816 .unused,
131817 .unused,
131818 .unused,
131819 .unused,
131820 .unused,
131821 .unused,
131822 .unused,
131823 },
131824 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131825 .each = .{ .once = &.{
131826 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131827 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
131828 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
131829 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131830 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131831 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131832 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
131833 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131834 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
131835 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131836 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
131837 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
131838 } },
131839 }, .{
131840 .required_features = .{ .avx2, null, null, null },
131841 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131842 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
131843 .patterns = &.{
131844 .{ .src = .{ .to_sse, .none, .none } },
131845 },
131846 .extra_temps = .{
131847 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131848 .unused,
131849 .unused,
131850 .unused,
131851 .unused,
131852 .unused,
131853 .unused,
131854 .unused,
131855 .unused,
131856 .unused,
131857 .unused,
131858 },
131859 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131860 .each = .{ .once = &.{
131861 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
131862 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
131863 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131864 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131865 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131866 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131867 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131868 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131869 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
131870 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131871 } },
131872 }, .{
131873 .required_features = .{ .avx, null, null, null },
131874 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131875 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
131876 .patterns = &.{
131877 .{ .src = .{ .to_sse, .none, .none } },
131878 },
131879 .extra_temps = .{
131880 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
131881 .unused,
131882 .unused,
131883 .unused,
131884 .unused,
131885 .unused,
131886 .unused,
131887 .unused,
131888 .unused,
131889 .unused,
131890 .unused,
131891 },
131892 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131893 .each = .{ .once = &.{
131894 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
131895 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
131896 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131897 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131898 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131899 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131900 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131901 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131902 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
131903 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
131904 } },
131905 }, .{
131906 .required_features = .{ .avx2, null, null, null },
131907 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131908 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
131909 .patterns = &.{
131910 .{ .src = .{ .to_sse, .none, .none } },
131911 },
131912 .extra_temps = .{
131913 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131914 .unused,
131915 .unused,
131916 .unused,
131917 .unused,
131918 .unused,
131919 .unused,
131920 .unused,
131921 .unused,
131922 .unused,
131923 .unused,
131924 },
131925 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131926 .each = .{ .once = &.{
131927 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
131928 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
131929 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131930 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131931 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131932 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131933 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131934 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131935 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
131936 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131937 } },
131938 }, .{
131939 .required_features = .{ .avx, null, null, null },
131940 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
131941 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
131942 .patterns = &.{
131943 .{ .src = .{ .to_sse, .none, .none } },
131944 },
131945 .extra_temps = .{
131946 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
131947 .unused,
131948 .unused,
131949 .unused,
131950 .unused,
131951 .unused,
131952 .unused,
131953 .unused,
131954 .unused,
131955 .unused,
131956 .unused,
131957 },
131958 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131959 .each = .{ .once = &.{
131960 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
131961 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
131962 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131963 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131964 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
131965 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131966 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
131967 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131968 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
131969 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
131970 } },
131971 }, .{
131972 .required_features = .{ .avx512f, null, null, null },
131973 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
131974 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
131975 .patterns = &.{
131976 .{ .src = .{ .to_mem, .none, .none } },
131977 },
131978 .extra_temps = .{
131979 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131980 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131981 .{ .type = .vector_64_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
131982 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
131983 .unused,
131984 .unused,
131985 .unused,
131986 .unused,
131987 .unused,
131988 .unused,
131989 .unused,
131990 },
131991 .dst_temps = .{ .{ .rc = .sse }, .unused },
131992 .each = .{ .once = &.{
131993 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131994 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
131995 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
131996 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131997 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
131998 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
131999 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132000 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
132001 .{ ._, .vp_b, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
132002 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132003 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132004 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132005 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132006 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132007 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132008 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
132009 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132010 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
132011 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132012 } },
132013 }, .{
132014 .required_features = .{ .avx512f, null, null, null },
132015 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132016 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
132017 .patterns = &.{
132018 .{ .src = .{ .to_mem, .none, .none } },
132019 },
132020 .extra_temps = .{
132021 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
132022 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132023 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
132024 .unused,
132025 .unused,
132026 .unused,
132027 .unused,
132028 .unused,
132029 .unused,
132030 .unused,
132031 .unused,
132032 },
132033 .dst_temps = .{ .{ .rc = .sse }, .unused },
132034 .each = .{ .once = &.{
132035 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132036 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
132037 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
132038 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
132039 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
132040 .{ ._, .vp_b, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
132041 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
132042 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132043 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132044 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132045 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132046 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132047 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
132048 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132049 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
132050 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132051 } },
132052 }, .{
132053 .required_features = .{ .avx512f, null, null, null },
132054 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132055 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
132056 .patterns = &.{
132057 .{ .src = .{ .to_mem, .none, .none } },
132058 },
132059 .extra_temps = .{
132060 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132061 .unused,
132062 .unused,
132063 .unused,
132064 .unused,
132065 .unused,
132066 .unused,
132067 .unused,
132068 .unused,
132069 .unused,
132070 .unused,
132071 },
132072 .dst_temps = .{ .{ .rc = .sse }, .unused },
132073 .each = .{ .once = &.{
132074 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
132075 .{ ._, .vp_b, .maxs, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
132076 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
132077 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
132078 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
132079 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
132080 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
132081 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
132082 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
132083 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
132084 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
132085 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
132086 } },
132087 }, .{
132088 .required_features = .{ .avx512f, null, null, null },
132089 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132090 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
132091 .patterns = &.{
132092 .{ .src = .{ .to_mem, .none, .none } },
132093 },
132094 .extra_temps = .{
132095 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132096 .unused,
132097 .unused,
132098 .unused,
132099 .unused,
132100 .unused,
132101 .unused,
132102 .unused,
132103 .unused,
132104 .unused,
132105 .unused,
132106 },
132107 .dst_temps = .{ .{ .rc = .sse }, .unused },
132108 .each = .{ .once = &.{
132109 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
132110 .{ ._, .vp_b, .maxu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
132111 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
132112 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
132113 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
132114 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
132115 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
132116 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
132117 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
132118 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
132119 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
132120 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
132121 } },
132122 }, .{
132123 .required_features = .{ .avx2, null, null, null },
132124 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132125 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
132126 .patterns = &.{
132127 .{ .src = .{ .to_mem, .none, .none } },
132128 },
132129 .extra_temps = .{
132130 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132131 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132132 .unused,
132133 .unused,
132134 .unused,
132135 .unused,
132136 .unused,
132137 .unused,
132138 .unused,
132139 .unused,
132140 .unused,
132141 },
132142 .dst_temps = .{ .{ .rc = .sse }, .unused },
132143 .clobbers = .{ .eflags = true },
132144 .each = .{ .once = &.{
132145 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
132146 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
132147 .{ .@"0:", .vp_b, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
132148 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
132149 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132150 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
132151 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132152 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132153 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132154 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132155 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132156 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
132157 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132158 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
132159 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132160 } },
132161 }, .{
132162 .required_features = .{ .avx, null, null, null },
132163 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132164 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
132165 .patterns = &.{
132166 .{ .src = .{ .to_mem, .none, .none } },
132167 },
132168 .extra_temps = .{
132169 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132170 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132171 .unused,
132172 .unused,
132173 .unused,
132174 .unused,
132175 .unused,
132176 .unused,
132177 .unused,
132178 .unused,
132179 .unused,
132180 },
132181 .dst_temps = .{ .{ .rc = .sse }, .unused },
132182 .clobbers = .{ .eflags = true },
132183 .each = .{ .once = &.{
132184 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132185 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132186 .{ .@"0:", .vp_b, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
132187 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132188 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132189 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132190 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132191 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132192 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132193 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
132194 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132195 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
132196 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
132197 } },
132198 }, .{
132199 .required_features = .{ .sse4_1, null, null, null },
132200 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132201 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
132202 .patterns = &.{
132203 .{ .src = .{ .to_mem, .none, .none } },
132204 },
132205 .extra_temps = .{
132206 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132207 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132208 .unused,
132209 .unused,
132210 .unused,
132211 .unused,
132212 .unused,
132213 .unused,
132214 .unused,
132215 .unused,
132216 .unused,
132217 },
132218 .dst_temps = .{ .{ .rc = .sse }, .unused },
132219 .clobbers = .{ .eflags = true },
132220 .each = .{ .once = &.{
132221 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132222 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132223 .{ .@"0:", .p_b, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
132224 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132225 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132226 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132227 .{ ._, .p_b, .maxs, .dst0x, .tmp1x, ._, ._ },
132228 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132229 .{ ._, .p_b, .maxs, .dst0x, .tmp1x, ._, ._ },
132230 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
132231 .{ ._, .p_b, .maxs, .dst0x, .tmp1x, ._, ._ },
132232 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
132233 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
132234 .{ ._, .p_b, .maxs, .dst0x, .tmp1x, ._, ._ },
132235 } },
132236 }, .{
132237 .required_features = .{ .sse2, null, null, null },
132238 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132239 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
132240 .patterns = &.{
132241 .{ .src = .{ .to_mem, .none, .none } },
132242 },
132243 .extra_temps = .{
132244 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132245 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132246 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132247 .unused,
132248 .unused,
132249 .unused,
132250 .unused,
132251 .unused,
132252 .unused,
132253 .unused,
132254 .unused,
132255 },
132256 .dst_temps = .{ .{ .rc = .sse }, .unused },
132257 .clobbers = .{ .eflags = true },
132258 .each = .{ .once = &.{
132259 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132260 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132261 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132262 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
132263 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
132264 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
132265 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
132266 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
132267 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132268 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132269 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132270 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
132271 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
132272 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
132273 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
132274 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
132275 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132276 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
132277 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
132278 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
132279 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
132280 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
132281 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
132282 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
132283 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
132284 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
132285 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
132286 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
132287 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
132288 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
132289 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
132290 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
132291 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
132292 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
132293 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
132294 } },
132295 }, .{
132296 .required_features = .{ .avx2, null, null, null },
132297 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132298 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
132299 .patterns = &.{
132300 .{ .src = .{ .to_mem, .none, .none } },
132301 },
132302 .extra_temps = .{
132303 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132304 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132305 .unused,
132306 .unused,
132307 .unused,
132308 .unused,
132309 .unused,
132310 .unused,
132311 .unused,
132312 .unused,
132313 .unused,
132314 },
132315 .dst_temps = .{ .{ .rc = .sse }, .unused },
132316 .clobbers = .{ .eflags = true },
132317 .each = .{ .once = &.{
132318 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
132319 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
132320 .{ .@"0:", .vp_b, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
132321 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
132322 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132323 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
132324 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132325 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132326 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132327 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132328 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132329 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
132330 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132331 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
132332 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132333 } },
132334 }, .{
132335 .required_features = .{ .avx, null, null, null },
132336 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132337 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
132338 .patterns = &.{
132339 .{ .src = .{ .to_mem, .none, .none } },
132340 },
132341 .extra_temps = .{
132342 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132343 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132344 .unused,
132345 .unused,
132346 .unused,
132347 .unused,
132348 .unused,
132349 .unused,
132350 .unused,
132351 .unused,
132352 .unused,
132353 },
132354 .dst_temps = .{ .{ .rc = .sse }, .unused },
132355 .clobbers = .{ .eflags = true },
132356 .each = .{ .once = &.{
132357 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132358 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132359 .{ .@"0:", .vp_b, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
132360 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132361 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132362 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132363 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132364 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132365 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132366 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
132367 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132368 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
132369 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
132370 } },
132371 }, .{
132372 .required_features = .{ .sse2, null, null, null },
132373 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132374 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
132375 .patterns = &.{
132376 .{ .src = .{ .to_mem, .none, .none } },
132377 },
132378 .extra_temps = .{
132379 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132380 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132381 .unused,
132382 .unused,
132383 .unused,
132384 .unused,
132385 .unused,
132386 .unused,
132387 .unused,
132388 .unused,
132389 .unused,
132390 },
132391 .dst_temps = .{ .{ .rc = .sse }, .unused },
132392 .clobbers = .{ .eflags = true },
132393 .each = .{ .once = &.{
132394 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132395 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132396 .{ .@"0:", .p_b, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
132397 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132398 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132399 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132400 .{ ._, .p_b, .maxu, .dst0x, .tmp1x, ._, ._ },
132401 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
132402 .{ ._, .p_b, .maxu, .dst0x, .tmp1x, ._, ._ },
132403 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
132404 .{ ._, .p_b, .maxu, .dst0x, .tmp1x, ._, ._ },
132405 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
132406 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
132407 .{ ._, .p_b, .maxu, .dst0x, .tmp1x, ._, ._ },
132408 } },
132409 }, .{
132410 .required_features = .{ .avx512f, null, null, null },
132411 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132412 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
132413 .patterns = &.{
132414 .{ .src = .{ .to_mem, .none, .none } },
132415 },
132416 .extra_temps = .{
132417 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132418 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132419 .{ .type = .vector_64_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
132420 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
132421 .unused,
132422 .unused,
132423 .unused,
132424 .unused,
132425 .unused,
132426 .unused,
132427 .unused,
132428 },
132429 .dst_temps = .{ .{ .rc = .sse }, .unused },
132430 .clobbers = .{ .eflags = true },
132431 .each = .{ .once = &.{
132432 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132433 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
132434 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
132435 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132436 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
132437 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
132438 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132439 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
132440 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
132441 .{ .@"0:", .vp_b, .maxs, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
132442 .{ ._, .vp_b, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
132443 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
132444 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132445 .{ ._, .vp_b, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
132446 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132447 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132448 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132449 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132450 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132451 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132452 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
132453 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132454 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
132455 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132456 } },
132457 }, .{
132458 .required_features = .{ .avx2, null, null, null },
132459 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132460 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
132461 .patterns = &.{
132462 .{ .src = .{ .to_mem, .none, .none } },
132463 },
132464 .extra_temps = .{
132465 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132466 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132467 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
132468 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132469 .unused,
132470 .unused,
132471 .unused,
132472 .unused,
132473 .unused,
132474 .unused,
132475 .unused,
132476 },
132477 .dst_temps = .{ .{ .rc = .sse }, .unused },
132478 .clobbers = .{ .eflags = true },
132479 .each = .{ .once = &.{
132480 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132481 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
132482 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132483 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
132484 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132485 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
132486 .{ .@"0:", .vp_b, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
132487 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
132488 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132489 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132490 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132491 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132492 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132493 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132494 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132495 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
132496 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132497 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
132498 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132499 } },
132500 }, .{
132501 .required_features = .{ .avx, null, null, null },
132502 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132503 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
132504 .patterns = &.{
132505 .{ .src = .{ .to_mem, .none, .none } },
132506 },
132507 .extra_temps = .{
132508 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132509 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132510 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
132511 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132512 .unused,
132513 .unused,
132514 .unused,
132515 .unused,
132516 .unused,
132517 .unused,
132518 .unused,
132519 },
132520 .dst_temps = .{ .{ .rc = .sse }, .unused },
132521 .clobbers = .{ .eflags = true },
132522 .each = .{ .once = &.{
132523 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132524 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
132525 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132526 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
132527 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132528 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
132529 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132530 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132531 .{ .@"0:", .vp_b, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
132532 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132533 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132534 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132535 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132536 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132537 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132538 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
132539 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132540 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
132541 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
132542 } },
132543 }, .{
132544 .required_features = .{ .sse4_1, null, null, null },
132545 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132546 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
132547 .patterns = &.{
132548 .{ .src = .{ .to_mem, .none, .none } },
132549 },
132550 .extra_temps = .{
132551 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132552 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132553 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
132554 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132555 .unused,
132556 .unused,
132557 .unused,
132558 .unused,
132559 .unused,
132560 .unused,
132561 .unused,
132562 },
132563 .dst_temps = .{ .{ .rc = .sse }, .unused },
132564 .clobbers = .{ .eflags = true },
132565 .each = .{ .once = &.{
132566 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132567 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
132568 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132569 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
132570 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
132571 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
132572 .{ .@"0:", .p_b, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
132573 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132574 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132575 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132576 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
132577 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132578 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
132579 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
132580 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
132581 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
132582 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
132583 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
132584 } },
132585 }, .{
132586 .required_features = .{ .sse2, null, null, null },
132587 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132588 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
132589 .patterns = &.{
132590 .{ .src = .{ .to_mem, .none, .none } },
132591 },
132592 .extra_temps = .{
132593 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132594 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132595 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
132596 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132597 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132598 .unused,
132599 .unused,
132600 .unused,
132601 .unused,
132602 .unused,
132603 .unused,
132604 },
132605 .dst_temps = .{ .{ .rc = .sse }, .unused },
132606 .clobbers = .{ .eflags = true },
132607 .each = .{ .once = &.{
132608 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132609 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
132610 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132611 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
132612 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
132613 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
132614 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
132615 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
132616 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
132617 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
132618 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
132619 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
132620 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132621 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132622 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132623 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
132624 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
132625 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
132626 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
132627 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
132628 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
132629 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
132630 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
132631 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
132632 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
132633 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
132634 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
132635 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
132636 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
132637 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
132638 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
132639 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
132640 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
132641 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
132642 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
132643 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
132644 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
132645 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
132646 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
132647 } },
132648 }, .{
132649 .required_features = .{ .avx512f, null, null, null },
132650 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132651 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
132652 .patterns = &.{
132653 .{ .src = .{ .to_mem, .none, .none } },
132654 },
132655 .extra_temps = .{
132656 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132657 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132658 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
132659 .unused,
132660 .unused,
132661 .unused,
132662 .unused,
132663 .unused,
132664 .unused,
132665 .unused,
132666 .unused,
132667 },
132668 .dst_temps = .{ .{ .rc = .sse }, .unused },
132669 .clobbers = .{ .eflags = true },
132670 .each = .{ .once = &.{
132671 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132672 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
132673 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
132674 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
132675 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
132676 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
132677 .{ .@"0:", .vp_b, .maxu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
132678 .{ ._, .vp_b, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
132679 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
132680 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132681 .{ ._, .vp_b, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
132682 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
132683 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132684 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132685 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132686 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132687 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132688 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
132689 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132690 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
132691 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132692 } },
132693 }, .{
132694 .required_features = .{ .avx2, null, null, null },
132695 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132696 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
132697 .patterns = &.{
132698 .{ .src = .{ .to_mem, .none, .none } },
132699 },
132700 .extra_temps = .{
132701 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132702 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132703 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132704 .unused,
132705 .unused,
132706 .unused,
132707 .unused,
132708 .unused,
132709 .unused,
132710 .unused,
132711 .unused,
132712 },
132713 .dst_temps = .{ .{ .rc = .sse }, .unused },
132714 .clobbers = .{ .eflags = true },
132715 .each = .{ .once = &.{
132716 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132717 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
132718 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
132719 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
132720 .{ .@"0:", .vp_b, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
132721 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
132722 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132723 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
132724 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132725 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132726 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132727 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132728 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132729 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
132730 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132731 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
132732 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132733 } },
132734 }, .{
132735 .required_features = .{ .avx, null, null, null },
132736 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132737 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
132738 .patterns = &.{
132739 .{ .src = .{ .to_mem, .none, .none } },
132740 },
132741 .extra_temps = .{
132742 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132743 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132744 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132745 .unused,
132746 .unused,
132747 .unused,
132748 .unused,
132749 .unused,
132750 .unused,
132751 .unused,
132752 .unused,
132753 },
132754 .dst_temps = .{ .{ .rc = .sse }, .unused },
132755 .clobbers = .{ .eflags = true },
132756 .each = .{ .once = &.{
132757 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132758 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
132759 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
132760 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
132761 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
132762 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132763 .{ .@"0:", .vp_b, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
132764 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132765 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132766 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132767 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132768 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132769 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132770 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
132771 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132772 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
132773 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
132774 } },
132775 }, .{
132776 .required_features = .{ .sse2, null, null, null },
132777 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132778 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
132779 .patterns = &.{
132780 .{ .src = .{ .to_mem, .none, .none } },
132781 },
132782 .extra_temps = .{
132783 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132784 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132785 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132786 .unused,
132787 .unused,
132788 .unused,
132789 .unused,
132790 .unused,
132791 .unused,
132792 .unused,
132793 .unused,
132794 },
132795 .dst_temps = .{ .{ .rc = .sse }, .unused },
132796 .clobbers = .{ .eflags = true },
132797 .each = .{ .once = &.{
132798 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132799 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
132800 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
132801 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
132802 .{ .@"0:", .p_b, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
132803 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132804 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132805 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132806 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
132807 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
132808 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
132809 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
132810 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
132811 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
132812 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
132813 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
132814 } },
132815 }, .{
132816 .required_features = .{ .cmov, .slow_incdec, null, null },
132817 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132818 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
132819 .patterns = &.{
132820 .{ .src = .{ .to_mem, .none, .none } },
132821 },
132822 .extra_temps = .{
132823 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132824 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
132825 .unused,
132826 .unused,
132827 .unused,
132828 .unused,
132829 .unused,
132830 .unused,
132831 .unused,
132832 .unused,
132833 .unused,
132834 },
132835 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
132836 .clobbers = .{ .eflags = true },
132837 .each = .{ .once = &.{
132838 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
132839 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
132840 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
132841 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
132842 .{ ._, ._l, .cmov, .dst0d, .tmp1d, ._, ._ },
132843 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
132844 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132845 } },
132846 }, .{
132847 .required_features = .{ .cmov, null, null, null },
132848 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132849 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
132850 .patterns = &.{
132851 .{ .src = .{ .to_mem, .none, .none } },
132852 },
132853 .extra_temps = .{
132854 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132855 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
132856 .unused,
132857 .unused,
132858 .unused,
132859 .unused,
132860 .unused,
132861 .unused,
132862 .unused,
132863 .unused,
132864 .unused,
132865 },
132866 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
132867 .clobbers = .{ .eflags = true },
132868 .each = .{ .once = &.{
132869 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
132870 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
132871 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
132872 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
132873 .{ ._, ._l, .cmov, .dst0d, .tmp1d, ._, ._ },
132874 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
132875 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
132876 } },
132877 }, .{
132878 .required_features = .{ .slow_incdec, null, null, null },
132879 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132880 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
132881 .patterns = &.{
132882 .{ .src = .{ .to_mem, .none, .none } },
132883 },
132884 .extra_temps = .{
132885 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132886 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
132887 .unused,
132888 .unused,
132889 .unused,
132890 .unused,
132891 .unused,
132892 .unused,
132893 .unused,
132894 .unused,
132895 .unused,
132896 },
132897 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
132898 .clobbers = .{ .eflags = true },
132899 .each = .{ .once = &.{
132900 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
132901 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
132902 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
132903 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
132904 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
132905 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
132906 .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
132907 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132908 } },
132909 }, .{
132910 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132911 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
132912 .patterns = &.{
132913 .{ .src = .{ .to_mem, .none, .none } },
132914 },
132915 .extra_temps = .{
132916 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132917 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
132918 .unused,
132919 .unused,
132920 .unused,
132921 .unused,
132922 .unused,
132923 .unused,
132924 .unused,
132925 .unused,
132926 .unused,
132927 },
132928 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
132929 .clobbers = .{ .eflags = true },
132930 .each = .{ .once = &.{
132931 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
132932 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
132933 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
132934 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
132935 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
132936 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
132937 .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
132938 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
132939 } },
132940 }, .{
132941 .required_features = .{ .cmov, .slow_incdec, null, null },
132942 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132943 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
132944 .patterns = &.{
132945 .{ .src = .{ .to_mem, .none, .none } },
132946 },
132947 .extra_temps = .{
132948 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132949 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
132950 .unused,
132951 .unused,
132952 .unused,
132953 .unused,
132954 .unused,
132955 .unused,
132956 .unused,
132957 .unused,
132958 .unused,
132959 },
132960 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
132961 .clobbers = .{ .eflags = true },
132962 .each = .{ .once = &.{
132963 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
132964 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
132965 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
132966 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
132967 .{ ._, ._b, .cmov, .dst0d, .tmp1d, ._, ._ },
132968 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
132969 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132970 } },
132971 }, .{
132972 .required_features = .{ .cmov, null, null, null },
132973 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132974 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
132975 .patterns = &.{
132976 .{ .src = .{ .to_mem, .none, .none } },
132977 },
132978 .extra_temps = .{
132979 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132980 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
132981 .unused,
132982 .unused,
132983 .unused,
132984 .unused,
132985 .unused,
132986 .unused,
132987 .unused,
132988 .unused,
132989 .unused,
132990 },
132991 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
132992 .clobbers = .{ .eflags = true },
132993 .each = .{ .once = &.{
132994 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
132995 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
132996 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
132997 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
132998 .{ ._, ._b, .cmov, .dst0d, .tmp1d, ._, ._ },
132999 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
133000 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
133001 } },
133002 }, .{
133003 .required_features = .{ .slow_incdec, null, null, null },
133004 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133005 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
133006 .patterns = &.{
133007 .{ .src = .{ .to_mem, .none, .none } },
133008 },
133009 .extra_temps = .{
133010 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
133011 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
133012 .unused,
133013 .unused,
133014 .unused,
133015 .unused,
133016 .unused,
133017 .unused,
133018 .unused,
133019 .unused,
133020 .unused,
133021 },
133022 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
133023 .clobbers = .{ .eflags = true },
133024 .each = .{ .once = &.{
133025 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
133026 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
133027 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
133028 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
133029 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
133030 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
133031 .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
133032 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
133033 } },
133034 }, .{
133035 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133036 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
133037 .patterns = &.{
133038 .{ .src = .{ .to_mem, .none, .none } },
133039 },
133040 .extra_temps = .{
133041 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
133042 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
133043 .unused,
133044 .unused,
133045 .unused,
133046 .unused,
133047 .unused,
133048 .unused,
133049 .unused,
133050 .unused,
133051 .unused,
133052 },
133053 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
133054 .clobbers = .{ .eflags = true },
133055 .each = .{ .once = &.{
133056 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
133057 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
133058 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
133059 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
133060 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
133061 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
133062 .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
133063 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
133064 } },
133065 }, .{
133066 .required_features = .{ .avx, null, null, null },
133067 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133068 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any },
133069 .patterns = &.{
133070 .{ .src = .{ .to_sse, .none, .none } },
133071 },
133072 .extra_temps = .{
133073 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133074 .unused,
133075 .unused,
133076 .unused,
133077 .unused,
133078 .unused,
133079 .unused,
133080 .unused,
133081 .unused,
133082 .unused,
133083 .unused,
133084 },
133085 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133086 .each = .{ .once = &.{
133087 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133088 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .tmp0x, ._ },
133089 } },
133090 }, .{
133091 .required_features = .{ .sse2, null, null, null },
133092 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133093 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any },
133094 .patterns = &.{
133095 .{ .src = .{ .to_mut_sse, .none, .none } },
133096 },
133097 .extra_temps = .{
133098 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133099 .unused,
133100 .unused,
133101 .unused,
133102 .unused,
133103 .unused,
133104 .unused,
133105 .unused,
133106 .unused,
133107 .unused,
133108 .unused,
133109 },
133110 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133111 .each = .{ .once = &.{
133112 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133113 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
133114 } },
133115 }, .{
133116 .required_features = .{ .avx, null, null, null },
133117 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133118 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
133119 .patterns = &.{
133120 .{ .src = .{ .to_sse, .none, .none } },
133121 },
133122 .extra_temps = .{
133123 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133124 .unused,
133125 .unused,
133126 .unused,
133127 .unused,
133128 .unused,
133129 .unused,
133130 .unused,
133131 .unused,
133132 .unused,
133133 .unused,
133134 },
133135 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133136 .each = .{ .once = &.{
133137 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133138 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .tmp0x, ._ },
133139 } },
133140 }, .{
133141 .required_features = .{ .sse4_1, null, null, null },
133142 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133143 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
133144 .patterns = &.{
133145 .{ .src = .{ .to_mut_sse, .none, .none } },
133146 },
133147 .extra_temps = .{
133148 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133149 .unused,
133150 .unused,
133151 .unused,
133152 .unused,
133153 .unused,
133154 .unused,
133155 .unused,
133156 .unused,
133157 .unused,
133158 .unused,
133159 },
133160 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133161 .each = .{ .once = &.{
133162 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133163 .{ ._, .p_w, .maxu, .dst0x, .tmp0x, ._, ._ },
133164 } },
133165 }, .{
133166 .required_features = .{ .sse2, null, null, null },
133167 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133168 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
133169 .patterns = &.{
133170 .{ .src = .{ .to_mut_sse, .none, .none } },
133171 },
133172 .extra_temps = .{
133173 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133174 .unused,
133175 .unused,
133176 .unused,
133177 .unused,
133178 .unused,
133179 .unused,
133180 .unused,
133181 .unused,
133182 .unused,
133183 .unused,
133184 },
133185 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133186 .each = .{ .once = &.{
133187 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133188 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
133189 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
133190 } },
133191 }, .{
133192 .required_features = .{ .avx, null, null, null },
133193 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133194 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
133195 .patterns = &.{
133196 .{ .src = .{ .to_sse, .none, .none } },
133197 },
133198 .extra_temps = .{
133199 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133200 .unused,
133201 .unused,
133202 .unused,
133203 .unused,
133204 .unused,
133205 .unused,
133206 .unused,
133207 .unused,
133208 .unused,
133209 .unused,
133210 },
133211 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133212 .each = .{ .once = &.{
133213 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133214 .{ ._, .vp_w, .maxs, .tmp0x, .src0x, .tmp0x, ._ },
133215 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
133216 .{ ._, .vp_w, .maxs, .dst0x, .tmp0x, .dst0x, ._ },
133217 } },
133218 }, .{
133219 .required_features = .{ .sse2, null, null, null },
133220 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133221 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
133222 .patterns = &.{
133223 .{ .src = .{ .to_sse, .none, .none } },
133224 },
133225 .extra_temps = .{
133226 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133227 .unused,
133228 .unused,
133229 .unused,
133230 .unused,
133231 .unused,
133232 .unused,
133233 .unused,
133234 .unused,
133235 .unused,
133236 .unused,
133237 },
133238 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133239 .each = .{ .once = &.{
133240 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133241 .{ ._, .p_w, .maxs, .tmp0x, .src0x, ._, ._ },
133242 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
133243 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
133244 } },
133245 }, .{
133246 .required_features = .{ .avx, null, null, null },
133247 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133248 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
133249 .patterns = &.{
133250 .{ .src = .{ .to_sse, .none, .none } },
133251 },
133252 .extra_temps = .{
133253 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133254 .unused,
133255 .unused,
133256 .unused,
133257 .unused,
133258 .unused,
133259 .unused,
133260 .unused,
133261 .unused,
133262 .unused,
133263 .unused,
133264 },
133265 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133266 .each = .{ .once = &.{
133267 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133268 .{ ._, .vp_w, .maxu, .tmp0x, .src0x, .tmp0x, ._ },
133269 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
133270 .{ ._, .vp_w, .maxu, .dst0x, .tmp0x, .dst0x, ._ },
133271 } },
133272 }, .{
133273 .required_features = .{ .sse4_1, null, null, null },
133274 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133275 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
133276 .patterns = &.{
133277 .{ .src = .{ .to_mut_sse, .none, .none } },
133278 },
133279 .extra_temps = .{
133280 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133281 .unused,
133282 .unused,
133283 .unused,
133284 .unused,
133285 .unused,
133286 .unused,
133287 .unused,
133288 .unused,
133289 .unused,
133290 .unused,
133291 },
133292 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133293 .each = .{ .once = &.{
133294 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133295 .{ ._, .p_w, .maxu, .tmp0x, .src0x, ._, ._ },
133296 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
133297 .{ ._, .p_w, .maxu, .dst0x, .tmp0x, ._, ._ },
133298 } },
133299 }, .{
133300 .required_features = .{ .sse2, null, null, null },
133301 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133302 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
133303 .patterns = &.{
133304 .{ .src = .{ .to_sse, .none, .none } },
133305 },
133306 .extra_temps = .{
133307 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133308 .unused,
133309 .unused,
133310 .unused,
133311 .unused,
133312 .unused,
133313 .unused,
133314 .unused,
133315 .unused,
133316 .unused,
133317 .unused,
133318 },
133319 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133320 .each = .{ .once = &.{
133321 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133322 .{ ._, .p_w, .subus, .tmp0x, .src0x, ._, ._ },
133323 .{ ._, .p_w, .add, .tmp0x, .src0x, ._, ._ },
133324 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
133325 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
133326 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
133327 } },
133328 }, .{
133329 .required_features = .{ .avx, null, null, null },
133330 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133331 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
133332 .patterns = &.{
133333 .{ .src = .{ .to_sse, .none, .none } },
133334 },
133335 .extra_temps = .{
133336 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133337 .unused,
133338 .unused,
133339 .unused,
133340 .unused,
133341 .unused,
133342 .unused,
133343 .unused,
133344 .unused,
133345 .unused,
133346 .unused,
133347 },
133348 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133349 .each = .{ .once = &.{
133350 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133351 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .tmp0x, ._ },
133352 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133353 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
133354 } },
133355 }, .{
133356 .required_features = .{ .sse2, null, null, null },
133357 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133358 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
133359 .patterns = &.{
133360 .{ .src = .{ .to_mut_sse, .none, .none } },
133361 },
133362 .extra_temps = .{
133363 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133364 .unused,
133365 .unused,
133366 .unused,
133367 .unused,
133368 .unused,
133369 .unused,
133370 .unused,
133371 .unused,
133372 .unused,
133373 .unused,
133374 },
133375 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133376 .each = .{ .once = &.{
133377 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133378 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
133379 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133380 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
133381 } },
133382 }, .{
133383 .required_features = .{ .avx, null, null, null },
133384 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133385 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
133386 .patterns = &.{
133387 .{ .src = .{ .to_sse, .none, .none } },
133388 },
133389 .extra_temps = .{
133390 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133391 .unused,
133392 .unused,
133393 .unused,
133394 .unused,
133395 .unused,
133396 .unused,
133397 .unused,
133398 .unused,
133399 .unused,
133400 .unused,
133401 },
133402 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133403 .each = .{ .once = &.{
133404 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133405 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .tmp0x, ._ },
133406 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133407 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
133408 } },
133409 }, .{
133410 .required_features = .{ .sse4_1, null, null, null },
133411 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133412 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
133413 .patterns = &.{
133414 .{ .src = .{ .to_mut_sse, .none, .none } },
133415 },
133416 .extra_temps = .{
133417 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133418 .unused,
133419 .unused,
133420 .unused,
133421 .unused,
133422 .unused,
133423 .unused,
133424 .unused,
133425 .unused,
133426 .unused,
133427 .unused,
133428 },
133429 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133430 .each = .{ .once = &.{
133431 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133432 .{ ._, .p_w, .maxu, .dst0x, .tmp0x, ._, ._ },
133433 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133434 .{ ._, .p_w, .maxu, .dst0x, .tmp0x, ._, ._ },
133435 } },
133436 }, .{
133437 .required_features = .{ .sse2, null, null, null },
133438 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133439 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
133440 .patterns = &.{
133441 .{ .src = .{ .to_mut_sse, .none, .none } },
133442 },
133443 .extra_temps = .{
133444 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133445 .unused,
133446 .unused,
133447 .unused,
133448 .unused,
133449 .unused,
133450 .unused,
133451 .unused,
133452 .unused,
133453 .unused,
133454 .unused,
133455 },
133456 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133457 .each = .{ .once = &.{
133458 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133459 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
133460 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
133461 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133462 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
133463 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
133464 } },
133465 }, .{
133466 .required_features = .{ .avx2, null, null, null },
133467 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133468 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
133469 .patterns = &.{
133470 .{ .src = .{ .mem, .none, .none } },
133471 .{ .src = .{ .to_sse, .none, .none } },
133472 },
133473 .extra_temps = .{
133474 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133475 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
133476 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133477 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
133478 .unused,
133479 .unused,
133480 .unused,
133481 .unused,
133482 .unused,
133483 .unused,
133484 .unused,
133485 },
133486 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133487 .each = .{ .once = &.{
133488 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133489 .{ ._, .vp_w, .broadcast, .tmp2x, .lea(.tmp0w), ._, ._ },
133490 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
133491 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
133492 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
133493 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133494 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133495 } },
133496 }, .{
133497 .required_features = .{ .avx, null, null, null },
133498 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133499 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
133500 .patterns = &.{
133501 .{ .src = .{ .mem, .none, .none } },
133502 .{ .src = .{ .to_sse, .none, .none } },
133503 },
133504 .extra_temps = .{
133505 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133506 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
133507 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133508 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
133509 .unused,
133510 .unused,
133511 .unused,
133512 .unused,
133513 .unused,
133514 .unused,
133515 .unused,
133516 },
133517 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133518 .each = .{ .once = &.{
133519 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133520 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
133521 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
133522 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
133523 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
133524 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133525 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133526 } },
133527 }, .{
133528 .required_features = .{ .sse4_1, null, null, null },
133529 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133530 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
133531 .patterns = &.{
133532 .{ .src = .{ .to_mut_sse, .none, .none } },
133533 },
133534 .extra_temps = .{
133535 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133536 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
133537 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
133538 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133539 .unused,
133540 .unused,
133541 .unused,
133542 .unused,
133543 .unused,
133544 .unused,
133545 .unused,
133546 },
133547 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133548 .each = .{ .once = &.{
133549 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133550 .{ ._, ._, .movddup, .tmp3x, .lea(.tmp0q), ._, ._ },
133551 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
133552 .{ ._, .p_, .xor, .dst0x, .tmp3x, ._, ._ },
133553 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
133554 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133555 .{ ._, .p_, .xor, .dst0x, .tmp3x, ._, ._ },
133556 } },
133557 }, .{
133558 .required_features = .{ .sse2, null, null, null },
133559 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133560 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
133561 .patterns = &.{
133562 .{ .src = .{ .to_mut_sse, .none, .none } },
133563 },
133564 .extra_temps = .{
133565 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133566 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133567 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
133568 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133569 .unused,
133570 .unused,
133571 .unused,
133572 .unused,
133573 .unused,
133574 .unused,
133575 .unused,
133576 },
133577 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133578 .each = .{ .once = &.{
133579 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133580 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133581 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
133582 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
133583 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133584 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
133585 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133586 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
133587 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
133588 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
133589 } },
133590 }, .{
133591 .required_features = .{ .avx, null, null, null },
133592 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133593 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
133594 .patterns = &.{
133595 .{ .src = .{ .to_sse, .none, .none } },
133596 },
133597 .extra_temps = .{
133598 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133599 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133600 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133601 .unused,
133602 .unused,
133603 .unused,
133604 .unused,
133605 .unused,
133606 .unused,
133607 .unused,
133608 .unused,
133609 },
133610 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133611 .each = .{ .once = &.{
133612 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133613 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
133614 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
133615 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133616 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133617 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133618 } },
133619 }, .{
133620 .required_features = .{ .sse4_1, null, null, null },
133621 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133622 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
133623 .patterns = &.{
133624 .{ .src = .{ .to_mut_sse, .none, .none } },
133625 },
133626 .extra_temps = .{
133627 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133628 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133629 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133630 .unused,
133631 .unused,
133632 .unused,
133633 .unused,
133634 .unused,
133635 .unused,
133636 .unused,
133637 .unused,
133638 },
133639 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133640 .each = .{ .once = &.{
133641 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133642 .{ ._, .p_w, .cmpeq, .tmp2x, .tmp2x, ._, ._ },
133643 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133644 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
133645 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133646 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
133647 } },
133648 }, .{
133649 .required_features = .{ .sse2, null, null, null },
133650 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133651 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
133652 .patterns = &.{
133653 .{ .src = .{ .to_mut_sse, .none, .none } },
133654 },
133655 .extra_temps = .{
133656 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133657 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133658 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133659 .unused,
133660 .unused,
133661 .unused,
133662 .unused,
133663 .unused,
133664 .unused,
133665 .unused,
133666 .unused,
133667 },
133668 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133669 .each = .{ .once = &.{
133670 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133671 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133672 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
133673 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
133674 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
133675 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
133676 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
133677 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
133678 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
133679 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
133680 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
133681 } },
133682 }, .{
133683 .required_features = .{ .avx2, null, null, null },
133684 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133685 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
133686 .patterns = &.{
133687 .{ .src = .{ .to_sse, .none, .none } },
133688 },
133689 .extra_temps = .{
133690 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133691 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
133692 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133693 .unused,
133694 .unused,
133695 .unused,
133696 .unused,
133697 .unused,
133698 .unused,
133699 .unused,
133700 .unused,
133701 },
133702 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133703 .each = .{ .once = &.{
133704 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133705 .{ ._, .vp_w, .broadcast, .tmp2x, .lea(.tmp0w), ._, ._ },
133706 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
133707 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133708 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133709 } },
133710 }, .{
133711 .required_features = .{ .avx, null, null, null },
133712 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133713 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
133714 .patterns = &.{
133715 .{ .src = .{ .to_sse, .none, .none } },
133716 },
133717 .extra_temps = .{
133718 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133719 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
133720 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133721 .unused,
133722 .unused,
133723 .unused,
133724 .unused,
133725 .unused,
133726 .unused,
133727 .unused,
133728 .unused,
133729 },
133730 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133731 .each = .{ .once = &.{
133732 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133733 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
133734 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
133735 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133736 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133737 } },
133738 }, .{
133739 .required_features = .{ .sse4_1, null, null, null },
133740 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133741 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
133742 .patterns = &.{
133743 .{ .src = .{ .to_mut_sse, .none, .none } },
133744 },
133745 .extra_temps = .{
133746 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133747 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
133748 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133749 .unused,
133750 .unused,
133751 .unused,
133752 .unused,
133753 .unused,
133754 .unused,
133755 .unused,
133756 .unused,
133757 },
133758 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133759 .each = .{ .once = &.{
133760 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133761 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
133762 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
133763 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133764 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
133765 } },
133766 }, .{
133767 .required_features = .{ .sse2, null, null, null },
133768 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133769 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
133770 .patterns = &.{
133771 .{ .src = .{ .to_mut_sse, .none, .none } },
133772 },
133773 .extra_temps = .{
133774 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133775 .unused,
133776 .unused,
133777 .unused,
133778 .unused,
133779 .unused,
133780 .unused,
133781 .unused,
133782 .unused,
133783 .unused,
133784 .unused,
133785 },
133786 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133787 .each = .{ .once = &.{
133788 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
133789 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
133790 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
133791 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
133792 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133793 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
133794 } },
133795 }, .{
133796 .required_features = .{ .avx, null, null, null },
133797 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133798 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
133799 .patterns = &.{
133800 .{ .src = .{ .to_sse, .none, .none } },
133801 },
133802 .extra_temps = .{
133803 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133804 .unused,
133805 .unused,
133806 .unused,
133807 .unused,
133808 .unused,
133809 .unused,
133810 .unused,
133811 .unused,
133812 .unused,
133813 .unused,
133814 },
133815 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133816 .each = .{ .once = &.{
133817 .{ ._, .vp_w, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
133818 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp0x, ._ },
133819 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133820 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
133821 } },
133822 }, .{
133823 .required_features = .{ .sse4_1, null, null, null },
133824 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133825 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
133826 .patterns = &.{
133827 .{ .src = .{ .to_mut_sse, .none, .none } },
133828 },
133829 .extra_temps = .{
133830 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133831 .unused,
133832 .unused,
133833 .unused,
133834 .unused,
133835 .unused,
133836 .unused,
133837 .unused,
133838 .unused,
133839 .unused,
133840 .unused,
133841 },
133842 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133843 .each = .{ .once = &.{
133844 .{ ._, .p_w, .cmpeq, .tmp0x, .tmp0x, ._, ._ },
133845 .{ ._, .p_, .xor, .dst0x, .tmp0x, ._, ._ },
133846 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133847 .{ ._, .p_, .xor, .dst0x, .tmp0x, ._, ._ },
133848 } },
133849 }, .{
133850 .required_features = .{ .sse2, null, null, null },
133851 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133852 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
133853 .patterns = &.{
133854 .{ .src = .{ .to_mut_sse, .none, .none } },
133855 },
133856 .extra_temps = .{
133857 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133858 .unused,
133859 .unused,
133860 .unused,
133861 .unused,
133862 .unused,
133863 .unused,
133864 .unused,
133865 .unused,
133866 .unused,
133867 .unused,
133868 },
133869 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133870 .each = .{ .once = &.{
133871 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
133872 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
133873 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
133874 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
133875 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
133876 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
133877 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133878 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
133879 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
133880 } },
133881 }, .{
133882 .required_features = .{ .avx2, null, null, null },
133883 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133884 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
133885 .patterns = &.{
133886 .{ .src = .{ .mem, .none, .none } },
133887 .{ .src = .{ .to_sse, .none, .none } },
133888 },
133889 .extra_temps = .{
133890 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133891 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
133892 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
133893 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
133894 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133895 .unused,
133896 .unused,
133897 .unused,
133898 .unused,
133899 .unused,
133900 .unused,
133901 },
133902 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133903 .each = .{ .once = &.{
133904 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133905 .{ ._, .vp_w, .broadcast, .tmp2y, .lea(.tmp0w), ._, ._ },
133906 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
133907 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
133908 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
133909 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
133910 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
133911 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133912 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133913 } },
133914 }, .{
133915 .required_features = .{ .avx, null, null, null },
133916 .dst_constraints = .{ .{ .signed_int = .word }, .any },
133917 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
133918 .patterns = &.{
133919 .{ .src = .{ .mem, .none, .none } },
133920 .{ .src = .{ .to_sse, .none, .none } },
133921 },
133922 .extra_temps = .{
133923 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133924 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
133925 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
133926 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
133927 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
133928 .unused,
133929 .unused,
133930 .unused,
133931 .unused,
133932 .unused,
133933 .unused,
133934 },
133935 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133936 .each = .{ .once = &.{
133937 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133938 .{ ._, .v_ss, .broadcast, .tmp2y, .lea(.tmp0d), ._, ._ },
133939 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
133940 .{ ._, .v_ps, .xor, .dst0y, .tmp2y, .src0y, ._ },
133941 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
133942 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
133943 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
133944 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133945 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133946 } },
133947 }, .{
133948 .required_features = .{ .avx2, null, null, null },
133949 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133950 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
133951 .patterns = &.{
133952 .{ .src = .{ .to_sse, .none, .none } },
133953 },
133954 .extra_temps = .{
133955 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133956 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133957 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133958 .unused,
133959 .unused,
133960 .unused,
133961 .unused,
133962 .unused,
133963 .unused,
133964 .unused,
133965 .unused,
133966 },
133967 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133968 .each = .{ .once = &.{
133969 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133970 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
133971 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
133972 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
133973 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
133974 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133975 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
133976 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
133977 } },
133978 }, .{
133979 .required_features = .{ .avx, null, null, null },
133980 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
133981 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
133982 .patterns = &.{
133983 .{ .src = .{ .to_sse, .none, .none } },
133984 },
133985 .extra_temps = .{
133986 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133987 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133988 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
133989 .unused,
133990 .unused,
133991 .unused,
133992 .unused,
133993 .unused,
133994 .unused,
133995 .unused,
133996 .unused,
133997 },
133998 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133999 .each = .{ .once = &.{
134000 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134001 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
134002 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134003 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134004 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
134005 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134006 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134007 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134008 } },
134009 }, .{
134010 .required_features = .{ .avx2, null, null, null },
134011 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134012 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
134013 .patterns = &.{
134014 .{ .src = .{ .to_sse, .none, .none } },
134015 },
134016 .extra_temps = .{
134017 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134018 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134019 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134020 .unused,
134021 .unused,
134022 .unused,
134023 .unused,
134024 .unused,
134025 .unused,
134026 .unused,
134027 .unused,
134028 },
134029 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134030 .each = .{ .once = &.{
134031 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
134032 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .tmp0x, ._ },
134033 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
134034 .{ ._, .vp_w, .broadcast, .tmp0x, .lea(.tmp1w), ._, ._ },
134035 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134036 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134037 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134038 } },
134039 }, .{
134040 .required_features = .{ .avx, null, null, null },
134041 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134042 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
134043 .patterns = &.{
134044 .{ .src = .{ .to_sse, .none, .none } },
134045 },
134046 .extra_temps = .{
134047 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134048 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134049 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134050 .unused,
134051 .unused,
134052 .unused,
134053 .unused,
134054 .unused,
134055 .unused,
134056 .unused,
134057 .unused,
134058 },
134059 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134060 .each = .{ .once = &.{
134061 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
134062 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .tmp0x, ._ },
134063 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
134064 .{ ._, .v_ss, .broadcast, .tmp0x, .lea(.tmp1d), ._, ._ },
134065 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134066 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134067 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134068 } },
134069 }, .{
134070 .required_features = .{ .avx2, null, null, null },
134071 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134072 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
134073 .patterns = &.{
134074 .{ .src = .{ .to_sse, .none, .none } },
134075 },
134076 .extra_temps = .{
134077 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134078 .unused,
134079 .unused,
134080 .unused,
134081 .unused,
134082 .unused,
134083 .unused,
134084 .unused,
134085 .unused,
134086 .unused,
134087 .unused,
134088 },
134089 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134090 .each = .{ .once = &.{
134091 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
134092 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .tmp0x, ._ },
134093 .{ ._, .vp_w, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
134094 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134095 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134096 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134097 } },
134098 }, .{
134099 .required_features = .{ .avx, null, null, null },
134100 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134101 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
134102 .patterns = &.{
134103 .{ .src = .{ .to_sse, .none, .none } },
134104 },
134105 .extra_temps = .{
134106 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134107 .unused,
134108 .unused,
134109 .unused,
134110 .unused,
134111 .unused,
134112 .unused,
134113 .unused,
134114 .unused,
134115 .unused,
134116 .unused,
134117 },
134118 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134119 .each = .{ .once = &.{
134120 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
134121 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .tmp0x, ._ },
134122 .{ ._, .vp_w, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
134123 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134124 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134125 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134126 } },
134127 }, .{
134128 .required_features = .{ .avx512f, null, null, null },
134129 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134130 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
134131 .patterns = &.{
134132 .{ .src = .{ .to_mem, .none, .none } },
134133 },
134134 .extra_temps = .{
134135 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134136 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134137 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
134138 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
134139 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
134140 .unused,
134141 .unused,
134142 .unused,
134143 .unused,
134144 .unused,
134145 .unused,
134146 },
134147 .dst_temps = .{ .{ .rc = .sse }, .unused },
134148 .each = .{ .once = &.{
134149 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134150 .{ ._, .vp_w, .broadcast, .tmp2y, .lea(.tmp0w), ._, ._ },
134151 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
134152 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
134153 .{ ._, .vp_, .xor, .tmp4y, .tmp2y, .memd(.src0y, 32), ._ },
134154 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134155 .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
134156 .{ ._, .vp_w, .minu, .dst0y, .dst0y, .tmp4y, ._ },
134157 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
134158 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
134159 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
134160 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134161 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134162 } },
134163 }, .{
134164 .required_features = .{ .avx512f, null, null, null },
134165 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134166 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
134167 .patterns = &.{
134168 .{ .src = .{ .to_mem, .none, .none } },
134169 },
134170 .extra_temps = .{
134171 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134172 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134173 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
134174 .unused,
134175 .unused,
134176 .unused,
134177 .unused,
134178 .unused,
134179 .unused,
134180 .unused,
134181 .unused,
134182 },
134183 .dst_temps = .{ .{ .rc = .sse }, .unused },
134184 .each = .{ .once = &.{
134185 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134186 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134187 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
134188 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
134189 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
134190 .{ ._, .vp_w, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
134191 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134192 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134193 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
134194 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134195 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134196 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134197 } },
134198 }, .{
134199 .required_features = .{ .avx512f, null, null, null },
134200 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134201 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
134202 .patterns = &.{
134203 .{ .src = .{ .to_mem, .none, .none } },
134204 },
134205 .extra_temps = .{
134206 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134207 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134208 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134209 .unused,
134210 .unused,
134211 .unused,
134212 .unused,
134213 .unused,
134214 .unused,
134215 .unused,
134216 .unused,
134217 },
134218 .dst_temps = .{ .{ .rc = .sse }, .unused },
134219 .each = .{ .once = &.{
134220 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
134221 .{ ._, .vp_w, .maxs, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
134222 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
134223 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134224 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
134225 .{ ._, .vp_w, .broadcast, .tmp0x, .lea(.tmp1w), ._, ._ },
134226 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134227 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134228 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134229 } },
134230 }, .{
134231 .required_features = .{ .avx512f, null, null, null },
134232 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134233 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
134234 .patterns = &.{
134235 .{ .src = .{ .to_mem, .none, .none } },
134236 },
134237 .extra_temps = .{
134238 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134239 .unused,
134240 .unused,
134241 .unused,
134242 .unused,
134243 .unused,
134244 .unused,
134245 .unused,
134246 .unused,
134247 .unused,
134248 .unused,
134249 },
134250 .dst_temps = .{ .{ .rc = .sse }, .unused },
134251 .each = .{ .once = &.{
134252 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
134253 .{ ._, .vp_w, .maxu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
134254 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
134255 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134256 .{ ._, .vp_w, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
134257 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134258 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134259 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
134260 } },
134261 }, .{
134262 .required_features = .{ .avx2, null, null, null },
134263 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134264 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
134265 .patterns = &.{
134266 .{ .src = .{ .to_mem, .none, .none } },
134267 },
134268 .extra_temps = .{
134269 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134270 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134271 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134272 .unused,
134273 .unused,
134274 .unused,
134275 .unused,
134276 .unused,
134277 .unused,
134278 .unused,
134279 .unused,
134280 },
134281 .dst_temps = .{ .{ .rc = .sse }, .unused },
134282 .clobbers = .{ .eflags = true },
134283 .each = .{ .once = &.{
134284 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
134285 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
134286 .{ .@"0:", .vp_w, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134287 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
134288 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134289 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
134290 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134291 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134292 .{ ._, .vp_w, .broadcast, .tmp1x, .lea(.tmp0w), ._, ._ },
134293 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
134294 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134295 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
134296 } },
134297 }, .{
134298 .required_features = .{ .avx, null, null, null },
134299 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134300 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
134301 .patterns = &.{
134302 .{ .src = .{ .to_mem, .none, .none } },
134303 },
134304 .extra_temps = .{
134305 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134306 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134307 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134308 .unused,
134309 .unused,
134310 .unused,
134311 .unused,
134312 .unused,
134313 .unused,
134314 .unused,
134315 .unused,
134316 },
134317 .dst_temps = .{ .{ .rc = .sse }, .unused },
134318 .clobbers = .{ .eflags = true },
134319 .each = .{ .once = &.{
134320 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134321 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134322 .{ .@"0:", .vp_w, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
134323 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134324 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134325 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134326 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
134327 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134328 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134329 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134330 } },
134331 }, .{
134332 .required_features = .{ .sse4_1, null, null, null },
134333 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134334 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
134335 .patterns = &.{
134336 .{ .src = .{ .to_mem, .none, .none } },
134337 },
134338 .extra_temps = .{
134339 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134340 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134341 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134342 .unused,
134343 .unused,
134344 .unused,
134345 .unused,
134346 .unused,
134347 .unused,
134348 .unused,
134349 .unused,
134350 },
134351 .dst_temps = .{ .{ .rc = .sse }, .unused },
134352 .clobbers = .{ .eflags = true },
134353 .each = .{ .once = &.{
134354 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134355 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134356 .{ .@"0:", .p_w, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134357 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134358 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134359 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134360 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
134361 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
134362 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134363 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
134364 } },
134365 }, .{
134366 .required_features = .{ .sse2, null, null, null },
134367 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134368 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
134369 .patterns = &.{
134370 .{ .src = .{ .to_mem, .none, .none } },
134371 },
134372 .extra_temps = .{
134373 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134374 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134375 .unused,
134376 .unused,
134377 .unused,
134378 .unused,
134379 .unused,
134380 .unused,
134381 .unused,
134382 .unused,
134383 .unused,
134384 },
134385 .dst_temps = .{ .{ .rc = .sse }, .unused },
134386 .clobbers = .{ .eflags = true },
134387 .each = .{ .once = &.{
134388 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134389 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134390 .{ .@"0:", .p_w, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134391 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134392 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134393 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134394 .{ ._, .p_w, .maxs, .dst0x, .tmp1x, ._, ._ },
134395 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134396 .{ ._, .p_w, .maxs, .dst0x, .tmp1x, ._, ._ },
134397 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134398 .{ ._, .p_w, .maxs, .dst0x, .tmp1x, ._, ._ },
134399 } },
134400 }, .{
134401 .required_features = .{ .avx2, null, null, null },
134402 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134403 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
134404 .patterns = &.{
134405 .{ .src = .{ .to_mem, .none, .none } },
134406 },
134407 .extra_temps = .{
134408 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134409 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134410 .unused,
134411 .unused,
134412 .unused,
134413 .unused,
134414 .unused,
134415 .unused,
134416 .unused,
134417 .unused,
134418 .unused,
134419 },
134420 .dst_temps = .{ .{ .rc = .sse }, .unused },
134421 .clobbers = .{ .eflags = true },
134422 .each = .{ .once = &.{
134423 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
134424 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
134425 .{ .@"0:", .vp_w, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134426 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
134427 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134428 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
134429 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134430 .{ ._, .vp_w, .cmpeq, .tmp1x, .tmp1x, .tmp1x, ._ },
134431 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
134432 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134433 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
134434 } },
134435 }, .{
134436 .required_features = .{ .avx, null, null, null },
134437 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134438 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
134439 .patterns = &.{
134440 .{ .src = .{ .to_mem, .none, .none } },
134441 },
134442 .extra_temps = .{
134443 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134444 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134445 .unused,
134446 .unused,
134447 .unused,
134448 .unused,
134449 .unused,
134450 .unused,
134451 .unused,
134452 .unused,
134453 .unused,
134454 },
134455 .dst_temps = .{ .{ .rc = .sse }, .unused },
134456 .clobbers = .{ .eflags = true },
134457 .each = .{ .once = &.{
134458 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134459 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134460 .{ ._, .vp_w, .cmpeq, .tmp1x, .tmp1x, .tmp1x, ._ },
134461 .{ .@"0:", .vp_w, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
134462 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134463 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134464 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
134465 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134466 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
134467 } },
134468 }, .{
134469 .required_features = .{ .sse4_1, null, null, null },
134470 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134471 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
134472 .patterns = &.{
134473 .{ .src = .{ .to_mem, .none, .none } },
134474 },
134475 .extra_temps = .{
134476 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134477 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134478 .unused,
134479 .unused,
134480 .unused,
134481 .unused,
134482 .unused,
134483 .unused,
134484 .unused,
134485 .unused,
134486 .unused,
134487 },
134488 .dst_temps = .{ .{ .rc = .sse }, .unused },
134489 .clobbers = .{ .eflags = true },
134490 .each = .{ .once = &.{
134491 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134492 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134493 .{ ._, .p_w, .cmpeq, .tmp1x, .tmp1x, ._, ._ },
134494 .{ .@"0:", .p_w, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134495 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134496 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134497 .{ ._, .p_, .xor, .dst0x, .tmp1x, ._, ._ },
134498 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134499 .{ ._, .p_, .xor, .dst0x, .tmp1x, ._, ._ },
134500 } },
134501 }, .{
134502 .required_features = .{ .sse2, null, null, null },
134503 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134504 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
134505 .patterns = &.{
134506 .{ .src = .{ .to_mem, .none, .none } },
134507 },
134508 .extra_temps = .{
134509 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134510 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134511 .unused,
134512 .unused,
134513 .unused,
134514 .unused,
134515 .unused,
134516 .unused,
134517 .unused,
134518 .unused,
134519 .unused,
134520 },
134521 .dst_temps = .{ .{ .rc = .sse }, .unused },
134522 .clobbers = .{ .eflags = true },
134523 .each = .{ .once = &.{
134524 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134525 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134526 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
134527 .{ ._, .p_w, .subus, .tmp1x, .dst0x, ._, ._ },
134528 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
134529 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134530 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134531 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134532 .{ ._, .p_w, .subus, .dst0x, .tmp1x, ._, ._ },
134533 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
134534 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134535 .{ ._, .p_w, .subus, .dst0x, .tmp1x, ._, ._ },
134536 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
134537 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134538 .{ ._, .p_w, .subus, .dst0x, .tmp1x, ._, ._ },
134539 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
134540 } },
134541 }, .{
134542 .required_features = .{ .avx512f, null, null, null },
134543 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134544 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
134545 .patterns = &.{
134546 .{ .src = .{ .to_mem, .none, .none } },
134547 },
134548 .extra_temps = .{
134549 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134550 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134551 .{ .type = .vector_32_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134552 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
134553 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134554 .unused,
134555 .unused,
134556 .unused,
134557 .unused,
134558 .unused,
134559 .unused,
134560 },
134561 .dst_temps = .{ .{ .rc = .sse }, .unused },
134562 .clobbers = .{ .eflags = true },
134563 .each = .{ .once = &.{
134564 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134565 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134566 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
134567 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134568 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
134569 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
134570 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134571 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
134572 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
134573 .{ .@"0:", .vp_w, .maxs, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
134574 .{ ._, .vp_w, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134575 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
134576 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134577 .{ ._, .vp_w, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
134578 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134579 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134580 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
134581 .{ ._, .vp_w, .broadcast, .tmp3x, .lea(.tmp0w), ._, ._ },
134582 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
134583 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134584 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
134585 } },
134586 }, .{
134587 .required_features = .{ .avx2, null, null, null },
134588 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134589 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
134590 .patterns = &.{
134591 .{ .src = .{ .to_mem, .none, .none } },
134592 },
134593 .extra_temps = .{
134594 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134595 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134596 .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134597 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134598 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134599 .unused,
134600 .unused,
134601 .unused,
134602 .unused,
134603 .unused,
134604 .unused,
134605 },
134606 .dst_temps = .{ .{ .rc = .sse }, .unused },
134607 .clobbers = .{ .eflags = true },
134608 .each = .{ .once = &.{
134609 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134610 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134611 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134612 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
134613 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134614 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
134615 .{ .@"0:", .vp_w, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134616 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
134617 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134618 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134619 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134620 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
134621 .{ ._, .vp_w, .broadcast, .tmp3x, .lea(.tmp0w), ._, ._ },
134622 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
134623 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134624 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
134625 } },
134626 }, .{
134627 .required_features = .{ .avx, null, null, null },
134628 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134629 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
134630 .patterns = &.{
134631 .{ .src = .{ .to_mem, .none, .none } },
134632 },
134633 .extra_temps = .{
134634 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134635 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134636 .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134637 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134638 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134639 .unused,
134640 .unused,
134641 .unused,
134642 .unused,
134643 .unused,
134644 .unused,
134645 },
134646 .dst_temps = .{ .{ .rc = .sse }, .unused },
134647 .clobbers = .{ .eflags = true },
134648 .each = .{ .once = &.{
134649 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134650 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
134651 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134652 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
134653 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134654 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
134655 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134656 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134657 .{ .@"0:", .vp_w, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
134658 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134659 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134660 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
134661 .{ ._, .v_ss, .broadcast, .tmp3x, .lea(.tmp0d), ._, ._ },
134662 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
134663 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134664 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
134665 } },
134666 }, .{
134667 .required_features = .{ .sse4_1, null, null, null },
134668 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134669 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
134670 .patterns = &.{
134671 .{ .src = .{ .to_mem, .none, .none } },
134672 },
134673 .extra_temps = .{
134674 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134675 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134676 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134677 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
134678 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134679 .unused,
134680 .unused,
134681 .unused,
134682 .unused,
134683 .unused,
134684 .unused,
134685 },
134686 .dst_temps = .{ .{ .rc = .sse }, .unused },
134687 .clobbers = .{ .eflags = true },
134688 .each = .{ .once = &.{
134689 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134690 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
134691 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134692 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
134693 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
134694 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
134695 .{ .@"0:", .p_w, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134696 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134697 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134698 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
134699 .{ ._, ._, .movddup, .tmp4x, .lea(.tmp0q), ._, ._ },
134700 .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
134701 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134702 .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
134703 } },
134704 }, .{
134705 .required_features = .{ .sse2, null, null, null },
134706 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134707 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
134708 .patterns = &.{
134709 .{ .src = .{ .to_mem, .none, .none } },
134710 },
134711 .extra_temps = .{
134712 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134713 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134714 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134715 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
134716 .unused,
134717 .unused,
134718 .unused,
134719 .unused,
134720 .unused,
134721 .unused,
134722 .unused,
134723 },
134724 .dst_temps = .{ .{ .rc = .sse }, .unused },
134725 .clobbers = .{ .eflags = true },
134726 .each = .{ .once = &.{
134727 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134728 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
134729 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134730 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
134731 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
134732 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
134733 .{ .@"0:", .p_w, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134734 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134735 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134736 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134737 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
134738 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134739 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
134740 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134741 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
134742 } },
134743 }, .{
134744 .required_features = .{ .avx512f, null, null, null },
134745 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134746 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
134747 .patterns = &.{
134748 .{ .src = .{ .to_mem, .none, .none } },
134749 },
134750 .extra_temps = .{
134751 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134752 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134753 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
134754 .unused,
134755 .unused,
134756 .unused,
134757 .unused,
134758 .unused,
134759 .unused,
134760 .unused,
134761 .unused,
134762 },
134763 .dst_temps = .{ .{ .rc = .sse }, .unused },
134764 .clobbers = .{ .eflags = true },
134765 .each = .{ .once = &.{
134766 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134767 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134768 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
134769 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
134770 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
134771 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
134772 .{ .@"0:", .vp_w, .maxu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
134773 .{ ._, .vp_w, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134774 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
134775 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134776 .{ ._, .vp_w, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
134777 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134778 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134779 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
134780 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134781 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134782 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134783 } },
134784 }, .{
134785 .required_features = .{ .avx2, null, null, null },
134786 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134787 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
134788 .patterns = &.{
134789 .{ .src = .{ .to_mem, .none, .none } },
134790 },
134791 .extra_temps = .{
134792 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134793 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134794 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134795 .unused,
134796 .unused,
134797 .unused,
134798 .unused,
134799 .unused,
134800 .unused,
134801 .unused,
134802 .unused,
134803 },
134804 .dst_temps = .{ .{ .rc = .sse }, .unused },
134805 .clobbers = .{ .eflags = true },
134806 .each = .{ .once = &.{
134807 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134808 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134809 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
134810 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
134811 .{ .@"0:", .vp_w, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134812 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
134813 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134814 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134815 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134816 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
134817 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134818 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134819 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134820 } },
134821 }, .{
134822 .required_features = .{ .avx, null, null, null },
134823 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134824 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
134825 .patterns = &.{
134826 .{ .src = .{ .to_mem, .none, .none } },
134827 },
134828 .extra_temps = .{
134829 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134830 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134831 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134832 .unused,
134833 .unused,
134834 .unused,
134835 .unused,
134836 .unused,
134837 .unused,
134838 .unused,
134839 .unused,
134840 },
134841 .dst_temps = .{ .{ .rc = .sse }, .unused },
134842 .clobbers = .{ .eflags = true },
134843 .each = .{ .once = &.{
134844 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134845 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
134846 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
134847 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
134848 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134849 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134850 .{ .@"0:", .vp_w, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
134851 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134852 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134853 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
134854 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134855 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134856 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
134857 } },
134858 }, .{
134859 .required_features = .{ .sse4_1, null, null, null },
134860 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134861 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
134862 .patterns = &.{
134863 .{ .src = .{ .to_mem, .none, .none } },
134864 },
134865 .extra_temps = .{
134866 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134867 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134868 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134869 .unused,
134870 .unused,
134871 .unused,
134872 .unused,
134873 .unused,
134874 .unused,
134875 .unused,
134876 .unused,
134877 },
134878 .dst_temps = .{ .{ .rc = .sse }, .unused },
134879 .clobbers = .{ .eflags = true },
134880 .each = .{ .once = &.{
134881 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134882 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
134883 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
134884 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
134885 .{ ._, .p_w, .cmpeq, .tmp2x, .tmp2x, ._, ._ },
134886 .{ .@"0:", .p_w, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134887 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134888 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134889 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
134890 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
134891 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
134892 } },
134893 }, .{
134894 .required_features = .{ .sse2, null, null, null },
134895 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
134896 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
134897 .patterns = &.{
134898 .{ .src = .{ .to_mem, .none, .none } },
134899 },
134900 .extra_temps = .{
134901 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134902 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134903 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
134904 .unused,
134905 .unused,
134906 .unused,
134907 .unused,
134908 .unused,
134909 .unused,
134910 .unused,
134911 .unused,
134912 },
134913 .dst_temps = .{ .{ .rc = .sse }, .unused },
134914 .clobbers = .{ .eflags = true },
134915 .each = .{ .once = &.{
134916 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134917 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
134918 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
134919 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
134920 .{ .@"0:", ._dqa, .mov, .tmp2x, .memi(.src0x, .tmp0), ._, ._ },
134921 .{ ._, .p_w, .subus, .tmp2x, .dst0x, ._, ._ },
134922 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
134923 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134924 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134925 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134926 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
134927 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
134928 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134929 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
134930 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
134931 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
134932 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
134933 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
134934 } },
134935 }, .{
134936 .required_features = .{ .cmov, null, null, null },
134937 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134938 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
134939 .patterns = &.{
134940 .{ .src = .{ .to_mem, .none, .none } },
134941 },
134942 .extra_temps = .{
134943 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134944 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
134945 .unused,
134946 .unused,
134947 .unused,
134948 .unused,
134949 .unused,
134950 .unused,
134951 .unused,
134952 .unused,
134953 .unused,
134954 },
134955 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
134956 .clobbers = .{ .eflags = true },
134957 .each = .{ .once = &.{
134958 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
134959 .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
134960 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
134961 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
134962 .{ ._, ._l, .cmov, .dst0d, .tmp1d, ._, ._ },
134963 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
134964 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134965 } },
134966 }, .{
134967 .dst_constraints = .{ .{ .signed_int = .word }, .any },
134968 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
134969 .patterns = &.{
134970 .{ .src = .{ .to_mem, .none, .none } },
134971 },
134972 .extra_temps = .{
134973 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134974 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
134975 .unused,
134976 .unused,
134977 .unused,
134978 .unused,
134979 .unused,
134980 .unused,
134981 .unused,
134982 .unused,
134983 .unused,
134984 },
134985 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
134986 .clobbers = .{ .eflags = true },
134987 .each = .{ .once = &.{
134988 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
134989 .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
134990 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
134991 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
134992 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
134993 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
134994 .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
134995 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134996 } },
134997 }, .{
134998 .required_features = .{ .cmov, null, null, null },
134999 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135000 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
135001 .patterns = &.{
135002 .{ .src = .{ .to_mem, .none, .none } },
135003 },
135004 .extra_temps = .{
135005 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135006 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
135007 .unused,
135008 .unused,
135009 .unused,
135010 .unused,
135011 .unused,
135012 .unused,
135013 .unused,
135014 .unused,
135015 .unused,
135016 },
135017 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135018 .clobbers = .{ .eflags = true },
135019 .each = .{ .once = &.{
135020 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
135021 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
135022 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
135023 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
135024 .{ ._, ._b, .cmov, .dst0d, .tmp1d, ._, ._ },
135025 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
135026 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135027 } },
135028 }, .{
135029 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135030 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
135031 .patterns = &.{
135032 .{ .src = .{ .to_mem, .none, .none } },
135033 },
135034 .extra_temps = .{
135035 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135036 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
135037 .unused,
135038 .unused,
135039 .unused,
135040 .unused,
135041 .unused,
135042 .unused,
135043 .unused,
135044 .unused,
135045 .unused,
135046 },
135047 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135048 .clobbers = .{ .eflags = true },
135049 .each = .{ .once = &.{
135050 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
135051 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
135052 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
135053 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
135054 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
135055 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
135056 .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
135057 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135058 } },
135059 }, .{
135060 .required_features = .{ .avx, null, null, null },
135061 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135062 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
135063 .patterns = &.{
135064 .{ .src = .{ .to_sse, .none, .none } },
135065 },
135066 .extra_temps = .{
135067 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135068 .unused,
135069 .unused,
135070 .unused,
135071 .unused,
135072 .unused,
135073 .unused,
135074 .unused,
135075 .unused,
135076 .unused,
135077 .unused,
135078 },
135079 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135080 .each = .{ .once = &.{
135081 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135082 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .tmp0x, ._ },
135083 } },
135084 }, .{
135085 .required_features = .{ .sse4_1, null, null, null },
135086 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135087 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
135088 .patterns = &.{
135089 .{ .src = .{ .to_mut_sse, .none, .none } },
135090 },
135091 .extra_temps = .{
135092 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135093 .unused,
135094 .unused,
135095 .unused,
135096 .unused,
135097 .unused,
135098 .unused,
135099 .unused,
135100 .unused,
135101 .unused,
135102 .unused,
135103 },
135104 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135105 .each = .{ .once = &.{
135106 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135107 .{ ._, .p_d, .maxs, .dst0x, .tmp0x, ._, ._ },
135108 } },
135109 }, .{
135110 .required_features = .{ .sse2, null, null, null },
135111 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135112 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
135113 .patterns = &.{
135114 .{ .src = .{ .to_mut_sse, .none, .none } },
135115 },
135116 .extra_temps = .{
135117 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135118 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135119 .unused,
135120 .unused,
135121 .unused,
135122 .unused,
135123 .unused,
135124 .unused,
135125 .unused,
135126 .unused,
135127 .unused,
135128 },
135129 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135130 .each = .{ .once = &.{
135131 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135132 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
135133 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
135134 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
135135 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
135136 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
135137 } },
135138 }, .{
135139 .required_features = .{ .avx, null, null, null },
135140 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135141 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
135142 .patterns = &.{
135143 .{ .src = .{ .to_sse, .none, .none } },
135144 },
135145 .extra_temps = .{
135146 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135147 .unused,
135148 .unused,
135149 .unused,
135150 .unused,
135151 .unused,
135152 .unused,
135153 .unused,
135154 .unused,
135155 .unused,
135156 .unused,
135157 },
135158 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135159 .each = .{ .once = &.{
135160 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135161 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .tmp0x, ._ },
135162 } },
135163 }, .{
135164 .required_features = .{ .sse4_1, null, null, null },
135165 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135166 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
135167 .patterns = &.{
135168 .{ .src = .{ .to_mut_sse, .none, .none } },
135169 },
135170 .extra_temps = .{
135171 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135172 .unused,
135173 .unused,
135174 .unused,
135175 .unused,
135176 .unused,
135177 .unused,
135178 .unused,
135179 .unused,
135180 .unused,
135181 .unused,
135182 },
135183 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135184 .each = .{ .once = &.{
135185 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135186 .{ ._, .p_d, .maxu, .dst0x, .tmp0x, ._, ._ },
135187 } },
135188 }, .{
135189 .required_features = .{ .sse3, null, null, null },
135190 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135191 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
135192 .patterns = &.{
135193 .{ .src = .{ .to_mut_sse, .none, .none } },
135194 },
135195 .extra_temps = .{
135196 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135197 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
135198 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135199 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135200 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135201 .unused,
135202 .unused,
135203 .unused,
135204 .unused,
135205 .unused,
135206 .unused,
135207 },
135208 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135209 .each = .{ .once = &.{
135210 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135211 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
135212 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135213 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135214 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
135215 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
135216 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
135217 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
135218 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
135219 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135220 } },
135221 }, .{
135222 .required_features = .{ .sse2, null, null, null },
135223 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135224 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
135225 .patterns = &.{
135226 .{ .src = .{ .to_mut_sse, .none, .none } },
135227 },
135228 .extra_temps = .{
135229 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135230 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
135231 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135232 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135233 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135234 .unused,
135235 .unused,
135236 .unused,
135237 .unused,
135238 .unused,
135239 .unused,
135240 },
135241 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135242 .each = .{ .once = &.{
135243 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135244 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
135245 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135246 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135247 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
135248 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
135249 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
135250 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
135251 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
135252 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135253 } },
135254 }, .{
135255 .required_features = .{ .avx, null, null, null },
135256 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135257 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135258 .patterns = &.{
135259 .{ .src = .{ .to_sse, .none, .none } },
135260 },
135261 .extra_temps = .{
135262 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135263 .unused,
135264 .unused,
135265 .unused,
135266 .unused,
135267 .unused,
135268 .unused,
135269 .unused,
135270 .unused,
135271 .unused,
135272 .unused,
135273 },
135274 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135275 .each = .{ .once = &.{
135276 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135277 .{ ._, .vp_d, .maxs, .tmp0x, .src0x, .tmp0x, ._ },
135278 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
135279 .{ ._, .vp_d, .maxs, .dst0x, .tmp0x, .dst0x, ._ },
135280 } },
135281 }, .{
135282 .required_features = .{ .sse4_1, null, null, null },
135283 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135284 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135285 .patterns = &.{
135286 .{ .src = .{ .to_sse, .none, .none } },
135287 },
135288 .extra_temps = .{
135289 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135290 .unused,
135291 .unused,
135292 .unused,
135293 .unused,
135294 .unused,
135295 .unused,
135296 .unused,
135297 .unused,
135298 .unused,
135299 .unused,
135300 },
135301 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135302 .each = .{ .once = &.{
135303 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135304 .{ ._, .p_d, .maxs, .tmp0x, .src0x, ._, ._ },
135305 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
135306 .{ ._, .p_d, .maxs, .dst0x, .tmp0x, ._, ._ },
135307 } },
135308 }, .{
135309 .required_features = .{ .sse2, null, null, null },
135310 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135311 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135312 .patterns = &.{
135313 .{ .src = .{ .to_mut_sse, .none, .none } },
135314 },
135315 .extra_temps = .{
135316 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135317 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135318 .unused,
135319 .unused,
135320 .unused,
135321 .unused,
135322 .unused,
135323 .unused,
135324 .unused,
135325 .unused,
135326 .unused,
135327 },
135328 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135329 .each = .{ .once = &.{
135330 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
135331 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
135332 .{ ._, .p_d, .cmpgt, .tmp1x, .src0x, ._, ._ },
135333 .{ ._, .p_, .@"and", .tmp0x, .tmp1x, ._, ._ },
135334 .{ ._, .p_, .andn, .tmp1x, .src0x, ._, ._ },
135335 .{ ._, .p_, .@"or", .tmp0x, .tmp1x, ._, ._ },
135336 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
135337 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
135338 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
135339 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
135340 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
135341 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
135342 } },
135343 }, .{
135344 .required_features = .{ .avx, null, null, null },
135345 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135346 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135347 .patterns = &.{
135348 .{ .src = .{ .to_sse, .none, .none } },
135349 },
135350 .extra_temps = .{
135351 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135352 .unused,
135353 .unused,
135354 .unused,
135355 .unused,
135356 .unused,
135357 .unused,
135358 .unused,
135359 .unused,
135360 .unused,
135361 .unused,
135362 },
135363 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135364 .each = .{ .once = &.{
135365 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135366 .{ ._, .vp_d, .maxu, .tmp0x, .src0x, .tmp0x, ._ },
135367 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
135368 .{ ._, .vp_d, .maxu, .dst0x, .tmp0x, .dst0x, ._ },
135369 } },
135370 }, .{
135371 .required_features = .{ .sse4_1, null, null, null },
135372 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135373 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135374 .patterns = &.{
135375 .{ .src = .{ .to_mut_sse, .none, .none } },
135376 },
135377 .extra_temps = .{
135378 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135379 .unused,
135380 .unused,
135381 .unused,
135382 .unused,
135383 .unused,
135384 .unused,
135385 .unused,
135386 .unused,
135387 .unused,
135388 .unused,
135389 },
135390 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135391 .each = .{ .once = &.{
135392 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135393 .{ ._, .p_d, .maxu, .tmp0x, .src0x, ._, ._ },
135394 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
135395 .{ ._, .p_d, .maxu, .dst0x, .tmp0x, ._, ._ },
135396 } },
135397 }, .{
135398 .required_features = .{ .sse3, null, null, null },
135399 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135400 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135401 .patterns = &.{
135402 .{ .src = .{ .to_mut_sse, .none, .none } },
135403 },
135404 .extra_temps = .{
135405 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135406 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
135407 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135408 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135409 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135410 .unused,
135411 .unused,
135412 .unused,
135413 .unused,
135414 .unused,
135415 .unused,
135416 },
135417 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135418 .each = .{ .once = &.{
135419 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135420 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
135421 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135422 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135423 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
135424 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
135425 .{ ._, .p_, .@"and", .tmp3x, .tmp4x, ._, ._ },
135426 .{ ._, .p_, .andn, .tmp4x, .dst0x, ._, ._ },
135427 .{ ._, .p_, .@"or", .tmp3x, .tmp4x, ._, ._ },
135428 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
135429 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
135430 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
135431 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
135432 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
135433 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
135434 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135435 } },
135436 }, .{
135437 .required_features = .{ .sse2, null, null, null },
135438 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135439 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135440 .patterns = &.{
135441 .{ .src = .{ .to_mut_sse, .none, .none } },
135442 },
135443 .extra_temps = .{
135444 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135445 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
135446 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135447 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135448 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135449 .unused,
135450 .unused,
135451 .unused,
135452 .unused,
135453 .unused,
135454 .unused,
135455 },
135456 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135457 .each = .{ .once = &.{
135458 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135459 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
135460 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135461 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135462 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
135463 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
135464 .{ ._, .p_, .@"and", .tmp3x, .tmp4x, ._, ._ },
135465 .{ ._, .p_, .andn, .tmp4x, .dst0x, ._, ._ },
135466 .{ ._, .p_, .@"or", .tmp3x, .tmp4x, ._, ._ },
135467 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
135468 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
135469 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
135470 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
135471 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
135472 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
135473 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135474 } },
135475 }, .{
135476 .required_features = .{ .avx, null, null, null },
135477 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135478 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135479 .patterns = &.{
135480 .{ .src = .{ .to_sse, .none, .none } },
135481 },
135482 .extra_temps = .{
135483 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135484 .unused,
135485 .unused,
135486 .unused,
135487 .unused,
135488 .unused,
135489 .unused,
135490 .unused,
135491 .unused,
135492 .unused,
135493 .unused,
135494 },
135495 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135496 .each = .{ .once = &.{
135497 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
135498 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .tmp0x, ._ },
135499 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135500 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
135501 } },
135502 }, .{
135503 .required_features = .{ .sse4_1, null, null, null },
135504 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135505 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135506 .patterns = &.{
135507 .{ .src = .{ .to_mut_sse, .none, .none } },
135508 },
135509 .extra_temps = .{
135510 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135511 .unused,
135512 .unused,
135513 .unused,
135514 .unused,
135515 .unused,
135516 .unused,
135517 .unused,
135518 .unused,
135519 .unused,
135520 .unused,
135521 },
135522 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135523 .each = .{ .once = &.{
135524 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
135525 .{ ._, .p_d, .maxs, .dst0x, .tmp0x, ._, ._ },
135526 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135527 .{ ._, .p_d, .maxs, .dst0x, .tmp0x, ._, ._ },
135528 } },
135529 }, .{
135530 .required_features = .{ .sse2, null, null, null },
135531 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135532 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135533 .patterns = &.{
135534 .{ .src = .{ .to_mut_sse, .none, .none } },
135535 },
135536 .extra_temps = .{
135537 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135538 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135539 .unused,
135540 .unused,
135541 .unused,
135542 .unused,
135543 .unused,
135544 .unused,
135545 .unused,
135546 .unused,
135547 .unused,
135548 },
135549 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135550 .each = .{ .once = &.{
135551 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
135552 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
135553 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
135554 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
135555 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
135556 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
135557 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135558 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
135559 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
135560 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
135561 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
135562 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
135563 } },
135564 }, .{
135565 .required_features = .{ .avx, null, null, null },
135566 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135567 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135568 .patterns = &.{
135569 .{ .src = .{ .to_sse, .none, .none } },
135570 },
135571 .extra_temps = .{
135572 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135573 .unused,
135574 .unused,
135575 .unused,
135576 .unused,
135577 .unused,
135578 .unused,
135579 .unused,
135580 .unused,
135581 .unused,
135582 .unused,
135583 },
135584 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135585 .each = .{ .once = &.{
135586 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
135587 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .tmp0x, ._ },
135588 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135589 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
135590 } },
135591 }, .{
135592 .required_features = .{ .sse4_1, null, null, null },
135593 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135594 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135595 .patterns = &.{
135596 .{ .src = .{ .to_mut_sse, .none, .none } },
135597 },
135598 .extra_temps = .{
135599 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135600 .unused,
135601 .unused,
135602 .unused,
135603 .unused,
135604 .unused,
135605 .unused,
135606 .unused,
135607 .unused,
135608 .unused,
135609 .unused,
135610 },
135611 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135612 .each = .{ .once = &.{
135613 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
135614 .{ ._, .p_d, .maxu, .dst0x, .tmp0x, ._, ._ },
135615 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135616 .{ ._, .p_d, .maxu, .dst0x, .tmp0x, ._, ._ },
135617 } },
135618 }, .{
135619 .required_features = .{ .sse3, null, null, null },
135620 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135621 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135622 .patterns = &.{
135623 .{ .src = .{ .to_mut_sse, .none, .none } },
135624 },
135625 .extra_temps = .{
135626 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135627 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
135628 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135629 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135630 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135631 .unused,
135632 .unused,
135633 .unused,
135634 .unused,
135635 .unused,
135636 .unused,
135637 },
135638 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135639 .each = .{ .once = &.{
135640 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135641 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
135642 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135643 .{ ._, .p_d, .shuf, .tmp3x, .src0x, .ui(0b11_10), ._ },
135644 .{ ._, ._dqa, .mov, .tmp4x, .src0x, ._, ._ },
135645 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
135646 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
135647 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
135648 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
135649 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135650 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
135651 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
135652 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
135653 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
135654 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
135655 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135656 } },
135657 }, .{
135658 .required_features = .{ .sse2, null, null, null },
135659 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135660 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
135661 .patterns = &.{
135662 .{ .src = .{ .to_mut_sse, .none, .none } },
135663 },
135664 .extra_temps = .{
135665 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135666 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
135667 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135668 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135669 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135670 .unused,
135671 .unused,
135672 .unused,
135673 .unused,
135674 .unused,
135675 .unused,
135676 },
135677 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135678 .each = .{ .once = &.{
135679 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135680 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
135681 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135682 .{ ._, .p_d, .shuf, .tmp3x, .src0x, .ui(0b11_10), ._ },
135683 .{ ._, ._dqa, .mov, .tmp4x, .src0x, ._, ._ },
135684 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
135685 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
135686 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
135687 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
135688 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135689 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
135690 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
135691 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
135692 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
135693 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
135694 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135695 } },
135696 }, .{
135697 .required_features = .{ .avx2, null, null, null },
135698 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135699 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
135700 .patterns = &.{
135701 .{ .src = .{ .to_sse, .none, .none } },
135702 },
135703 .extra_temps = .{
135704 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135705 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135706 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
135707 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135708 .unused,
135709 .unused,
135710 .unused,
135711 .unused,
135712 .unused,
135713 .unused,
135714 .unused,
135715 },
135716 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135717 .each = .{ .once = &.{
135718 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135719 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
135720 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
135721 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
135722 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
135723 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135724 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135725 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135726 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135727 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135728 } },
135729 }, .{
135730 .required_features = .{ .avx, null, null, null },
135731 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135732 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
135733 .patterns = &.{
135734 .{ .src = .{ .to_sse, .none, .none } },
135735 },
135736 .extra_temps = .{
135737 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135738 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135739 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
135740 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135741 .unused,
135742 .unused,
135743 .unused,
135744 .unused,
135745 .unused,
135746 .unused,
135747 .unused,
135748 },
135749 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135750 .each = .{ .once = &.{
135751 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135752 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
135753 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
135754 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
135755 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
135756 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135757 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135758 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135759 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135760 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135761 } },
135762 }, .{
135763 .required_features = .{ .avx2, null, null, null },
135764 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135765 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
135766 .patterns = &.{
135767 .{ .src = .{ .to_sse, .none, .none } },
135768 },
135769 .extra_temps = .{
135770 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135771 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135772 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135773 .unused,
135774 .unused,
135775 .unused,
135776 .unused,
135777 .unused,
135778 .unused,
135779 .unused,
135780 .unused,
135781 },
135782 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135783 .each = .{ .once = &.{
135784 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135785 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
135786 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
135787 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135788 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135789 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135790 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135791 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135792 } },
135793 }, .{
135794 .required_features = .{ .avx, null, null, null },
135795 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135796 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
135797 .patterns = &.{
135798 .{ .src = .{ .to_sse, .none, .none } },
135799 },
135800 .extra_temps = .{
135801 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135802 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135803 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135804 .unused,
135805 .unused,
135806 .unused,
135807 .unused,
135808 .unused,
135809 .unused,
135810 .unused,
135811 .unused,
135812 },
135813 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135814 .each = .{ .once = &.{
135815 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135816 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
135817 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
135818 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135819 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135820 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135821 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135822 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135823 } },
135824 }, .{
135825 .required_features = .{ .avx2, null, null, null },
135826 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135827 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
135828 .patterns = &.{
135829 .{ .src = .{ .to_sse, .none, .none } },
135830 },
135831 .extra_temps = .{
135832 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135833 .unused,
135834 .unused,
135835 .unused,
135836 .unused,
135837 .unused,
135838 .unused,
135839 .unused,
135840 .unused,
135841 .unused,
135842 .unused,
135843 },
135844 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135845 .each = .{ .once = &.{
135846 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
135847 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .tmp0x, ._ },
135848 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135849 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
135850 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135851 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
135852 } },
135853 }, .{
135854 .required_features = .{ .avx, null, null, null },
135855 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135856 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
135857 .patterns = &.{
135858 .{ .src = .{ .to_sse, .none, .none } },
135859 },
135860 .extra_temps = .{
135861 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
135862 .unused,
135863 .unused,
135864 .unused,
135865 .unused,
135866 .unused,
135867 .unused,
135868 .unused,
135869 .unused,
135870 .unused,
135871 .unused,
135872 },
135873 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135874 .each = .{ .once = &.{
135875 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
135876 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .tmp0x, ._ },
135877 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135878 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
135879 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135880 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
135881 } },
135882 }, .{
135883 .required_features = .{ .avx2, null, null, null },
135884 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135885 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
135886 .patterns = &.{
135887 .{ .src = .{ .to_sse, .none, .none } },
135888 },
135889 .extra_temps = .{
135890 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135891 .unused,
135892 .unused,
135893 .unused,
135894 .unused,
135895 .unused,
135896 .unused,
135897 .unused,
135898 .unused,
135899 .unused,
135900 .unused,
135901 },
135902 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135903 .each = .{ .once = &.{
135904 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
135905 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .tmp0x, ._ },
135906 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135907 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
135908 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135909 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
135910 } },
135911 }, .{
135912 .required_features = .{ .avx, null, null, null },
135913 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135914 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
135915 .patterns = &.{
135916 .{ .src = .{ .to_sse, .none, .none } },
135917 },
135918 .extra_temps = .{
135919 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
135920 .unused,
135921 .unused,
135922 .unused,
135923 .unused,
135924 .unused,
135925 .unused,
135926 .unused,
135927 .unused,
135928 .unused,
135929 .unused,
135930 },
135931 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135932 .each = .{ .once = &.{
135933 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
135934 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .tmp0x, ._ },
135935 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135936 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
135937 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
135938 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
135939 } },
135940 }, .{
135941 .required_features = .{ .avx512f, null, null, null },
135942 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
135943 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
135944 .patterns = &.{
135945 .{ .src = .{ .to_mem, .none, .none } },
135946 },
135947 .extra_temps = .{
135948 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135949 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135950 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
135951 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
135952 .unused,
135953 .unused,
135954 .unused,
135955 .unused,
135956 .unused,
135957 .unused,
135958 .unused,
135959 },
135960 .dst_temps = .{ .{ .rc = .sse }, .unused },
135961 .each = .{ .once = &.{
135962 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135963 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
135964 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
135965 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
135966 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
135967 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
135968 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
135969 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
135970 .{ ._, .vp_d, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
135971 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
135972 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135973 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135974 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135975 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135976 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
135977 } },
135978 }, .{
135979 .required_features = .{ .avx512f, null, null, null },
135980 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
135981 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
135982 .patterns = &.{
135983 .{ .src = .{ .to_mem, .none, .none } },
135984 },
135985 .extra_temps = .{
135986 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135987 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135988 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
135989 .unused,
135990 .unused,
135991 .unused,
135992 .unused,
135993 .unused,
135994 .unused,
135995 .unused,
135996 .unused,
135997 },
135998 .dst_temps = .{ .{ .rc = .sse }, .unused },
135999 .each = .{ .once = &.{
136000 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136001 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
136002 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
136003 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
136004 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
136005 .{ ._, .vp_d, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
136006 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
136007 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136008 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136009 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136010 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136011 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136012 } },
136013 }, .{
136014 .required_features = .{ .avx512f, null, null, null },
136015 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136016 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
136017 .patterns = &.{
136018 .{ .src = .{ .to_mem, .none, .none } },
136019 },
136020 .extra_temps = .{
136021 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136022 .unused,
136023 .unused,
136024 .unused,
136025 .unused,
136026 .unused,
136027 .unused,
136028 .unused,
136029 .unused,
136030 .unused,
136031 .unused,
136032 },
136033 .dst_temps = .{ .{ .rc = .sse }, .unused },
136034 .each = .{ .once = &.{
136035 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
136036 .{ ._, .vp_d, .maxs, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
136037 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
136038 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
136039 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
136040 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
136041 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
136042 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
136043 } },
136044 }, .{
136045 .required_features = .{ .avx512f, null, null, null },
136046 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136047 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
136048 .patterns = &.{
136049 .{ .src = .{ .to_mem, .none, .none } },
136050 },
136051 .extra_temps = .{
136052 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
136053 .unused,
136054 .unused,
136055 .unused,
136056 .unused,
136057 .unused,
136058 .unused,
136059 .unused,
136060 .unused,
136061 .unused,
136062 .unused,
136063 },
136064 .dst_temps = .{ .{ .rc = .sse }, .unused },
136065 .each = .{ .once = &.{
136066 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
136067 .{ ._, .vp_d, .maxu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
136068 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
136069 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
136070 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
136071 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
136072 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
136073 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
136074 } },
136075 }, .{
136076 .required_features = .{ .avx2, null, null, null },
136077 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136078 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
136079 .patterns = &.{
136080 .{ .src = .{ .to_mem, .none, .none } },
136081 },
136082 .extra_temps = .{
136083 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136084 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136085 .unused,
136086 .unused,
136087 .unused,
136088 .unused,
136089 .unused,
136090 .unused,
136091 .unused,
136092 .unused,
136093 .unused,
136094 },
136095 .dst_temps = .{ .{ .rc = .sse }, .unused },
136096 .clobbers = .{ .eflags = true },
136097 .each = .{ .once = &.{
136098 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
136099 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
136100 .{ .@"0:", .vp_d, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136101 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
136102 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136103 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
136104 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
136105 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136106 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
136107 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136108 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
136109 } },
136110 }, .{
136111 .required_features = .{ .avx, null, null, null },
136112 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136113 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136114 .patterns = &.{
136115 .{ .src = .{ .to_mem, .none, .none } },
136116 },
136117 .extra_temps = .{
136118 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136119 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136120 .unused,
136121 .unused,
136122 .unused,
136123 .unused,
136124 .unused,
136125 .unused,
136126 .unused,
136127 .unused,
136128 .unused,
136129 },
136130 .dst_temps = .{ .{ .rc = .sse }, .unused },
136131 .clobbers = .{ .eflags = true },
136132 .each = .{ .once = &.{
136133 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136134 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136135 .{ .@"0:", .vp_d, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
136136 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136137 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136138 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136139 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
136140 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136141 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
136142 } },
136143 }, .{
136144 .required_features = .{ .sse4_1, null, null, null },
136145 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136146 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136147 .patterns = &.{
136148 .{ .src = .{ .to_mem, .none, .none } },
136149 },
136150 .extra_temps = .{
136151 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136152 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136153 .unused,
136154 .unused,
136155 .unused,
136156 .unused,
136157 .unused,
136158 .unused,
136159 .unused,
136160 .unused,
136161 .unused,
136162 },
136163 .dst_temps = .{ .{ .rc = .sse }, .unused },
136164 .clobbers = .{ .eflags = true },
136165 .each = .{ .once = &.{
136166 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136167 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136168 .{ .@"0:", .p_d, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
136169 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136170 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136171 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136172 .{ ._, .p_d, .maxs, .dst0x, .tmp1x, ._, ._ },
136173 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136174 .{ ._, .p_d, .maxs, .dst0x, .tmp1x, ._, ._ },
136175 } },
136176 }, .{
136177 .required_features = .{ .sse2, null, null, null },
136178 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136179 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136180 .patterns = &.{
136181 .{ .src = .{ .to_mem, .none, .none } },
136182 },
136183 .extra_temps = .{
136184 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136185 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136186 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136187 .unused,
136188 .unused,
136189 .unused,
136190 .unused,
136191 .unused,
136192 .unused,
136193 .unused,
136194 .unused,
136195 },
136196 .dst_temps = .{ .{ .rc = .sse }, .unused },
136197 .clobbers = .{ .eflags = true },
136198 .each = .{ .once = &.{
136199 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136200 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136201 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
136202 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
136203 .{ ._, .p_d, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
136204 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
136205 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
136206 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
136207 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136208 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136209 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136210 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
136211 .{ ._, .p_d, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
136212 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
136213 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
136214 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
136215 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136216 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
136217 .{ ._, .p_d, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
136218 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
136219 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
136220 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
136221 } },
136222 }, .{
136223 .required_features = .{ .avx2, null, null, null },
136224 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136225 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
136226 .patterns = &.{
136227 .{ .src = .{ .to_mem, .none, .none } },
136228 },
136229 .extra_temps = .{
136230 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136231 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
136232 .unused,
136233 .unused,
136234 .unused,
136235 .unused,
136236 .unused,
136237 .unused,
136238 .unused,
136239 .unused,
136240 .unused,
136241 },
136242 .dst_temps = .{ .{ .rc = .sse }, .unused },
136243 .clobbers = .{ .eflags = true },
136244 .each = .{ .once = &.{
136245 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
136246 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
136247 .{ .@"0:", .vp_d, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136248 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
136249 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136250 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
136251 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
136252 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136253 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
136254 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136255 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
136256 } },
136257 }, .{
136258 .required_features = .{ .avx, null, null, null },
136259 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136260 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136261 .patterns = &.{
136262 .{ .src = .{ .to_mem, .none, .none } },
136263 },
136264 .extra_temps = .{
136265 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136266 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
136267 .unused,
136268 .unused,
136269 .unused,
136270 .unused,
136271 .unused,
136272 .unused,
136273 .unused,
136274 .unused,
136275 .unused,
136276 },
136277 .dst_temps = .{ .{ .rc = .sse }, .unused },
136278 .clobbers = .{ .eflags = true },
136279 .each = .{ .once = &.{
136280 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136281 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136282 .{ .@"0:", .vp_d, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
136283 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136284 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136285 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136286 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
136287 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136288 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
136289 } },
136290 }, .{
136291 .required_features = .{ .sse4_1, null, null, null },
136292 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136293 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136294 .patterns = &.{
136295 .{ .src = .{ .to_mem, .none, .none } },
136296 },
136297 .extra_temps = .{
136298 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136299 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
136300 .unused,
136301 .unused,
136302 .unused,
136303 .unused,
136304 .unused,
136305 .unused,
136306 .unused,
136307 .unused,
136308 .unused,
136309 },
136310 .dst_temps = .{ .{ .rc = .sse }, .unused },
136311 .clobbers = .{ .eflags = true },
136312 .each = .{ .once = &.{
136313 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136314 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136315 .{ .@"0:", .p_d, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
136316 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136317 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136318 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136319 .{ ._, .p_d, .maxu, .dst0x, .tmp1x, ._, ._ },
136320 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136321 .{ ._, .p_d, .maxu, .dst0x, .tmp1x, ._, ._ },
136322 } },
136323 }, .{
136324 .required_features = .{ .sse3, null, null, null },
136325 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136326 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136327 .patterns = &.{
136328 .{ .src = .{ .to_mem, .none, .none } },
136329 },
136330 .extra_temps = .{
136331 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136332 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
136333 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136334 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136335 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136336 .unused,
136337 .unused,
136338 .unused,
136339 .unused,
136340 .unused,
136341 .unused,
136342 },
136343 .dst_temps = .{ .{ .rc = .sse }, .unused },
136344 .clobbers = .{ .eflags = true },
136345 .each = .{ .once = &.{
136346 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136347 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
136348 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136349 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136350 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136351 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
136352 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
136353 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136354 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136355 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136356 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136357 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136358 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136359 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136360 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136361 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136362 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136363 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136364 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136365 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136366 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136367 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136368 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136369 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136370 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136371 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136372 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136373 } },
136374 }, .{
136375 .required_features = .{ .sse2, null, null, null },
136376 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136377 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136378 .patterns = &.{
136379 .{ .src = .{ .to_mem, .none, .none } },
136380 },
136381 .extra_temps = .{
136382 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136383 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
136384 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136385 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136386 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136387 .unused,
136388 .unused,
136389 .unused,
136390 .unused,
136391 .unused,
136392 .unused,
136393 },
136394 .dst_temps = .{ .{ .rc = .sse }, .unused },
136395 .clobbers = .{ .eflags = true },
136396 .each = .{ .once = &.{
136397 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136398 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
136399 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136400 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136401 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136402 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
136403 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
136404 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136405 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136406 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136407 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136408 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136409 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136410 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136411 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136412 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136413 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136414 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136415 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136416 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136417 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136418 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136419 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136420 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136421 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136422 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136423 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136424 } },
136425 }, .{
136426 .required_features = .{ .avx512f, null, null, null },
136427 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136428 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
136429 .patterns = &.{
136430 .{ .src = .{ .to_mem, .none, .none } },
136431 },
136432 .extra_temps = .{
136433 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136434 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136435 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136436 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
136437 .unused,
136438 .unused,
136439 .unused,
136440 .unused,
136441 .unused,
136442 .unused,
136443 .unused,
136444 },
136445 .dst_temps = .{ .{ .rc = .sse }, .unused },
136446 .clobbers = .{ .eflags = true },
136447 .each = .{ .once = &.{
136448 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136449 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
136450 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
136451 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136452 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
136453 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
136454 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136455 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
136456 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
136457 .{ .@"0:", .vp_d, .maxs, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
136458 .{ ._, .vp_d, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136459 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
136460 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136461 .{ ._, .vp_d, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
136462 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
136463 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136464 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136465 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136466 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136467 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136468 } },
136469 }, .{
136470 .required_features = .{ .avx2, null, null, null },
136471 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136472 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
136473 .patterns = &.{
136474 .{ .src = .{ .to_mem, .none, .none } },
136475 },
136476 .extra_temps = .{
136477 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136478 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136479 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136480 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
136481 .unused,
136482 .unused,
136483 .unused,
136484 .unused,
136485 .unused,
136486 .unused,
136487 .unused,
136488 },
136489 .dst_temps = .{ .{ .rc = .sse }, .unused },
136490 .clobbers = .{ .eflags = true },
136491 .each = .{ .once = &.{
136492 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136493 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
136494 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136495 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
136496 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136497 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
136498 .{ .@"0:", .vp_d, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136499 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
136500 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136501 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
136502 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136503 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136504 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136505 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136506 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136507 } },
136508 }, .{
136509 .required_features = .{ .avx, null, null, null },
136510 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136511 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
136512 .patterns = &.{
136513 .{ .src = .{ .to_mem, .none, .none } },
136514 },
136515 .extra_temps = .{
136516 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136517 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136518 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136519 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136520 .unused,
136521 .unused,
136522 .unused,
136523 .unused,
136524 .unused,
136525 .unused,
136526 .unused,
136527 },
136528 .dst_temps = .{ .{ .rc = .sse }, .unused },
136529 .clobbers = .{ .eflags = true },
136530 .each = .{ .once = &.{
136531 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136532 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
136533 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136534 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
136535 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136536 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
136537 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
136538 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136539 .{ .@"0:", .vp_d, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
136540 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136541 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136542 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136543 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136544 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136545 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136546 } },
136547 }, .{
136548 .required_features = .{ .sse4_1, null, null, null },
136549 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136550 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136551 .patterns = &.{
136552 .{ .src = .{ .to_mem, .none, .none } },
136553 },
136554 .extra_temps = .{
136555 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136556 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136557 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136558 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136559 .unused,
136560 .unused,
136561 .unused,
136562 .unused,
136563 .unused,
136564 .unused,
136565 .unused,
136566 },
136567 .dst_temps = .{ .{ .rc = .sse }, .unused },
136568 .clobbers = .{ .eflags = true },
136569 .each = .{ .once = &.{
136570 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136571 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
136572 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136573 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
136574 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
136575 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
136576 .{ .@"0:", .p_d, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
136577 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136578 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136579 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136580 .{ ._, .p_d, .maxs, .dst0x, .tmp3x, ._, ._ },
136581 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136582 .{ ._, .p_d, .maxs, .dst0x, .tmp3x, ._, ._ },
136583 } },
136584 }, .{
136585 .required_features = .{ .sse2, null, null, null },
136586 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136587 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136588 .patterns = &.{
136589 .{ .src = .{ .to_mem, .none, .none } },
136590 },
136591 .extra_temps = .{
136592 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136593 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136594 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136595 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136596 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136597 .unused,
136598 .unused,
136599 .unused,
136600 .unused,
136601 .unused,
136602 .unused,
136603 },
136604 .dst_temps = .{ .{ .rc = .sse }, .unused },
136605 .clobbers = .{ .eflags = true },
136606 .each = .{ .once = &.{
136607 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136608 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
136609 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136610 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
136611 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
136612 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
136613 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
136614 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136615 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136616 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136617 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136618 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136619 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136620 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136621 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136622 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136623 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136624 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136625 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136626 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136627 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
136628 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
136629 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
136630 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
136631 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
136632 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
136633 } },
136634 }, .{
136635 .required_features = .{ .avx512f, null, null, null },
136636 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136637 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
136638 .patterns = &.{
136639 .{ .src = .{ .to_mem, .none, .none } },
136640 },
136641 .extra_temps = .{
136642 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136643 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136644 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
136645 .unused,
136646 .unused,
136647 .unused,
136648 .unused,
136649 .unused,
136650 .unused,
136651 .unused,
136652 .unused,
136653 },
136654 .dst_temps = .{ .{ .rc = .sse }, .unused },
136655 .clobbers = .{ .eflags = true },
136656 .each = .{ .once = &.{
136657 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136658 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
136659 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
136660 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
136661 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
136662 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
136663 .{ .@"0:", .vp_d, .maxu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
136664 .{ ._, .vp_d, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136665 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
136666 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136667 .{ ._, .vp_d, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
136668 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
136669 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136670 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136671 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136672 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136673 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136674 } },
136675 }, .{
136676 .required_features = .{ .avx2, null, null, null },
136677 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136678 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
136679 .patterns = &.{
136680 .{ .src = .{ .to_mem, .none, .none } },
136681 },
136682 .extra_temps = .{
136683 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136684 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136685 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
136686 .unused,
136687 .unused,
136688 .unused,
136689 .unused,
136690 .unused,
136691 .unused,
136692 .unused,
136693 .unused,
136694 },
136695 .dst_temps = .{ .{ .rc = .sse }, .unused },
136696 .clobbers = .{ .eflags = true },
136697 .each = .{ .once = &.{
136698 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136699 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
136700 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
136701 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
136702 .{ .@"0:", .vp_d, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136703 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
136704 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136705 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
136706 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136707 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136708 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136709 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136710 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136711 } },
136712 }, .{
136713 .required_features = .{ .avx, null, null, null },
136714 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136715 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
136716 .patterns = &.{
136717 .{ .src = .{ .to_mem, .none, .none } },
136718 },
136719 .extra_temps = .{
136720 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136721 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136722 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
136723 .unused,
136724 .unused,
136725 .unused,
136726 .unused,
136727 .unused,
136728 .unused,
136729 .unused,
136730 .unused,
136731 },
136732 .dst_temps = .{ .{ .rc = .sse }, .unused },
136733 .clobbers = .{ .eflags = true },
136734 .each = .{ .once = &.{
136735 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136736 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
136737 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
136738 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
136739 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
136740 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136741 .{ .@"0:", .vp_d, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
136742 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136743 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136744 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136745 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136746 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136747 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136748 } },
136749 }, .{
136750 .required_features = .{ .sse4_1, null, null, null },
136751 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136752 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136753 .patterns = &.{
136754 .{ .src = .{ .to_mem, .none, .none } },
136755 },
136756 .extra_temps = .{
136757 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136758 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136759 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
136760 .unused,
136761 .unused,
136762 .unused,
136763 .unused,
136764 .unused,
136765 .unused,
136766 .unused,
136767 .unused,
136768 },
136769 .dst_temps = .{ .{ .rc = .sse }, .unused },
136770 .clobbers = .{ .eflags = true },
136771 .each = .{ .once = &.{
136772 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136773 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
136774 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
136775 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
136776 .{ .@"0:", .p_d, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
136777 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136778 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136779 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136780 .{ ._, .p_d, .maxu, .dst0x, .tmp2x, ._, ._ },
136781 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
136782 .{ ._, .p_d, .maxu, .dst0x, .tmp2x, ._, ._ },
136783 } },
136784 }, .{
136785 .required_features = .{ .sse3, null, null, null },
136786 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136787 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136788 .patterns = &.{
136789 .{ .src = .{ .to_mem, .none, .none } },
136790 },
136791 .extra_temps = .{
136792 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136793 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
136794 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136795 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136796 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136797 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136798 .unused,
136799 .unused,
136800 .unused,
136801 .unused,
136802 .unused,
136803 },
136804 .dst_temps = .{ .{ .rc = .sse }, .unused },
136805 .clobbers = .{ .eflags = true },
136806 .each = .{ .once = &.{
136807 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136808 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
136809 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
136810 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
136811 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
136812 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136813 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
136814 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
136815 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
136816 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
136817 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
136818 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
136819 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
136820 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
136821 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136822 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136823 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
136824 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
136825 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
136826 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
136827 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
136828 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
136829 .{ ._, .p_w, .shufl, .tmp4x, .dst0x, .ui(0b11_10), ._ },
136830 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
136831 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
136832 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
136833 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
136834 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
136835 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136836 } },
136837 }, .{
136838 .required_features = .{ .sse2, null, null, null },
136839 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136840 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
136841 .patterns = &.{
136842 .{ .src = .{ .to_mem, .none, .none } },
136843 },
136844 .extra_temps = .{
136845 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136846 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
136847 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136848 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136849 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136850 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
136851 .unused,
136852 .unused,
136853 .unused,
136854 .unused,
136855 .unused,
136856 },
136857 .dst_temps = .{ .{ .rc = .sse }, .unused },
136858 .clobbers = .{ .eflags = true },
136859 .each = .{ .once = &.{
136860 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136861 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
136862 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
136863 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
136864 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
136865 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136866 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
136867 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
136868 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
136869 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
136870 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
136871 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
136872 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
136873 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
136874 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136875 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136876 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
136877 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
136878 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
136879 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
136880 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
136881 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
136882 .{ ._, .p_w, .shufl, .tmp4x, .dst0x, .ui(0b11_10), ._ },
136883 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
136884 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
136885 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
136886 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
136887 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
136888 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136889 } },
136890 }, .{
136891 .required_features = .{ .cmov, null, null, null },
136892 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136893 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
136894 .patterns = &.{
136895 .{ .src = .{ .to_mem, .none, .none } },
136896 },
136897 .extra_temps = .{
136898 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136899 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
136900 .unused,
136901 .unused,
136902 .unused,
136903 .unused,
136904 .unused,
136905 .unused,
136906 .unused,
136907 .unused,
136908 .unused,
136909 },
136910 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
136911 .clobbers = .{ .eflags = true },
136912 .each = .{ .once = &.{
136913 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
136914 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
136915 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
136916 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
136917 .{ ._, ._l, .cmov, .dst0d, .tmp1d, ._, ._ },
136918 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
136919 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136920 } },
136921 }, .{
136922 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
136923 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
136924 .patterns = &.{
136925 .{ .src = .{ .to_mem, .none, .none } },
136926 },
136927 .extra_temps = .{
136928 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136929 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
136930 .unused,
136931 .unused,
136932 .unused,
136933 .unused,
136934 .unused,
136935 .unused,
136936 .unused,
136937 .unused,
136938 .unused,
136939 },
136940 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
136941 .clobbers = .{ .eflags = true },
136942 .each = .{ .once = &.{
136943 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
136944 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
136945 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
136946 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
136947 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
136948 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
136949 .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
136950 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136951 } },
136952 }, .{
136953 .required_features = .{ .cmov, null, null, null },
136954 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136955 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
136956 .patterns = &.{
136957 .{ .src = .{ .to_mem, .none, .none } },
136958 },
136959 .extra_temps = .{
136960 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136961 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136962 .unused,
136963 .unused,
136964 .unused,
136965 .unused,
136966 .unused,
136967 .unused,
136968 .unused,
136969 .unused,
136970 .unused,
136971 },
136972 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
136973 .clobbers = .{ .eflags = true },
136974 .each = .{ .once = &.{
136975 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
136976 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
136977 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
136978 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
136979 .{ ._, ._b, .cmov, .dst0d, .tmp1d, ._, ._ },
136980 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
136981 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136982 } },
136983 }, .{
136984 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
136985 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
136986 .patterns = &.{
136987 .{ .src = .{ .to_mem, .none, .none } },
136988 },
136989 .extra_temps = .{
136990 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136991 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136992 .unused,
136993 .unused,
136994 .unused,
136995 .unused,
136996 .unused,
136997 .unused,
136998 .unused,
136999 .unused,
137000 .unused,
137001 },
137002 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
137003 .clobbers = .{ .eflags = true },
137004 .each = .{ .once = &.{
137005 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
137006 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
137007 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
137008 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
137009 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
137010 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
137011 .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
137012 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137013 } },
137014 }, .{
137015 .required_features = .{ .avx, null, null, null },
137016 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137017 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137018 .patterns = &.{
137019 .{ .src = .{ .to_sse, .none, .none } },
137020 },
137021 .extra_temps = .{
137022 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137023 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137024 .unused,
137025 .unused,
137026 .unused,
137027 .unused,
137028 .unused,
137029 .unused,
137030 .unused,
137031 .unused,
137032 .unused,
137033 },
137034 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137035 .each = .{ .once = &.{
137036 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137037 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
137038 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
137039 } },
137040 }, .{
137041 .required_features = .{ .sse4_2, null, null, null },
137042 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137043 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137044 .patterns = &.{
137045 .{ .src = .{ .to_mut_sse, .none, .none } },
137046 },
137047 .extra_temps = .{
137048 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137049 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
137050 .unused,
137051 .unused,
137052 .unused,
137053 .unused,
137054 .unused,
137055 .unused,
137056 .unused,
137057 .unused,
137058 .unused,
137059 },
137060 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137061 .each = .{ .once = &.{
137062 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137063 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
137064 .{ ._, .p_q, .cmpgt, .tmp1x, .src0x, ._, ._ },
137065 .{ ._, .p_b, .blendv, .dst0x, .tmp0x, .tmp1x, ._ },
137066 } },
137067 }, .{
137068 .required_features = .{ .avx, null, null, null },
137069 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137070 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137071 .patterns = &.{
137072 .{ .src = .{ .mem, .none, .none } },
137073 .{ .src = .{ .to_sse, .none, .none } },
137074 },
137075 .extra_temps = .{
137076 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137077 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137078 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137079 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137080 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137081 .unused,
137082 .unused,
137083 .unused,
137084 .unused,
137085 .unused,
137086 .unused,
137087 },
137088 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137089 .each = .{ .once = &.{
137090 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137091 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
137092 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
137093 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137094 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137095 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137096 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137097 } },
137098 }, .{
137099 .required_features = .{ .sse4_2, null, null, null },
137100 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137101 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137102 .patterns = &.{
137103 .{ .src = .{ .to_mut_sse, .none, .none } },
137104 },
137105 .extra_temps = .{
137106 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137107 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137108 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137109 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137110 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
137111 .unused,
137112 .unused,
137113 .unused,
137114 .unused,
137115 .unused,
137116 .unused,
137117 },
137118 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137119 .each = .{ .once = &.{
137120 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137121 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
137122 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137123 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137124 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
137125 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
137126 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
137127 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137128 } },
137129 }, .{
137130 .required_features = .{ .avx2, null, null, null },
137131 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137132 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137133 .patterns = &.{
137134 .{ .src = .{ .to_sse, .none, .none } },
137135 },
137136 .extra_temps = .{
137137 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137138 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137139 .unused,
137140 .unused,
137141 .unused,
137142 .unused,
137143 .unused,
137144 .unused,
137145 .unused,
137146 .unused,
137147 .unused,
137148 },
137149 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137150 .each = .{ .once = &.{
137151 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137152 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
137153 .{ ._, .vp_b, .blendv, .tmp0x, .src0x, .tmp0x, .tmp1x },
137154 .{ ._, .v_i128, .extract, .dst0x, .src0y, .ui(1), ._ },
137155 .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
137156 .{ ._, .vp_b, .blendv, .dst0x, .tmp0x, .dst0x, .tmp1x },
137157 } },
137158 }, .{
137159 .required_features = .{ .avx, null, null, null },
137160 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137161 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137162 .patterns = &.{
137163 .{ .src = .{ .to_sse, .none, .none } },
137164 },
137165 .extra_temps = .{
137166 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137167 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137168 .unused,
137169 .unused,
137170 .unused,
137171 .unused,
137172 .unused,
137173 .unused,
137174 .unused,
137175 .unused,
137176 .unused,
137177 },
137178 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137179 .each = .{ .once = &.{
137180 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137181 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
137182 .{ ._, .vp_b, .blendv, .tmp0x, .src0x, .tmp0x, .tmp1x },
137183 .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ },
137184 .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
137185 .{ ._, .vp_b, .blendv, .dst0x, .tmp0x, .dst0x, .tmp1x },
137186 } },
137187 }, .{
137188 .required_features = .{ .avx2, null, null, null },
137189 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137190 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137191 .patterns = &.{
137192 .{ .src = .{ .mem, .none, .none } },
137193 .{ .src = .{ .to_sse, .none, .none } },
137194 },
137195 .extra_temps = .{
137196 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137197 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137198 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137199 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137200 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137201 .unused,
137202 .unused,
137203 .unused,
137204 .unused,
137205 .unused,
137206 .unused,
137207 },
137208 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137209 .each = .{ .once = &.{
137210 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137211 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137212 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
137213 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137214 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137215 .{ ._, .vp_b, .blendv, .tmp3x, .dst0x, .tmp3x, .tmp4x },
137216 .{ ._, .v_i128, .extract, .dst0x, .dst0y, .ui(1), ._ },
137217 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
137218 .{ ._, .vp_b, .blendv, .dst0x, .tmp3x, .dst0x, .tmp4x },
137219 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137220 } },
137221 }, .{
137222 .required_features = .{ .avx, null, null, null },
137223 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137224 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137225 .patterns = &.{
137226 .{ .src = .{ .mem, .none, .none } },
137227 .{ .src = .{ .to_sse, .none, .none } },
137228 },
137229 .extra_temps = .{
137230 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137231 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137232 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137233 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137234 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137235 .unused,
137236 .unused,
137237 .unused,
137238 .unused,
137239 .unused,
137240 .unused,
137241 },
137242 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137243 .each = .{ .once = &.{
137244 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137245 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137246 .{ ._, .v_pd, .xor, .dst0y, .tmp2y, .src0y, ._ },
137247 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137248 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137249 .{ ._, .vp_b, .blendv, .tmp3x, .dst0x, .tmp3x, .tmp4x },
137250 .{ ._, .v_f128, .extract, .dst0x, .dst0y, .ui(1), ._ },
137251 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
137252 .{ ._, .vp_b, .blendv, .dst0x, .tmp3x, .dst0x, .tmp4x },
137253 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137254 } },
137255 }, .{
137256 .required_features = .{ .avx2, null, null, null },
137257 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137258 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137259 .patterns = &.{
137260 .{ .src = .{ .to_sse, .none, .none } },
137261 },
137262 .extra_temps = .{
137263 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137264 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137265 .unused,
137266 .unused,
137267 .unused,
137268 .unused,
137269 .unused,
137270 .unused,
137271 .unused,
137272 .unused,
137273 .unused,
137274 },
137275 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137276 .each = .{ .once = &.{
137277 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
137278 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
137279 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
137280 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
137281 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
137282 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
137283 } },
137284 }, .{
137285 .required_features = .{ .avx, null, null, null },
137286 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137287 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137288 .patterns = &.{
137289 .{ .src = .{ .to_sse, .none, .none } },
137290 },
137291 .extra_temps = .{
137292 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137293 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137294 .unused,
137295 .unused,
137296 .unused,
137297 .unused,
137298 .unused,
137299 .unused,
137300 .unused,
137301 .unused,
137302 .unused,
137303 },
137304 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137305 .each = .{ .once = &.{
137306 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
137307 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
137308 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
137309 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
137310 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
137311 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
137312 } },
137313 }, .{
137314 .required_features = .{ .avx2, null, null, null },
137315 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137316 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137317 .patterns = &.{
137318 .{ .src = .{ .mem, .none, .none } },
137319 .{ .src = .{ .to_sse, .none, .none } },
137320 },
137321 .extra_temps = .{
137322 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137323 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137324 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137325 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137326 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137327 .unused,
137328 .unused,
137329 .unused,
137330 .unused,
137331 .unused,
137332 .unused,
137333 },
137334 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137335 .each = .{ .once = &.{
137336 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137337 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137338 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
137339 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
137340 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137341 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137342 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137343 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137344 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137345 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137346 } },
137347 }, .{
137348 .required_features = .{ .avx, null, null, null },
137349 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137350 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137351 .patterns = &.{
137352 .{ .src = .{ .mem, .none, .none } },
137353 .{ .src = .{ .to_sse, .none, .none } },
137354 },
137355 .extra_temps = .{
137356 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137357 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137358 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137359 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137360 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137361 .unused,
137362 .unused,
137363 .unused,
137364 .unused,
137365 .unused,
137366 .unused,
137367 },
137368 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137369 .each = .{ .once = &.{
137370 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137371 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137372 .{ ._, .v_pd, .xor, .dst0y, .tmp2y, .src0y, ._ },
137373 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
137374 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137375 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137376 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137377 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137378 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137379 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137380 } },
137381 }, .{
137382 .required_features = .{ .avx512f, null, null, null },
137383 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137384 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
137385 .patterns = &.{
137386 .{ .src = .{ .to_mem, .none, .none } },
137387 },
137388 .extra_temps = .{
137389 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137390 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137391 .{ .type = .vector_8_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
137392 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137393 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137394 .unused,
137395 .unused,
137396 .unused,
137397 .unused,
137398 .unused,
137399 .unused,
137400 },
137401 .dst_temps = .{ .{ .rc = .sse }, .unused },
137402 .each = .{ .once = &.{
137403 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137404 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
137405 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
137406 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
137407 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
137408 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
137409 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
137410 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
137411 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
137412 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
137413 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
137414 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137415 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137416 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137417 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137418 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137419 } },
137420 }, .{
137421 .required_features = .{ .avx512f, null, null, null },
137422 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137423 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
137424 .patterns = &.{
137425 .{ .src = .{ .to_mem, .none, .none } },
137426 },
137427 .extra_temps = .{
137428 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137429 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137430 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137431 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137432 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137433 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137434 .unused,
137435 .unused,
137436 .unused,
137437 .unused,
137438 .unused,
137439 },
137440 .dst_temps = .{ .{ .rc = .sse }, .unused },
137441 .each = .{ .once = &.{
137442 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137443 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137444 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
137445 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
137446 .{ ._, .v_dqa, .mov, .tmp4y, .memd(.src0y, 32), ._, ._ },
137447 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
137448 .{ ._, .vp_, .@"and", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
137449 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
137450 .{ ._, .vp_, .xor, .tmp4y, .tmp4y, .tmp2y, ._ },
137451 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp4y, .dst0y, ._ },
137452 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
137453 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
137454 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
137455 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
137456 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
137457 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
137458 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
137459 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137460 } },
137461 }, .{
137462 .required_features = .{ .avx512f, null, null, null },
137463 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137464 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
137465 .patterns = &.{
137466 .{ .src = .{ .to_mem, .none, .none } },
137467 },
137468 .extra_temps = .{
137469 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137470 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137471 .unused,
137472 .unused,
137473 .unused,
137474 .unused,
137475 .unused,
137476 .unused,
137477 .unused,
137478 .unused,
137479 .unused,
137480 },
137481 .dst_temps = .{ .{ .rc = .sse }, .unused },
137482 .each = .{ .once = &.{
137483 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
137484 .{ ._, .v_dqa, .mov, .tmp0y, .memd(.src0y, 32), ._, ._ },
137485 .{ ._, .vp_q, .cmpgt, .tmp1y, .tmp0y, .dst0y, ._ },
137486 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp0y, .tmp1y },
137487 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
137488 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
137489 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
137490 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
137491 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
137492 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
137493 } },
137494 }, .{
137495 .required_features = .{ .avx512f, null, null, null },
137496 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137497 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
137498 .patterns = &.{
137499 .{ .src = .{ .to_mem, .none, .none } },
137500 },
137501 .extra_temps = .{
137502 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137503 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137504 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137505 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137506 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137507 .unused,
137508 .unused,
137509 .unused,
137510 .unused,
137511 .unused,
137512 .unused,
137513 },
137514 .dst_temps = .{ .{ .rc = .sse }, .unused },
137515 .each = .{ .once = &.{
137516 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137517 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137518 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
137519 .{ ._, .vp_, .xor, .tmp3y, .tmp2y, .memd(.src0y, 32), ._ },
137520 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
137521 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
137522 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
137523 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137524 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137525 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137526 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137527 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137528 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137529 } },
137530 }, .{
137531 .required_features = .{ .avx2, null, null, null },
137532 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137533 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137534 .patterns = &.{
137535 .{ .src = .{ .to_mem, .none, .none } },
137536 },
137537 .extra_temps = .{
137538 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137539 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137540 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137541 .unused,
137542 .unused,
137543 .unused,
137544 .unused,
137545 .unused,
137546 .unused,
137547 .unused,
137548 .unused,
137549 },
137550 .dst_temps = .{ .{ .rc = .sse }, .unused },
137551 .clobbers = .{ .eflags = true },
137552 .each = .{ .once = &.{
137553 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
137554 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
137555 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
137556 .{ ._, .vp_q, .cmpgt, .tmp2y, .tmp1y, .dst0y, ._ },
137557 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp1y, .tmp2y },
137558 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
137559 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137560 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
137561 .{ ._, .vp_q, .cmpgt, .tmp2x, .tmp1x, .dst0x, ._ },
137562 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
137563 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
137564 .{ ._, .vp_q, .cmpgt, .tmp2x, .tmp1x, .dst0x, ._ },
137565 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
137566 } },
137567 }, .{
137568 .required_features = .{ .avx, null, null, null },
137569 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137570 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137571 .patterns = &.{
137572 .{ .src = .{ .to_mem, .none, .none } },
137573 },
137574 .extra_temps = .{
137575 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137576 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137577 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137578 .unused,
137579 .unused,
137580 .unused,
137581 .unused,
137582 .unused,
137583 .unused,
137584 .unused,
137585 .unused,
137586 },
137587 .dst_temps = .{ .{ .rc = .sse }, .unused },
137588 .clobbers = .{ .eflags = true },
137589 .each = .{ .once = &.{
137590 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
137591 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
137592 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
137593 .{ ._, .vp_q, .cmpgt, .tmp2x, .tmp1x, .dst0x, ._ },
137594 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
137595 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137596 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137597 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
137598 .{ ._, .vp_q, .cmpgt, .tmp2x, .tmp1x, .dst0x, ._ },
137599 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
137600 } },
137601 }, .{
137602 .required_features = .{ .sse4_2, null, null, null },
137603 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137604 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137605 .patterns = &.{
137606 .{ .src = .{ .to_mem, .none, .none } },
137607 },
137608 .extra_temps = .{
137609 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137610 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137611 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
137612 .unused,
137613 .unused,
137614 .unused,
137615 .unused,
137616 .unused,
137617 .unused,
137618 .unused,
137619 .unused,
137620 },
137621 .dst_temps = .{ .{ .rc = .sse }, .unused },
137622 .clobbers = .{ .eflags = true },
137623 .each = .{ .once = &.{
137624 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
137625 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
137626 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
137627 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
137628 .{ ._, .p_q, .cmpgt, .tmp2x, .dst0x, ._, ._ },
137629 .{ ._, .p_b, .blendv, .dst0x, .tmp1x, .tmp2x, ._ },
137630 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137631 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137632 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
137633 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
137634 .{ ._, .p_q, .cmpgt, .tmp2x, .dst0x, ._, ._ },
137635 .{ ._, .p_b, .blendv, .dst0x, .tmp1x, .tmp2x, ._ },
137636 } },
137637 }, .{
137638 .required_features = .{ .avx2, null, null, null },
137639 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137640 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137641 .patterns = &.{
137642 .{ .src = .{ .to_mem, .none, .none } },
137643 },
137644 .extra_temps = .{
137645 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137646 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137647 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137648 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137649 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137650 .unused,
137651 .unused,
137652 .unused,
137653 .unused,
137654 .unused,
137655 .unused,
137656 },
137657 .dst_temps = .{ .{ .rc = .sse }, .unused },
137658 .clobbers = .{ .eflags = true },
137659 .each = .{ .once = &.{
137660 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137661 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137662 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
137663 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_unaligned_size, -32), ._ },
137664 .{ .@"0:", .vp_, .xor, .tmp3y, .tmp2y, .memi(.src0y, .tmp0), ._ },
137665 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
137666 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
137667 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
137668 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137669 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
137670 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137671 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137672 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137673 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137674 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137675 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137676 } },
137677 }, .{
137678 .required_features = .{ .avx, null, null, null },
137679 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137680 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137681 .patterns = &.{
137682 .{ .src = .{ .to_mem, .none, .none } },
137683 },
137684 .extra_temps = .{
137685 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137686 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137687 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137688 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137689 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137690 .unused,
137691 .unused,
137692 .unused,
137693 .unused,
137694 .unused,
137695 .unused,
137696 },
137697 .dst_temps = .{ .{ .rc = .sse }, .unused },
137698 .clobbers = .{ .eflags = true },
137699 .each = .{ .once = &.{
137700 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137701 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
137702 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
137703 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .memad(.src0x, .add_unaligned_size, -16), ._ },
137704 .{ .@"0:", .vp_, .xor, .tmp3x, .tmp2x, .memi(.src0x, .tmp0), ._ },
137705 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137706 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137707 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137708 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137709 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137710 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137711 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137712 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137713 } },
137714 }, .{
137715 .required_features = .{ .sse4_2, null, null, null },
137716 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137717 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137718 .patterns = &.{
137719 .{ .src = .{ .to_mem, .none, .none } },
137720 },
137721 .extra_temps = .{
137722 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137723 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137724 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137725 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137726 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
137727 .unused,
137728 .unused,
137729 .unused,
137730 .unused,
137731 .unused,
137732 .unused,
137733 },
137734 .dst_temps = .{ .{ .rc = .sse }, .unused },
137735 .clobbers = .{ .eflags = true },
137736 .each = .{ .once = &.{
137737 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137738 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
137739 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
137740 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
137741 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137742 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
137743 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
137744 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
137745 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
137746 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
137747 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137748 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137749 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137750 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
137751 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
137752 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
137753 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137754 } },
137755 }, .{
137756 .required_features = .{ .avx512f, null, null, null },
137757 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137758 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
137759 .patterns = &.{
137760 .{ .src = .{ .to_mem, .none, .none } },
137761 },
137762 .extra_temps = .{
137763 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137764 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137765 .{ .type = .vector_8_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
137766 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137767 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137768 .unused,
137769 .unused,
137770 .unused,
137771 .unused,
137772 .unused,
137773 .unused,
137774 },
137775 .dst_temps = .{ .{ .rc = .sse }, .unused },
137776 .clobbers = .{ .eflags = true },
137777 .each = .{ .once = &.{
137778 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137779 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
137780 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
137781 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
137782 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
137783 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
137784 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
137785 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
137786 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
137787 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
137788 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
137789 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
137790 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
137791 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
137792 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
137793 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137794 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
137795 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137796 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137797 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137798 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137799 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137800 } },
137801 }, .{
137802 .required_features = .{ .avx2, null, null, null },
137803 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137804 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137805 .patterns = &.{
137806 .{ .src = .{ .to_mem, .none, .none } },
137807 },
137808 .extra_temps = .{
137809 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137810 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137811 .{ .type = .vector_4_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
137812 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137813 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137814 .unused,
137815 .unused,
137816 .unused,
137817 .unused,
137818 .unused,
137819 .unused,
137820 },
137821 .dst_temps = .{ .{ .rc = .sse }, .unused },
137822 .clobbers = .{ .eflags = true },
137823 .each = .{ .once = &.{
137824 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137825 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
137826 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
137827 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
137828 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
137829 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
137830 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
137831 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
137832 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
137833 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
137834 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137835 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
137836 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137837 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137838 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137839 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137840 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137841 } },
137842 }, .{
137843 .required_features = .{ .avx, null, null, null },
137844 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137845 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137846 .patterns = &.{
137847 .{ .src = .{ .to_mem, .none, .none } },
137848 },
137849 .extra_temps = .{
137850 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137851 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137852 .{ .type = .vector_4_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
137853 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137854 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137855 .unused,
137856 .unused,
137857 .unused,
137858 .unused,
137859 .unused,
137860 .unused,
137861 },
137862 .dst_temps = .{ .{ .rc = .sse }, .unused },
137863 .clobbers = .{ .eflags = true },
137864 .each = .{ .once = &.{
137865 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137866 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
137867 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
137868 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
137869 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
137870 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
137871 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
137872 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137873 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137874 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
137875 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137876 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137877 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137878 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137879 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137880 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
137881 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
137882 } },
137883 }, .{
137884 .required_features = .{ .sse4_2, null, null, null },
137885 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
137886 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
137887 .patterns = &.{
137888 .{ .src = .{ .to_mem, .none, .none } },
137889 },
137890 .extra_temps = .{
137891 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137892 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137893 .{ .type = .vector_2_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
137894 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
137895 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
137896 .unused,
137897 .unused,
137898 .unused,
137899 .unused,
137900 .unused,
137901 .unused,
137902 },
137903 .dst_temps = .{ .{ .rc = .sse }, .unused },
137904 .clobbers = .{ .eflags = true },
137905 .each = .{ .once = &.{
137906 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137907 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
137908 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
137909 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
137910 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
137911 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
137912 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
137913 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
137914 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
137915 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
137916 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137917 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137918 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137919 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
137920 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
137921 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
137922 } },
137923 }, .{
137924 .required_features = .{ .avx512f, null, null, null },
137925 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137926 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
137927 .patterns = &.{
137928 .{ .src = .{ .to_mem, .none, .none } },
137929 },
137930 .extra_temps = .{
137931 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137932 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137933 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137934 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137935 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137936 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137937 .unused,
137938 .unused,
137939 .unused,
137940 .unused,
137941 .unused,
137942 },
137943 .dst_temps = .{ .{ .rc = .sse }, .unused },
137944 .clobbers = .{ .eflags = true },
137945 .each = .{ .once = &.{
137946 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137947 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137948 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
137949 .{ ._, .v_dqa, .mov, .tmp4y, .memad(.src0y, .add_size, -32), ._, ._ },
137950 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_size, -64), ._, ._ },
137951 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
137952 .{ ._, .vp_, .@"and", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
137953 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
137954 .{ ._, .vp_, .xor, .tmp4y, .tmp4y, .tmp2y, ._ },
137955 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
137956 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp4y, .dst0y, ._ },
137957 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
137958 .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
137959 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp4y, .dst0y, ._ },
137960 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
137961 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
137962 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137963 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
137964 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
137965 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
137966 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
137967 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
137968 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
137969 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137970 } },
137971 }, .{
137972 .required_features = .{ .avx2, null, null, null },
137973 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
137974 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
137975 .patterns = &.{
137976 .{ .src = .{ .to_mem, .none, .none } },
137977 },
137978 .extra_temps = .{
137979 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137980 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137981 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137982 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137983 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137984
137985 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
137986 .unused,
137987 .unused,
137988 .unused,
137989 .unused,
137990 .unused,
137991 },
137992 .dst_temps = .{ .{ .rc = .sse }, .unused },
137993 .clobbers = .{ .eflags = true },
137994 .each = .{ .once = &.{
137995 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137996 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
137997 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
137998 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_size, -32), ._, ._ },
137999 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
138000 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
138001 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
138002 .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
138003 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp4y, .dst0y, ._ },
138004 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
138005 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
138006 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138007 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
138008 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
138009 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
138010 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
138011 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
138012 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
138013 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
138014 } },
138015 }, .{
138016 .required_features = .{ .avx, null, null, null },
138017 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
138018 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
138019 .patterns = &.{
138020 .{ .src = .{ .to_mem, .none, .none } },
138021 },
138022 .extra_temps = .{
138023 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138024 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
138025 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
138026 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138027
138028 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
138029 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
138030 .unused,
138031 .unused,
138032 .unused,
138033 .unused,
138034 .unused,
138035 },
138036 .dst_temps = .{ .{ .rc = .sse }, .unused },
138037 .clobbers = .{ .eflags = true },
138038 .each = .{ .once = &.{
138039 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138040 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
138041 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
138042 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_size, -32), ._, ._ },
138043 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
138044 .{ ._, .v_ps, .xor, .dst0y, .dst0y, .tmp2y, ._ },
138045 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
138046 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
138047 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
138048 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
138049 .{ .@"0:", .vp_, .xor, .tmp4x, .tmp2x, .memi(.src0x, .tmp0), ._ },
138050 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
138051 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
138052 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138053 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138054 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
138055 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
138056 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
138057 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
138058 } },
138059 }, .{
138060 .required_features = .{ .sse4_2, null, null, null },
138061 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
138062 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
138063 .patterns = &.{
138064 .{ .src = .{ .to_mem, .none, .none } },
138065 },
138066 .extra_temps = .{
138067 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138068 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
138069 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
138070 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138071 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
138072 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
138073 .unused,
138074 .unused,
138075 .unused,
138076 .unused,
138077 .unused,
138078 },
138079 .dst_temps = .{ .{ .rc = .sse }, .unused },
138080 .clobbers = .{ .eflags = true },
138081 .each = .{ .once = &.{
138082 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138083 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
138084 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
138085 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
138086 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
138087 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
138088 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
138089 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
138090 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
138091 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
138092 .{ ._, .p_q, .cmpgt, .tmp5x, .dst0x, ._, ._ },
138093 .{ ._, .p_b, .blendv, .dst0x, .tmp4x, .tmp5x, ._ },
138094 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138095 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138096 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
138097 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
138098 .{ ._, .p_q, .cmpgt, .tmp5x, .dst0x, ._, ._ },
138099 .{ ._, .p_b, .blendv, .dst0x, .tmp4x, .tmp5x, ._ },
138100 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
138101 } },
138102 }, .{
138103 .required_features = .{ .@"64bit", .cmov, null, null },
138104 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
138105 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
138106 .patterns = &.{
138107 .{ .src = .{ .to_mem, .none, .none } },
138108 },
138109 .extra_temps = .{
138110 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138111 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
138112 .unused,
138113 .unused,
138114 .unused,
138115 .unused,
138116 .unused,
138117 .unused,
138118 .unused,
138119 .unused,
138120 .unused,
138121 },
138122 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
138123 .clobbers = .{ .eflags = true },
138124 .each = .{ .once = &.{
138125 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
138126 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
138127 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
138128 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
138129 .{ ._, ._l, .cmov, .dst0q, .tmp1q, ._, ._ },
138130 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
138131 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138132 } },
138133 }, .{
138134 .required_features = .{ .@"64bit", null, null, null },
138135 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
138136 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
138137 .patterns = &.{
138138 .{ .src = .{ .to_mem, .none, .none } },
138139 },
138140 .extra_temps = .{
138141 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138142 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
138143 .unused,
138144 .unused,
138145 .unused,
138146 .unused,
138147 .unused,
138148 .unused,
138149 .unused,
138150 .unused,
138151 .unused,
138152 },
138153 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
138154 .clobbers = .{ .eflags = true },
138155 .each = .{ .once = &.{
138156 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
138157 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
138158 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
138159 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
138160 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
138161 .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
138162 .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
138163 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138164 } },
138165 }, .{
138166 .required_features = .{ .@"64bit", .cmov, null, null },
138167 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
138168 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
138169 .patterns = &.{
138170 .{ .src = .{ .to_mem, .none, .none } },
138171 },
138172 .extra_temps = .{
138173 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138174 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
138175 .unused,
138176 .unused,
138177 .unused,
138178 .unused,
138179 .unused,
138180 .unused,
138181 .unused,
138182 .unused,
138183 .unused,
138184 },
138185 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
138186 .clobbers = .{ .eflags = true },
138187 .each = .{ .once = &.{
138188 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
138189 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
138190 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
138191 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
138192 .{ ._, ._b, .cmov, .dst0q, .tmp1q, ._, ._ },
138193 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
138194 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138195 } },
138196 }, .{
138197 .required_features = .{ .@"64bit", null, null, null },
138198 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
138199 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
138200 .patterns = &.{
138201 .{ .src = .{ .to_mem, .none, .none } },
138202 },
138203 .extra_temps = .{
138204 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138205 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
138206 .unused,
138207 .unused,
138208 .unused,
138209 .unused,
138210 .unused,
138211 .unused,
138212 .unused,
138213 .unused,
138214 .unused,
138215 },
138216 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
138217 .clobbers = .{ .eflags = true },
138218 .each = .{ .once = &.{
138219 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
138220 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
138221 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
138222 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
138223 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
138224 .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
138225 .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
138226 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138227 } },
138228 }, .{
138229 .required_features = .{ .@"64bit", .cmov, null, null },
138230 .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
138231 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
138232 .patterns = &.{
138233 .{ .src = .{ .to_mem, .none, .none } },
138234 },
138235 .extra_temps = .{
138236 .{ .type = .u32, .kind = .{ .reg = .rdi } },
138237 .{ .type = .usize, .kind = .{ .reg = .rsi } },
138238 .{ .type = .isize, .kind = .{ .reg = .rcx } },
138239 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138240 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
138241 .unused,
138242 .unused,
138243 .unused,
138244 .unused,
138245 .unused,
138246 .unused,
138247 },
138248 .dst_temps = .{ .mem, .unused },
138249 .clobbers = .{ .eflags = true },
138250 .each = .{ .once = &.{
138251 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
138252 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
138253 .{ .@"0:", ._, .mov, .tmp2p, .sia(1, .dst0, .sub_size_div_8), ._, ._ },
138254 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
138255 .{ ._, ._c, .cl, ._, ._, ._, ._ },
138256 .{ .@"1:", ._, .mov, .tmp4q, .leasiad(.tmp1q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
138257 .{ ._, ._, .sbb, .tmp4q, .leasiad(.tmp3q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
138258 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
138259 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
138260 .{ ._, ._, .mov, .tmp4q, .leaad(.tmp1q, .add_src0_elem_size, -8), ._, ._ },
138261 .{ ._, ._, .sbb, .tmp4q, .leaad(.tmp3q, .add_src0_elem_size, -8), ._, ._ },
138262 .{ ._, ._l, .cmov, .tmp1p, .tmp3p, ._, ._ },
138263 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
138264 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138265 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
138266 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
138267 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
138268 } },
138269 }, .{
138270 .required_features = .{ .@"64bit", null, null, null },
138271 .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
138272 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
138273 .patterns = &.{
138274 .{ .src = .{ .to_mem, .none, .none } },
138275 },
138276 .extra_temps = .{
138277 .{ .type = .u32, .kind = .{ .reg = .rdi } },
138278 .{ .type = .usize, .kind = .{ .reg = .rsi } },
138279 .{ .type = .isize, .kind = .{ .reg = .rcx } },
138280 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138281 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
138282 .unused,
138283 .unused,
138284 .unused,
138285 .unused,
138286 .unused,
138287 .unused,
138288 },
138289 .dst_temps = .{ .mem, .unused },
138290 .clobbers = .{ .eflags = true },
138291 .each = .{ .once = &.{
138292 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
138293 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
138294 .{ .@"0:", ._, .mov, .tmp2p, .sia(1, .dst0, .sub_size_div_8), ._, ._ },
138295 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
138296 .{ ._, ._c, .cl, ._, ._, ._, ._ },
138297 .{ .@"1:", ._, .mov, .tmp4q, .leasiad(.tmp1q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
138298 .{ ._, ._, .sbb, .tmp4q, .leasiad(.tmp3q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
138299 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
138300 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
138301 .{ ._, ._, .mov, .tmp4q, .leaad(.tmp1q, .add_src0_elem_size, -8), ._, ._ },
138302 .{ ._, ._, .sbb, .tmp4q, .leaad(.tmp3q, .add_src0_elem_size, -8), ._, ._ },
138303 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
138304 .{ ._, ._, .mov, .tmp1p, .tmp3p, ._, ._ },
138305 .{ .@"1:", ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
138306 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138307 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
138308 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
138309 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
138310 } },
138311 }, .{
138312 .required_features = .{ .@"64bit", .cmov, null, null },
138313 .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any },
138314 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
138315 .patterns = &.{
138316 .{ .src = .{ .to_mem, .none, .none } },
138317 },
138318 .extra_temps = .{
138319 .{ .type = .u32, .kind = .{ .reg = .rdi } },
138320 .{ .type = .usize, .kind = .{ .reg = .rsi } },
138321 .{ .type = .isize, .kind = .{ .reg = .rcx } },
138322 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138323 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
138324 .unused,
138325 .unused,
138326 .unused,
138327 .unused,
138328 .unused,
138329 .unused,
138330 },
138331 .dst_temps = .{ .mem, .unused },
138332 .clobbers = .{ .eflags = true },
138333 .each = .{ .once = &.{
138334 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
138335 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
138336 .{ .@"0:", ._, .mov, .tmp2p, .sa(.dst0, .sub_size_div_8), ._, ._ },
138337 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
138338 .{ ._, ._c, .cl, ._, ._, ._, ._ },
138339 .{ .@"1:", ._, .mov, .tmp4q, .leasia(.tmp1q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
138340 .{ ._, ._, .sbb, .tmp4q, .leasia(.tmp3q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
138341 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
138342 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
138343 .{ ._, ._b, .cmov, .tmp1p, .tmp3p, ._, ._ },
138344 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
138345 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138346 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
138347 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
138348 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
138349 } },
138350 }, .{
138351 .required_features = .{ .@"64bit", null, null, null },
138352 .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any },
138353 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
138354 .patterns = &.{
138355 .{ .src = .{ .to_mem, .none, .none } },
138356 },
138357 .extra_temps = .{
138358 .{ .type = .u32, .kind = .{ .reg = .rdi } },
138359 .{ .type = .usize, .kind = .{ .reg = .rsi } },
138360 .{ .type = .isize, .kind = .{ .reg = .rcx } },
138361 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138362 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
138363 .unused,
138364 .unused,
138365 .unused,
138366 .unused,
138367 .unused,
138368 .unused,
138369 },
138370 .dst_temps = .{ .mem, .unused },
138371 .clobbers = .{ .eflags = true },
138372 .each = .{ .once = &.{
138373 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
138374 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
138375 .{ .@"0:", ._, .mov, .tmp2p, .sa(.dst0, .sub_size_div_8), ._, ._ },
138376 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
138377 .{ ._, ._c, .cl, ._, ._, ._, ._ },
138378 .{ .@"1:", ._, .mov, .tmp4q, .leasia(.tmp1q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
138379 .{ ._, ._, .sbb, .tmp4q, .leasia(.tmp3q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
138380 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
138381 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
138382 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
138383 .{ ._, ._, .mov, .tmp1p, .tmp3p, ._, ._ },
138384 .{ .@"1:", ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
138385 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138386 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
138387 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
138388 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
138389 } },
138390 } },
138391 .Add => comptime &.{ .{
138392 .required_features = .{ .avx, null, null, null },
138393 .dst_constraints = .{ .{ .int = .byte }, .any },
138394 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
138395 .patterns = &.{
138396 .{ .src = .{ .to_sse, .none, .none } },
138397 },
138398 .extra_temps = .{
138399 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138400 .unused,
138401 .unused,
138402 .unused,
138403 .unused,
138404 .unused,
138405 .unused,
138406 .unused,
138407 .unused,
138408 .unused,
138409 .unused,
138410 },
138411 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138412 .each = .{ .once = &.{
138413 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
138414 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
138415 } },
138416 }, .{
138417 .required_features = .{ .sse2, null, null, null },
138418 .dst_constraints = .{ .{ .int = .byte }, .any },
138419 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
138420 .patterns = &.{
138421 .{ .src = .{ .to_mut_sse, .none, .none } },
138422 },
138423 .extra_temps = .{
138424 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138425 .unused,
138426 .unused,
138427 .unused,
138428 .unused,
138429 .unused,
138430 .unused,
138431 .unused,
138432 .unused,
138433 .unused,
138434 .unused,
138435 },
138436 .dst_temps = .{ .{ .ref = .src0 }, .unused },
138437 .each = .{ .once = &.{
138438 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
138439 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
138440 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
138441 } },
138442 }, .{
138443 .required_features = .{ .avx, null, null, null },
138444 .dst_constraints = .{ .{ .int = .byte }, .any },
138445 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
138446 .patterns = &.{
138447 .{ .src = .{ .to_sse, .none, .none } },
138448 },
138449 .extra_temps = .{
138450 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138451 .unused,
138452 .unused,
138453 .unused,
138454 .unused,
138455 .unused,
138456 .unused,
138457 .unused,
138458 .unused,
138459 .unused,
138460 .unused,
138461 },
138462 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138463 .each = .{ .once = &.{
138464 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
138465 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
138466 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
138467 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
138468 } },
138469 }, .{
138470 .required_features = .{ .sse2, null, null, null },
138471 .dst_constraints = .{ .{ .int = .byte }, .any },
138472 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
138473 .patterns = &.{
138474 .{ .src = .{ .to_mut_sse, .none, .none } },
138475 },
138476 .extra_temps = .{
138477 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138478 .unused,
138479 .unused,
138480 .unused,
138481 .unused,
138482 .unused,
138483 .unused,
138484 .unused,
138485 .unused,
138486 .unused,
138487 .unused,
138488 },
138489 .dst_temps = .{ .{ .ref = .src0 }, .unused },
138490 .each = .{ .once = &.{
138491 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
138492 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
138493 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
138494 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
138495 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
138496 } },
138497 }, .{
138498 .required_features = .{ .avx, null, null, null },
138499 .dst_constraints = .{ .{ .int = .byte }, .any },
138500 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
138501 .patterns = &.{
138502 .{ .src = .{ .to_sse, .none, .none } },
138503 },
138504 .extra_temps = .{
138505 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138506 .unused,
138507 .unused,
138508 .unused,
138509 .unused,
138510 .unused,
138511 .unused,
138512 .unused,
138513 .unused,
138514 .unused,
138515 .unused,
138516 },
138517 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138518 .each = .{ .once = &.{
138519 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
138520 .{ ._, .vp_b, .add, .tmp0x, .src0x, .tmp0x, ._ },
138521 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
138522 .{ ._, .vp_b, .add, .dst0x, .tmp0x, .dst0x, ._ },
138523 } },
138524 }, .{
138525 .required_features = .{ .sse2, null, null, null },
138526 .dst_constraints = .{ .{ .int = .byte }, .any },
138527 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
138528 .patterns = &.{
138529 .{ .src = .{ .to_mut_sse, .none, .none } },
138530 },
138531 .extra_temps = .{
138532 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138533 .unused,
138534 .unused,
138535 .unused,
138536 .unused,
138537 .unused,
138538 .unused,
138539 .unused,
138540 .unused,
138541 .unused,
138542 .unused,
138543 },
138544 .dst_temps = .{ .{ .ref = .src0 }, .unused },
138545 .each = .{ .once = &.{
138546 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
138547 .{ ._, .p_b, .add, .tmp0x, .src0x, ._, ._ },
138548 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
138549 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
138550 } },
138551 }, .{
138552 .required_features = .{ .avx, null, null, null },
138553 .dst_constraints = .{ .{ .int = .byte }, .any },
138554 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
138555 .patterns = &.{
138556 .{ .src = .{ .to_sse, .none, .none } },
138557 },
138558 .extra_temps = .{
138559 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138560 .unused,
138561 .unused,
138562 .unused,
138563 .unused,
138564 .unused,
138565 .unused,
138566 .unused,
138567 .unused,
138568 .unused,
138569 .unused,
138570 },
138571 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138572 .each = .{ .once = &.{
138573 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
138574 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
138575 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
138576 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
138577 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
138578 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
138579 } },
138580 }, .{
138581 .required_features = .{ .sse2, null, null, null },
138582 .dst_constraints = .{ .{ .int = .byte }, .any },
138583 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
138584 .patterns = &.{
138585 .{ .src = .{ .to_mut_sse, .none, .none } },
138586 },
138587 .extra_temps = .{
138588 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138589 .unused,
138590 .unused,
138591 .unused,
138592 .unused,
138593 .unused,
138594 .unused,
138595 .unused,
138596 .unused,
138597 .unused,
138598 .unused,
138599 },
138600 .dst_temps = .{ .{ .ref = .src0 }, .unused },
138601 .each = .{ .once = &.{
138602 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
138603 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
138604 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
138605 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
138606 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
138607 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
138608 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
138609 } },
138610 }, .{
138611 .required_features = .{ .avx, null, null, null },
138612 .dst_constraints = .{ .{ .int = .byte }, .any },
138613 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
138614 .patterns = &.{
138615 .{ .src = .{ .to_sse, .none, .none } },
138616 },
138617 .extra_temps = .{
138618 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138619 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138620 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
138621 .unused,
138622 .unused,
138623 .unused,
138624 .unused,
138625 .unused,
138626 .unused,
138627 .unused,
138628 .unused,
138629 },
138630 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138631 .each = .{ .once = &.{
138632 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138633 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
138634 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138635 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
138636 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
138637 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
138638 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
138639 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
138640 } },
138641 }, .{
138642 .required_features = .{ .sse2, null, null, null },
138643 .dst_constraints = .{ .{ .int = .byte }, .any },
138644 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
130550138645 .patterns = &.{
130551138646 .{ .src = .{ .to_mut_sse, .none, .none } },
130552138647 },
......@@ -162641,10 +170736,10 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
162641170736 ) else try self.asmRegisterRegister(
162642170737 .{ mir_tag[0], .andn },
162643170738 mask_alias,
162644 if (rhs_mcv.isRegister())
170739 registerAlias(if (rhs_mcv.isRegister())
162645170740 rhs_mcv.getReg().?
162646170741 else
162647 try self.copyToTmpRegister(ty, rhs_mcv),
170742 try self.copyToTmpRegister(ty, rhs_mcv), abi_size),
162648170743 );
162649170744 try self.asmRegisterRegister(.{ mir_tag[0], .@"or" }, dst_alias, mask_alias);
162650170745 }
src/codegen/c/Type.zig+15
......@@ -1747,6 +1747,21 @@ pub const Pool = struct {
17471747 };
17481748 return pool.fromFields(allocator, .@"struct", &fields, kind);
17491749 },
1750 .vector_2_i32_type => {
1751 const vector_ctype = try pool.getVector(allocator, .{
1752 .elem_ctype = .i32,
1753 .len = 2,
1754 });
1755 if (!kind.isParameter()) return vector_ctype;
1756 var fields = [_]Info.Field{
1757 .{
1758 .name = .{ .index = .array },
1759 .ctype = vector_ctype,
1760 .alignas = AlignAs.fromAbiAlignment(Type.i32.abiAlignment(zcu)),
1761 },
1762 };
1763 return pool.fromFields(allocator, .@"struct", &fields, kind);
1764 },
17501765 .vector_4_i32_type => {
17511766 const vector_ctype = try pool.getVector(allocator, .{
17521767 .elem_ctype = .i32,
test/behavior/x86_64/unary.zig+8
......@@ -5102,6 +5102,14 @@ test reduceMin {
51025102 try test_reduce_min.testIntVectors();
51035103}
51045104
5105inline fn reduceMax(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5106 return @reduce(.Max, rhs);
5107}
5108test reduceMax {
5109 const test_reduce_max = unary(reduceMax, .{});
5110 try test_reduce_max.testIntVectors();
5111}
5112
51055113inline fn reduceAdd(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
51065114 return @reduce(.Add, rhs);
51075115}
test/cases/compile_errors/@import_zon_bad_type.zig+3-3
......@@ -117,9 +117,9 @@ export fn testMutablePointer() void {
117117// tmp.zig:37:38: note: imported here
118118// neg_inf.zon:1:1: error: expected type '?u8'
119119// tmp.zig:57:28: note: imported here
120// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_517'
120// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_518'
121121// tmp.zig:62:39: note: imported here
122// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_519'
122// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_520'
123123// tmp.zig:67:44: note: imported here
124// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_522'
124// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_523'
125125// tmp.zig:72:50: note: imported here
test/cases/compile_errors/anytype_param_requires_comptime.zig+1-1
......@@ -15,6 +15,6 @@ pub export fn entry() void {
1515// error
1616//
1717// :7:25: error: unable to resolve comptime value
18// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_491.C' must be comptime-known
18// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_492.C' must be comptime-known
1919// :4:16: note: struct requires comptime because of this field
2020// :4:16: note: types are not available at runtime
test/cases/compile_errors/bogus_method_call_on_slice.zig+1-1
......@@ -16,5 +16,5 @@ pub export fn entry2() void {
1616//
1717// :3:6: error: no field or member function named 'copy' in '[]const u8'
1818// :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})'
19// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_495'
19// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_496'
2020// :12:6: note: struct declared here
test/cases/compile_errors/coerce_anon_struct.zig+1-1
......@@ -6,6 +6,6 @@ export fn foo() void {
66
77// error
88//
9// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_484'
9// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_485'
1010// :3:16: note: struct declared here
1111// :1:11: note: struct declared here
test/cases/compile_errors/redundant_try.zig+2-2
......@@ -44,9 +44,9 @@ comptime {
4444//
4545// :5:23: error: expected error union type, found 'comptime_int'
4646// :10:23: error: expected error union type, found '@TypeOf(.{})'
47// :15:23: error: expected error union type, found 'tmp.test2__struct_521'
47// :15:23: error: expected error union type, found 'tmp.test2__struct_522'
4848// :15:23: note: struct declared here
49// :20:27: error: expected error union type, found 'tmp.test3__struct_523'
49// :20:27: error: expected error union type, found 'tmp.test3__struct_524'
5050// :20:27: note: struct declared here
5151// :25:23: error: expected error union type, found 'struct { comptime *const [5:0]u8 = "hello" }'
5252// :31:13: error: expected error union type, found 'u32'