authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-28 21:37:02-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-05-28 21:37:02-04:00
logf25212a479c4f26566b6b851e245e49c6f508b96
tree2c6a1420d007f4fffbb15a12e1ae7363da35f52d
parent4f3b59f708058ce4e4b6a1cacd2a3dae6e1c7aae
parent9f9e7e398f045c08a6652920af741c9f6569689e
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #23924 from jacobly0/x86_64-rewrite

x86_64: implement reduce

41 files changed, 47124 insertions(+), 1383 deletions(-)

lib/std/crypto/Certificate.zig+13-19
...@@ -607,7 +607,7 @@ const Date = struct {...@@ -607,7 +607,7 @@ const Date = struct {
607 while (month < date.month) : (month += 1) {607 while (month < date.month) : (month += 1) {
608 const days: u64 = std.time.epoch.getDaysInMonth(608 const days: u64 = std.time.epoch.getDaysInMonth(
609 date.year,609 date.year,
610 @as(std.time.epoch.Month, @enumFromInt(month)),610 @enumFromInt(month),
611 );611 );
612 sec += days * std.time.epoch.secs_per_day;612 sec += days * std.time.epoch.secs_per_day;
613 }613 }
...@@ -623,15 +623,13 @@ const Date = struct {...@@ -623,15 +623,13 @@ const Date = struct {
623};623};
624624
625pub fn parseTimeDigits(text: *const [2]u8, min: u8, max: u8) !u8 {625pub fn parseTimeDigits(text: *const [2]u8, min: u8, max: u8) !u8 {
626 const result = if (use_vectors) result: {626 const nn: @Vector(2, u16) = .{ text[0], text[1] };
627 const nn: @Vector(2, u16) = .{ text[0], text[1] };627 const zero: @Vector(2, u16) = .{ '0', '0' };
628 const zero: @Vector(2, u16) = .{ '0', '0' };628 const mm: @Vector(2, u16) = .{ 10, 1 };
629 const mm: @Vector(2, u16) = .{ 10, 1 };629 const result = @reduce(.Add, (nn -% zero) *% mm);
630 break :result @reduce(.Add, (nn -% zero) *% mm);
631 } else std.fmt.parseInt(u8, text, 10) catch return error.CertificateTimeInvalid;
632 if (result < min) return error.CertificateTimeInvalid;630 if (result < min) return error.CertificateTimeInvalid;
633 if (result > max) return error.CertificateTimeInvalid;631 if (result > max) return error.CertificateTimeInvalid;
634 return @truncate(result);632 return @intCast(result);
635}633}
636634
637test parseTimeDigits {635test parseTimeDigits {
...@@ -647,14 +645,12 @@ test parseTimeDigits {...@@ -647,14 +645,12 @@ test parseTimeDigits {
647}645}
648646
649pub fn parseYear4(text: *const [4]u8) !u16 {647pub fn parseYear4(text: *const [4]u8) !u16 {
650 const result = if (use_vectors) result: {648 const nnnn: @Vector(4, u32) = .{ text[0], text[1], text[2], text[3] };
651 const nnnn: @Vector(4, u32) = .{ text[0], text[1], text[2], text[3] };649 const zero: @Vector(4, u32) = .{ '0', '0', '0', '0' };
652 const zero: @Vector(4, u32) = .{ '0', '0', '0', '0' };650 const mmmm: @Vector(4, u32) = .{ 1000, 100, 10, 1 };
653 const mmmm: @Vector(4, u32) = .{ 1000, 100, 10, 1 };651 const result = @reduce(.Add, (nnnn -% zero) *% mmmm);
654 break :result @reduce(.Add, (nnnn -% zero) *% mmmm);
655 } else std.fmt.parseInt(u16, text, 10) catch return error.CertificateTimeInvalid;
656 if (result > 9999) return error.CertificateTimeInvalid;652 if (result > 9999) return error.CertificateTimeInvalid;
657 return @truncate(result);653 return @intCast(result);
658}654}
659655
660test parseYear4 {656test parseYear4 {
...@@ -858,7 +854,7 @@ pub const der = struct {...@@ -858,7 +854,7 @@ pub const der = struct {
858854
859 pub fn parse(bytes: []const u8, index: u32) Element.ParseError!Element {855 pub fn parse(bytes: []const u8, index: u32) Element.ParseError!Element {
860 var i = index;856 var i = index;
861 const identifier = @as(Identifier, @bitCast(bytes[i]));857 const identifier: Identifier = @bitCast(bytes[i]);
862 i += 1;858 i += 1;
863 const size_byte = bytes[i];859 const size_byte = bytes[i];
864 i += 1;860 i += 1;
...@@ -872,7 +868,7 @@ pub const der = struct {...@@ -872,7 +868,7 @@ pub const der = struct {
872 };868 };
873 }869 }
874870
875 const len_size = @as(u7, @truncate(size_byte));871 const len_size: u7 = @truncate(size_byte);
876 if (len_size > @sizeOf(u32)) {872 if (len_size > @sizeOf(u32)) {
877 return error.CertificateFieldHasInvalidLength;873 return error.CertificateFieldHasInvalidLength;
878 }874 }
...@@ -1244,5 +1240,3 @@ pub const rsa = struct {...@@ -1244,5 +1240,3 @@ pub const rsa = struct {
1244 return res;1240 return res;
1245 }1241 }
1246};1242};
1247
1248const use_vectors = @import("builtin").zig_backend != .stage2_x86_64;
lib/std/crypto/timing_safe.zig-2
...@@ -192,8 +192,6 @@ test eql {...@@ -192,8 +192,6 @@ test eql {
192}192}
193193
194test "eql (vectors)" {194test "eql (vectors)" {
195 if (@import("builtin").zig_backend == .stage2_x86_64) return error.SkipZigTest;
196
197 const random = std.crypto.random;195 const random = std.crypto.random;
198 const expect = std.testing.expect;196 const expect = std.testing.expect;
199 var a: [100]u8 = undefined;197 var a: [100]u8 = undefined;
lib/std/http/Client.zig+5-8
...@@ -13,7 +13,6 @@ const net = std.net;...@@ -13,7 +13,6 @@ const net = std.net;
13const Uri = std.Uri;13const Uri = std.Uri;
14const Allocator = mem.Allocator;14const Allocator = mem.Allocator;
15const assert = std.debug.assert;15const assert = std.debug.assert;
16const use_vectors = builtin.zig_backend != .stage2_x86_64;
1716
18const Client = @This();17const Client = @This();
19const proto = @import("protocol.zig");18const proto = @import("protocol.zig");
...@@ -594,13 +593,10 @@ pub const Response = struct {...@@ -594,13 +593,10 @@ pub const Response = struct {
594 }593 }
595594
596 fn parseInt3(text: *const [3]u8) u10 {595 fn parseInt3(text: *const [3]u8) u10 {
597 if (use_vectors) {596 const nnn: @Vector(3, u8) = text.*;
598 const nnn: @Vector(3, u8) = text.*;597 const zero: @Vector(3, u8) = .{ '0', '0', '0' };
599 const zero: @Vector(3, u8) = .{ '0', '0', '0' };598 const mmm: @Vector(3, u10) = .{ 100, 10, 1 };
600 const mmm: @Vector(3, u10) = .{ 100, 10, 1 };599 return @reduce(.Add, (nnn -% zero) *% mmm);
601 return @reduce(.Add, @as(@Vector(3, u10), nnn -% zero) *% mmm);
602 }
603 return std.fmt.parseInt(u10, text, 10) catch unreachable;
604 }600 }
605601
606 test parseInt3 {602 test parseInt3 {
...@@ -1796,5 +1792,6 @@ pub fn fetch(client: *Client, options: FetchOptions) !FetchResult {...@@ -1796,5 +1792,6 @@ pub fn fetch(client: *Client, options: FetchOptions) !FetchResult {
1796}1792}
17971793
1798test {1794test {
1795 _ = Response;
1799 _ = &initDefaultProxies;1796 _ = &initDefaultProxies;
1800}1797}
lib/std/http/HeadParser.zig+14-21
...@@ -109,27 +109,21 @@ pub fn feed(p: *HeadParser, bytes: []const u8) usize {...@@ -109,27 +109,21 @@ pub fn feed(p: *HeadParser, bytes: []const u8) usize {
109 continue;109 continue;
110 },110 },
111 else => {111 else => {
112 const Vector = @Vector(vector_len, u8);
113 // const BoolVector = @Vector(vector_len, bool);
114 const BitVector = @Vector(vector_len, u1);
115 const SizeVector = @Vector(vector_len, u8);
116
112 const chunk = bytes[index..][0..vector_len];117 const chunk = bytes[index..][0..vector_len];
113 const matches = if (use_vectors) matches: {118 const v: Vector = chunk.*;
114 const Vector = @Vector(vector_len, u8);119 // depends on https://github.com/ziglang/zig/issues/19755
115 // const BoolVector = @Vector(vector_len, bool);120 // const matches_r: BitVector = @bitCast(v == @as(Vector, @splat('\r')));
116 const BitVector = @Vector(vector_len, u1);121 // const matches_n: BitVector = @bitCast(v == @as(Vector, @splat('\n')));
117 const SizeVector = @Vector(vector_len, u8);122 const matches_r: BitVector = @select(u1, v == @as(Vector, @splat('\r')), @as(Vector, @splat(1)), @as(Vector, @splat(0)));
118123 const matches_n: BitVector = @select(u1, v == @as(Vector, @splat('\n')), @as(Vector, @splat(1)), @as(Vector, @splat(0)));
119 const v: Vector = chunk.*;124 const matches_or: SizeVector = matches_r | matches_n;
120 const matches_r: BitVector = @bitCast(v == @as(Vector, @splat('\r')));125
121 const matches_n: BitVector = @bitCast(v == @as(Vector, @splat('\n')));126 const matches = @reduce(.Add, matches_or);
122 const matches_or: SizeVector = matches_r | matches_n;
123
124 break :matches @reduce(.Add, matches_or);
125 } else matches: {
126 var matches: u8 = 0;
127 for (chunk) |byte| switch (byte) {
128 '\r', '\n' => matches += 1,
129 else => {},
130 };
131 break :matches matches;
132 };
133 switch (matches) {127 switch (matches) {
134 0 => {},128 0 => {},
135 1 => switch (chunk[vector_len - 1]) {129 1 => switch (chunk[vector_len - 1]) {
...@@ -357,7 +351,6 @@ inline fn intShift(comptime T: type, x: anytype) T {...@@ -357,7 +351,6 @@ inline fn intShift(comptime T: type, x: anytype) T {
357351
358const HeadParser = @This();352const HeadParser = @This();
359const std = @import("std");353const std = @import("std");
360const use_vectors = builtin.zig_backend != .stage2_x86_64;
361const builtin = @import("builtin");354const builtin = @import("builtin");
362355
363test feed {356test feed {
lib/std/simd.zig+2-1
...@@ -368,7 +368,8 @@ pub fn countElementsWithValue(vec: anytype, value: std.meta.Child(@TypeOf(vec)))...@@ -368,7 +368,8 @@ pub fn countElementsWithValue(vec: anytype, value: std.meta.Child(@TypeOf(vec)))
368}368}
369369
370test "vector searching" {370test "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
373 const base = @Vector(8, u32){ 6, 4, 7, 4, 4, 2, 3, 7 };374 const base = @Vector(8, u32){ 6, 4, 7, 4, 4, 2, 3, 7 };
374375
lib/std/zig/Zir.zig+18-1
...@@ -2142,7 +2142,7 @@ pub const Inst = struct {...@@ -2142,7 +2142,7 @@ pub const Inst = struct {
2142 ref_start_index = static_len,2142 ref_start_index = static_len,
2143 _,2143 _,
21442144
2145 pub const static_len = 101;2145 pub const static_len = 118;
21462146
2147 pub fn toRef(i: Index) Inst.Ref {2147 pub fn toRef(i: Index) Inst.Ref {
2148 return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i));2148 return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i));
...@@ -2190,6 +2190,7 @@ pub const Inst = struct {...@@ -2190,6 +2190,7 @@ pub const Inst = struct {
2190 u80_type,2190 u80_type,
2191 u128_type,2191 u128_type,
2192 i128_type,2192 i128_type,
2193 u256_type,
2193 usize_type,2194 usize_type,
2194 isize_type,2195 isize_type,
2195 c_char_type,2196 c_char_type,
...@@ -2228,34 +2229,50 @@ pub const Inst = struct {...@@ -2228,34 +2229,50 @@ pub const Inst = struct {
2228 vector_8_i8_type,2229 vector_8_i8_type,
2229 vector_16_i8_type,2230 vector_16_i8_type,
2230 vector_32_i8_type,2231 vector_32_i8_type,
2232 vector_64_i8_type,
2231 vector_1_u8_type,2233 vector_1_u8_type,
2232 vector_2_u8_type,2234 vector_2_u8_type,
2233 vector_4_u8_type,2235 vector_4_u8_type,
2234 vector_8_u8_type,2236 vector_8_u8_type,
2235 vector_16_u8_type,2237 vector_16_u8_type,
2236 vector_32_u8_type,2238 vector_32_u8_type,
2239 vector_64_u8_type,
2240 vector_2_i16_type,
2237 vector_4_i16_type,2241 vector_4_i16_type,
2238 vector_8_i16_type,2242 vector_8_i16_type,
2239 vector_16_i16_type,2243 vector_16_i16_type,
2244 vector_32_i16_type,
2240 vector_4_u16_type,2245 vector_4_u16_type,
2241 vector_8_u16_type,2246 vector_8_u16_type,
2242 vector_16_u16_type,2247 vector_16_u16_type,
2248 vector_32_u16_type,
2249 vector_2_i32_type,
2243 vector_4_i32_type,2250 vector_4_i32_type,
2244 vector_8_i32_type,2251 vector_8_i32_type,
2252 vector_16_i32_type,
2245 vector_4_u32_type,2253 vector_4_u32_type,
2246 vector_8_u32_type,2254 vector_8_u32_type,
2255 vector_16_u32_type,
2247 vector_2_i64_type,2256 vector_2_i64_type,
2248 vector_4_i64_type,2257 vector_4_i64_type,
2258 vector_8_i64_type,
2249 vector_2_u64_type,2259 vector_2_u64_type,
2250 vector_4_u64_type,2260 vector_4_u64_type,
2261 vector_8_u64_type,
2262 vector_1_u128_type,
2251 vector_2_u128_type,2263 vector_2_u128_type,
2264 vector_1_u256_type,
2252 vector_4_f16_type,2265 vector_4_f16_type,
2253 vector_8_f16_type,2266 vector_8_f16_type,
2267 vector_16_f16_type,
2268 vector_32_f16_type,
2254 vector_2_f32_type,2269 vector_2_f32_type,
2255 vector_4_f32_type,2270 vector_4_f32_type,
2256 vector_8_f32_type,2271 vector_8_f32_type,
2272 vector_16_f32_type,
2257 vector_2_f64_type,2273 vector_2_f64_type,
2258 vector_4_f64_type,2274 vector_4_f64_type,
2275 vector_8_f64_type,
2259 optional_noreturn_type,2276 optional_noreturn_type,
2260 anyerror_void_error_union_type,2277 anyerror_void_error_union_type,
2261 adhoc_inferred_error_set_type,2278 adhoc_inferred_error_set_type,
lib/std/zon/parse.zig-1
...@@ -3091,7 +3091,6 @@ test "std.zon free on error" {...@@ -3091,7 +3091,6 @@ test "std.zon free on error" {
30913091
3092test "std.zon vector" {3092test "std.zon vector" {
3093 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/153303093 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/15330
3094 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/15329
30953094
3096 const gpa = std.testing.allocator;3095 const gpa = std.testing.allocator;
30973096
src/Air.zig+17
...@@ -973,6 +973,7 @@ pub const Inst = struct {...@@ -973,6 +973,7 @@ pub const Inst = struct {
973 u80_type = @intFromEnum(InternPool.Index.u80_type),973 u80_type = @intFromEnum(InternPool.Index.u80_type),
974 u128_type = @intFromEnum(InternPool.Index.u128_type),974 u128_type = @intFromEnum(InternPool.Index.u128_type),
975 i128_type = @intFromEnum(InternPool.Index.i128_type),975 i128_type = @intFromEnum(InternPool.Index.i128_type),
976 u256_type = @intFromEnum(InternPool.Index.u256_type),
976 usize_type = @intFromEnum(InternPool.Index.usize_type),977 usize_type = @intFromEnum(InternPool.Index.usize_type),
977 isize_type = @intFromEnum(InternPool.Index.isize_type),978 isize_type = @intFromEnum(InternPool.Index.isize_type),
978 c_char_type = @intFromEnum(InternPool.Index.c_char_type),979 c_char_type = @intFromEnum(InternPool.Index.c_char_type),
...@@ -1011,34 +1012,50 @@ pub const Inst = struct {...@@ -1011,34 +1012,50 @@ pub const Inst = struct {
1011 vector_8_i8_type = @intFromEnum(InternPool.Index.vector_8_i8_type),1012 vector_8_i8_type = @intFromEnum(InternPool.Index.vector_8_i8_type),
1012 vector_16_i8_type = @intFromEnum(InternPool.Index.vector_16_i8_type),1013 vector_16_i8_type = @intFromEnum(InternPool.Index.vector_16_i8_type),
1013 vector_32_i8_type = @intFromEnum(InternPool.Index.vector_32_i8_type),1014 vector_32_i8_type = @intFromEnum(InternPool.Index.vector_32_i8_type),
1015 vector_64_i8_type = @intFromEnum(InternPool.Index.vector_64_i8_type),
1014 vector_1_u8_type = @intFromEnum(InternPool.Index.vector_1_u8_type),1016 vector_1_u8_type = @intFromEnum(InternPool.Index.vector_1_u8_type),
1015 vector_2_u8_type = @intFromEnum(InternPool.Index.vector_2_u8_type),1017 vector_2_u8_type = @intFromEnum(InternPool.Index.vector_2_u8_type),
1016 vector_4_u8_type = @intFromEnum(InternPool.Index.vector_4_u8_type),1018 vector_4_u8_type = @intFromEnum(InternPool.Index.vector_4_u8_type),
1017 vector_8_u8_type = @intFromEnum(InternPool.Index.vector_8_u8_type),1019 vector_8_u8_type = @intFromEnum(InternPool.Index.vector_8_u8_type),
1018 vector_16_u8_type = @intFromEnum(InternPool.Index.vector_16_u8_type),1020 vector_16_u8_type = @intFromEnum(InternPool.Index.vector_16_u8_type),
1019 vector_32_u8_type = @intFromEnum(InternPool.Index.vector_32_u8_type),1021 vector_32_u8_type = @intFromEnum(InternPool.Index.vector_32_u8_type),
1022 vector_64_u8_type = @intFromEnum(InternPool.Index.vector_64_u8_type),
1023 vector_2_i16_type = @intFromEnum(InternPool.Index.vector_2_i16_type),
1020 vector_4_i16_type = @intFromEnum(InternPool.Index.vector_4_i16_type),1024 vector_4_i16_type = @intFromEnum(InternPool.Index.vector_4_i16_type),
1021 vector_8_i16_type = @intFromEnum(InternPool.Index.vector_8_i16_type),1025 vector_8_i16_type = @intFromEnum(InternPool.Index.vector_8_i16_type),
1022 vector_16_i16_type = @intFromEnum(InternPool.Index.vector_16_i16_type),1026 vector_16_i16_type = @intFromEnum(InternPool.Index.vector_16_i16_type),
1027 vector_32_i16_type = @intFromEnum(InternPool.Index.vector_32_i16_type),
1023 vector_4_u16_type = @intFromEnum(InternPool.Index.vector_4_u16_type),1028 vector_4_u16_type = @intFromEnum(InternPool.Index.vector_4_u16_type),
1024 vector_8_u16_type = @intFromEnum(InternPool.Index.vector_8_u16_type),1029 vector_8_u16_type = @intFromEnum(InternPool.Index.vector_8_u16_type),
1025 vector_16_u16_type = @intFromEnum(InternPool.Index.vector_16_u16_type),1030 vector_16_u16_type = @intFromEnum(InternPool.Index.vector_16_u16_type),
1031 vector_32_u16_type = @intFromEnum(InternPool.Index.vector_32_u16_type),
1032 vector_2_i32_type = @intFromEnum(InternPool.Index.vector_2_i32_type),
1026 vector_4_i32_type = @intFromEnum(InternPool.Index.vector_4_i32_type),1033 vector_4_i32_type = @intFromEnum(InternPool.Index.vector_4_i32_type),
1027 vector_8_i32_type = @intFromEnum(InternPool.Index.vector_8_i32_type),1034 vector_8_i32_type = @intFromEnum(InternPool.Index.vector_8_i32_type),
1035 vector_16_i32_type = @intFromEnum(InternPool.Index.vector_16_i32_type),
1028 vector_4_u32_type = @intFromEnum(InternPool.Index.vector_4_u32_type),1036 vector_4_u32_type = @intFromEnum(InternPool.Index.vector_4_u32_type),
1029 vector_8_u32_type = @intFromEnum(InternPool.Index.vector_8_u32_type),1037 vector_8_u32_type = @intFromEnum(InternPool.Index.vector_8_u32_type),
1038 vector_16_u32_type = @intFromEnum(InternPool.Index.vector_16_u32_type),
1030 vector_2_i64_type = @intFromEnum(InternPool.Index.vector_2_i64_type),1039 vector_2_i64_type = @intFromEnum(InternPool.Index.vector_2_i64_type),
1031 vector_4_i64_type = @intFromEnum(InternPool.Index.vector_4_i64_type),1040 vector_4_i64_type = @intFromEnum(InternPool.Index.vector_4_i64_type),
1041 vector_8_i64_type = @intFromEnum(InternPool.Index.vector_8_i64_type),
1032 vector_2_u64_type = @intFromEnum(InternPool.Index.vector_2_u64_type),1042 vector_2_u64_type = @intFromEnum(InternPool.Index.vector_2_u64_type),
1033 vector_4_u64_type = @intFromEnum(InternPool.Index.vector_4_u64_type),1043 vector_4_u64_type = @intFromEnum(InternPool.Index.vector_4_u64_type),
1044 vector_8_u64_type = @intFromEnum(InternPool.Index.vector_8_u64_type),
1045 vector_1_u128_type = @intFromEnum(InternPool.Index.vector_1_u128_type),
1034 vector_2_u128_type = @intFromEnum(InternPool.Index.vector_2_u128_type),1046 vector_2_u128_type = @intFromEnum(InternPool.Index.vector_2_u128_type),
1047 vector_1_u256_type = @intFromEnum(InternPool.Index.vector_1_u256_type),
1035 vector_4_f16_type = @intFromEnum(InternPool.Index.vector_4_f16_type),1048 vector_4_f16_type = @intFromEnum(InternPool.Index.vector_4_f16_type),
1036 vector_8_f16_type = @intFromEnum(InternPool.Index.vector_8_f16_type),1049 vector_8_f16_type = @intFromEnum(InternPool.Index.vector_8_f16_type),
1050 vector_16_f16_type = @intFromEnum(InternPool.Index.vector_16_f16_type),
1051 vector_32_f16_type = @intFromEnum(InternPool.Index.vector_32_f16_type),
1037 vector_2_f32_type = @intFromEnum(InternPool.Index.vector_2_f32_type),1052 vector_2_f32_type = @intFromEnum(InternPool.Index.vector_2_f32_type),
1038 vector_4_f32_type = @intFromEnum(InternPool.Index.vector_4_f32_type),1053 vector_4_f32_type = @intFromEnum(InternPool.Index.vector_4_f32_type),
1039 vector_8_f32_type = @intFromEnum(InternPool.Index.vector_8_f32_type),1054 vector_8_f32_type = @intFromEnum(InternPool.Index.vector_8_f32_type),
1055 vector_16_f32_type = @intFromEnum(InternPool.Index.vector_16_f32_type),
1040 vector_2_f64_type = @intFromEnum(InternPool.Index.vector_2_f64_type),1056 vector_2_f64_type = @intFromEnum(InternPool.Index.vector_2_f64_type),
1041 vector_4_f64_type = @intFromEnum(InternPool.Index.vector_4_f64_type),1057 vector_4_f64_type = @intFromEnum(InternPool.Index.vector_4_f64_type),
1058 vector_8_f64_type = @intFromEnum(InternPool.Index.vector_8_f64_type),
1042 optional_noreturn_type = @intFromEnum(InternPool.Index.optional_noreturn_type),1059 optional_noreturn_type = @intFromEnum(InternPool.Index.optional_noreturn_type),
1043 anyerror_void_error_union_type = @intFromEnum(InternPool.Index.anyerror_void_error_union_type),1060 anyerror_void_error_union_type = @intFromEnum(InternPool.Index.anyerror_void_error_union_type),
1044 adhoc_inferred_error_set_type = @intFromEnum(InternPool.Index.adhoc_inferred_error_set_type),1061 adhoc_inferred_error_set_type = @intFromEnum(InternPool.Index.adhoc_inferred_error_set_type),
src/InternPool.zig+90-6
...@@ -4548,6 +4548,7 @@ pub const Index = enum(u32) {...@@ -4548,6 +4548,7 @@ pub const Index = enum(u32) {
4548 u80_type,4548 u80_type,
4549 u128_type,4549 u128_type,
4550 i128_type,4550 i128_type,
4551 u256_type,
4551 usize_type,4552 usize_type,
4552 isize_type,4553 isize_type,
4553 c_char_type,4554 c_char_type,
...@@ -4588,34 +4589,50 @@ pub const Index = enum(u32) {...@@ -4588,34 +4589,50 @@ pub const Index = enum(u32) {
4588 vector_8_i8_type,4589 vector_8_i8_type,
4589 vector_16_i8_type,4590 vector_16_i8_type,
4590 vector_32_i8_type,4591 vector_32_i8_type,
4592 vector_64_i8_type,
4591 vector_1_u8_type,4593 vector_1_u8_type,
4592 vector_2_u8_type,4594 vector_2_u8_type,
4593 vector_4_u8_type,4595 vector_4_u8_type,
4594 vector_8_u8_type,4596 vector_8_u8_type,
4595 vector_16_u8_type,4597 vector_16_u8_type,
4596 vector_32_u8_type,4598 vector_32_u8_type,
4599 vector_64_u8_type,
4600 vector_2_i16_type,
4597 vector_4_i16_type,4601 vector_4_i16_type,
4598 vector_8_i16_type,4602 vector_8_i16_type,
4599 vector_16_i16_type,4603 vector_16_i16_type,
4604 vector_32_i16_type,
4600 vector_4_u16_type,4605 vector_4_u16_type,
4601 vector_8_u16_type,4606 vector_8_u16_type,
4602 vector_16_u16_type,4607 vector_16_u16_type,
4608 vector_32_u16_type,
4609 vector_2_i32_type,
4603 vector_4_i32_type,4610 vector_4_i32_type,
4604 vector_8_i32_type,4611 vector_8_i32_type,
4612 vector_16_i32_type,
4605 vector_4_u32_type,4613 vector_4_u32_type,
4606 vector_8_u32_type,4614 vector_8_u32_type,
4615 vector_16_u32_type,
4607 vector_2_i64_type,4616 vector_2_i64_type,
4608 vector_4_i64_type,4617 vector_4_i64_type,
4618 vector_8_i64_type,
4609 vector_2_u64_type,4619 vector_2_u64_type,
4610 vector_4_u64_type,4620 vector_4_u64_type,
4621 vector_8_u64_type,
4622 vector_1_u128_type,
4611 vector_2_u128_type,4623 vector_2_u128_type,
4624 vector_1_u256_type,
4612 vector_4_f16_type,4625 vector_4_f16_type,
4613 vector_8_f16_type,4626 vector_8_f16_type,
4627 vector_16_f16_type,
4628 vector_32_f16_type,
4614 vector_2_f32_type,4629 vector_2_f32_type,
4615 vector_4_f32_type,4630 vector_4_f32_type,
4616 vector_8_f32_type,4631 vector_8_f32_type,
4632 vector_16_f32_type,
4617 vector_2_f64_type,4633 vector_2_f64_type,
4618 vector_4_f64_type,4634 vector_4_f64_type,
4635 vector_8_f64_type,
46194636
4620 optional_noreturn_type,4637 optional_noreturn_type,
4621 anyerror_void_error_union_type,4638 anyerror_void_error_union_type,
...@@ -4946,7 +4963,7 @@ pub const Index = enum(u32) {...@@ -4946,7 +4963,7 @@ pub const Index = enum(u32) {
4946 }4963 }
4947};4964};
49484965
4949pub const static_keys = [_]Key{4966pub const static_keys: [static_len]Key = .{
4950 .{ .int_type = .{4967 .{ .int_type = .{
4951 .signedness = .unsigned,4968 .signedness = .unsigned,
4952 .bits = 0,4969 .bits = 0,
...@@ -5022,6 +5039,11 @@ pub const static_keys = [_]Key{...@@ -5022,6 +5039,11 @@ pub const static_keys = [_]Key{
5022 .bits = 128,5039 .bits = 128,
5023 } },5040 } },
50245041
5042 .{ .int_type = .{
5043 .signedness = .unsigned,
5044 .bits = 256,
5045 } },
5046
5025 .{ .simple_type = .usize },5047 .{ .simple_type = .usize },
5026 .{ .simple_type = .isize },5048 .{ .simple_type = .isize },
5027 .{ .simple_type = .c_char },5049 .{ .simple_type = .c_char },
...@@ -5113,6 +5135,8 @@ pub const static_keys = [_]Key{...@@ -5113,6 +5135,8 @@ pub const static_keys = [_]Key{
5113 .{ .vector_type = .{ .len = 16, .child = .i8_type } },5135 .{ .vector_type = .{ .len = 16, .child = .i8_type } },
5114 // @Vector(32, i8)5136 // @Vector(32, i8)
5115 .{ .vector_type = .{ .len = 32, .child = .i8_type } },5137 .{ .vector_type = .{ .len = 32, .child = .i8_type } },
5138 // @Vector(64, i8)
5139 .{ .vector_type = .{ .len = 64, .child = .i8_type } },
5116 // @Vector(1, u8)5140 // @Vector(1, u8)
5117 .{ .vector_type = .{ .len = 1, .child = .u8_type } },5141 .{ .vector_type = .{ .len = 1, .child = .u8_type } },
5118 // @Vector(2, u8)5142 // @Vector(2, u8)
...@@ -5125,50 +5149,80 @@ pub const static_keys = [_]Key{...@@ -5125,50 +5149,80 @@ pub const static_keys = [_]Key{
5125 .{ .vector_type = .{ .len = 16, .child = .u8_type } },5149 .{ .vector_type = .{ .len = 16, .child = .u8_type } },
5126 // @Vector(32, u8)5150 // @Vector(32, u8)
5127 .{ .vector_type = .{ .len = 32, .child = .u8_type } },5151 .{ .vector_type = .{ .len = 32, .child = .u8_type } },
5152 // @Vector(64, u8)
5153 .{ .vector_type = .{ .len = 64, .child = .u8_type } },
5154 // @Vector(2, i16)
5155 .{ .vector_type = .{ .len = 2, .child = .i16_type } },
5128 // @Vector(4, i16)5156 // @Vector(4, i16)
5129 .{ .vector_type = .{ .len = 4, .child = .i16_type } },5157 .{ .vector_type = .{ .len = 4, .child = .i16_type } },
5130 // @Vector(8, i16)5158 // @Vector(8, i16)
5131 .{ .vector_type = .{ .len = 8, .child = .i16_type } },5159 .{ .vector_type = .{ .len = 8, .child = .i16_type } },
5132 // @Vector(16, i16)5160 // @Vector(16, i16)
5133 .{ .vector_type = .{ .len = 16, .child = .i16_type } },5161 .{ .vector_type = .{ .len = 16, .child = .i16_type } },
5162 // @Vector(32, i16)
5163 .{ .vector_type = .{ .len = 32, .child = .i16_type } },
5134 // @Vector(4, u16)5164 // @Vector(4, u16)
5135 .{ .vector_type = .{ .len = 4, .child = .u16_type } },5165 .{ .vector_type = .{ .len = 4, .child = .u16_type } },
5136 // @Vector(8, u16)5166 // @Vector(8, u16)
5137 .{ .vector_type = .{ .len = 8, .child = .u16_type } },5167 .{ .vector_type = .{ .len = 8, .child = .u16_type } },
5138 // @Vector(16, u16)5168 // @Vector(16, u16)
5139 .{ .vector_type = .{ .len = 16, .child = .u16_type } },5169 .{ .vector_type = .{ .len = 16, .child = .u16_type } },
5170 // @Vector(32, u16)
5171 .{ .vector_type = .{ .len = 32, .child = .u16_type } },
5172 // @Vector(2, i32)
5173 .{ .vector_type = .{ .len = 2, .child = .i32_type } },
5140 // @Vector(4, i32)5174 // @Vector(4, i32)
5141 .{ .vector_type = .{ .len = 4, .child = .i32_type } },5175 .{ .vector_type = .{ .len = 4, .child = .i32_type } },
5142 // @Vector(8, i32)5176 // @Vector(8, i32)
5143 .{ .vector_type = .{ .len = 8, .child = .i32_type } },5177 .{ .vector_type = .{ .len = 8, .child = .i32_type } },
5178 // @Vector(16, i32)
5179 .{ .vector_type = .{ .len = 16, .child = .i32_type } },
5144 // @Vector(4, u32)5180 // @Vector(4, u32)
5145 .{ .vector_type = .{ .len = 4, .child = .u32_type } },5181 .{ .vector_type = .{ .len = 4, .child = .u32_type } },
5146 // @Vector(8, u32)5182 // @Vector(8, u32)
5147 .{ .vector_type = .{ .len = 8, .child = .u32_type } },5183 .{ .vector_type = .{ .len = 8, .child = .u32_type } },
5184 // @Vector(16, u32)
5185 .{ .vector_type = .{ .len = 16, .child = .u32_type } },
5148 // @Vector(2, i64)5186 // @Vector(2, i64)
5149 .{ .vector_type = .{ .len = 2, .child = .i64_type } },5187 .{ .vector_type = .{ .len = 2, .child = .i64_type } },
5150 // @Vector(4, i64)5188 // @Vector(4, i64)
5151 .{ .vector_type = .{ .len = 4, .child = .i64_type } },5189 .{ .vector_type = .{ .len = 4, .child = .i64_type } },
5190 // @Vector(8, i64)
5191 .{ .vector_type = .{ .len = 8, .child = .i64_type } },
5152 // @Vector(2, u64)5192 // @Vector(2, u64)
5153 .{ .vector_type = .{ .len = 2, .child = .u64_type } },5193 .{ .vector_type = .{ .len = 2, .child = .u64_type } },
5154 // @Vector(8, u64)5194 // @Vector(4, u64)
5155 .{ .vector_type = .{ .len = 4, .child = .u64_type } },5195 .{ .vector_type = .{ .len = 4, .child = .u64_type } },
5196 // @Vector(8, u64)
5197 .{ .vector_type = .{ .len = 8, .child = .u64_type } },
5198 // @Vector(1, u128)
5199 .{ .vector_type = .{ .len = 1, .child = .u128_type } },
5156 // @Vector(2, u128)5200 // @Vector(2, u128)
5157 .{ .vector_type = .{ .len = 2, .child = .u128_type } },5201 .{ .vector_type = .{ .len = 2, .child = .u128_type } },
5202 // @Vector(1, u256)
5203 .{ .vector_type = .{ .len = 1, .child = .u256_type } },
5158 // @Vector(4, f16)5204 // @Vector(4, f16)
5159 .{ .vector_type = .{ .len = 4, .child = .f16_type } },5205 .{ .vector_type = .{ .len = 4, .child = .f16_type } },
5160 // @Vector(8, f16)5206 // @Vector(8, f16)
5161 .{ .vector_type = .{ .len = 8, .child = .f16_type } },5207 .{ .vector_type = .{ .len = 8, .child = .f16_type } },
5208 // @Vector(16, f16)
5209 .{ .vector_type = .{ .len = 16, .child = .f16_type } },
5210 // @Vector(32, f16)
5211 .{ .vector_type = .{ .len = 32, .child = .f16_type } },
5162 // @Vector(2, f32)5212 // @Vector(2, f32)
5163 .{ .vector_type = .{ .len = 2, .child = .f32_type } },5213 .{ .vector_type = .{ .len = 2, .child = .f32_type } },
5164 // @Vector(4, f32)5214 // @Vector(4, f32)
5165 .{ .vector_type = .{ .len = 4, .child = .f32_type } },5215 .{ .vector_type = .{ .len = 4, .child = .f32_type } },
5166 // @Vector(8, f32)5216 // @Vector(8, f32)
5167 .{ .vector_type = .{ .len = 8, .child = .f32_type } },5217 .{ .vector_type = .{ .len = 8, .child = .f32_type } },
5218 // @Vector(16, f32)
5219 .{ .vector_type = .{ .len = 16, .child = .f32_type } },
5168 // @Vector(2, f64)5220 // @Vector(2, f64)
5169 .{ .vector_type = .{ .len = 2, .child = .f64_type } },5221 .{ .vector_type = .{ .len = 2, .child = .f64_type } },
5170 // @Vector(4, f64)5222 // @Vector(4, f64)
5171 .{ .vector_type = .{ .len = 4, .child = .f64_type } },5223 .{ .vector_type = .{ .len = 4, .child = .f64_type } },
5224 // @Vector(8, f64)
5225 .{ .vector_type = .{ .len = 8, .child = .f64_type } },
51725226
5173 // ?noreturn5227 // ?noreturn
5174 .{ .opt_type = .noreturn_type },5228 .{ .opt_type = .noreturn_type },
...@@ -5246,10 +5300,6 @@ pub const static_keys = [_]Key{...@@ -5246,10 +5300,6 @@ pub const static_keys = [_]Key{
5246/// assert below to break an unfortunate and arguably incorrect dependency loop5300/// assert below to break an unfortunate and arguably incorrect dependency loop
5247/// when compiling.5301/// when compiling.
5248pub const static_len = Zir.Inst.Index.static_len;5302pub const static_len = Zir.Inst.Index.static_len;
5249comptime {
5250 //@compileLog(static_keys.len);
5251 assert(static_len == static_keys.len);
5252}
52535303
5254pub const Tag = enum(u8) {5304pub const Tag = enum(u8) {
5255 /// This special tag represents a value which was removed from this pool via5305 /// This special tag represents a value which was removed from this pool via
...@@ -11767,6 +11817,7 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {...@@ -11767,6 +11817,7 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
11767 .u80_type,11817 .u80_type,
11768 .u128_type,11818 .u128_type,
11769 .i128_type,11819 .i128_type,
11820 .u256_type,
11770 .usize_type,11821 .usize_type,
11771 .isize_type,11822 .isize_type,
11772 .c_char_type,11823 .c_char_type,
...@@ -11805,34 +11856,50 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {...@@ -11805,34 +11856,50 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
11805 .vector_8_i8_type,11856 .vector_8_i8_type,
11806 .vector_16_i8_type,11857 .vector_16_i8_type,
11807 .vector_32_i8_type,11858 .vector_32_i8_type,
11859 .vector_64_i8_type,
11808 .vector_1_u8_type,11860 .vector_1_u8_type,
11809 .vector_2_u8_type,11861 .vector_2_u8_type,
11810 .vector_4_u8_type,11862 .vector_4_u8_type,
11811 .vector_8_u8_type,11863 .vector_8_u8_type,
11812 .vector_16_u8_type,11864 .vector_16_u8_type,
11813 .vector_32_u8_type,11865 .vector_32_u8_type,
11866 .vector_64_u8_type,
11867 .vector_2_i16_type,
11814 .vector_4_i16_type,11868 .vector_4_i16_type,
11815 .vector_8_i16_type,11869 .vector_8_i16_type,
11816 .vector_16_i16_type,11870 .vector_16_i16_type,
11871 .vector_32_i16_type,
11817 .vector_4_u16_type,11872 .vector_4_u16_type,
11818 .vector_8_u16_type,11873 .vector_8_u16_type,
11819 .vector_16_u16_type,11874 .vector_16_u16_type,
11875 .vector_32_u16_type,
11876 .vector_2_i32_type,
11820 .vector_4_i32_type,11877 .vector_4_i32_type,
11821 .vector_8_i32_type,11878 .vector_8_i32_type,
11879 .vector_16_i32_type,
11822 .vector_4_u32_type,11880 .vector_4_u32_type,
11823 .vector_8_u32_type,11881 .vector_8_u32_type,
11882 .vector_16_u32_type,
11824 .vector_2_i64_type,11883 .vector_2_i64_type,
11825 .vector_4_i64_type,11884 .vector_4_i64_type,
11885 .vector_8_i64_type,
11826 .vector_2_u64_type,11886 .vector_2_u64_type,
11827 .vector_4_u64_type,11887 .vector_4_u64_type,
11888 .vector_8_u64_type,
11889 .vector_1_u128_type,
11828 .vector_2_u128_type,11890 .vector_2_u128_type,
11891 .vector_1_u256_type,
11829 .vector_4_f16_type,11892 .vector_4_f16_type,
11830 .vector_8_f16_type,11893 .vector_8_f16_type,
11894 .vector_16_f16_type,
11895 .vector_32_f16_type,
11831 .vector_2_f32_type,11896 .vector_2_f32_type,
11832 .vector_4_f32_type,11897 .vector_4_f32_type,
11833 .vector_8_f32_type,11898 .vector_8_f32_type,
11899 .vector_16_f32_type,
11834 .vector_2_f64_type,11900 .vector_2_f64_type,
11835 .vector_4_f64_type,11901 .vector_4_f64_type,
11902 .vector_8_f64_type,
11836 .optional_noreturn_type,11903 .optional_noreturn_type,
11837 .anyerror_void_error_union_type,11904 .anyerror_void_error_union_type,
11838 .adhoc_inferred_error_set_type,11905 .adhoc_inferred_error_set_type,
...@@ -12084,6 +12151,7 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {...@@ -12084,6 +12151,7 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
12084 .u80_type,12151 .u80_type,
12085 .u128_type,12152 .u128_type,
12086 .i128_type,12153 .i128_type,
12154 .u256_type,
12087 .usize_type,12155 .usize_type,
12088 .isize_type,12156 .isize_type,
12089 .c_char_type,12157 .c_char_type,
...@@ -12129,34 +12197,50 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {...@@ -12129,34 +12197,50 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
12129 .vector_8_i8_type,12197 .vector_8_i8_type,
12130 .vector_16_i8_type,12198 .vector_16_i8_type,
12131 .vector_32_i8_type,12199 .vector_32_i8_type,
12200 .vector_64_i8_type,
12132 .vector_1_u8_type,12201 .vector_1_u8_type,
12133 .vector_2_u8_type,12202 .vector_2_u8_type,
12134 .vector_4_u8_type,12203 .vector_4_u8_type,
12135 .vector_8_u8_type,12204 .vector_8_u8_type,
12136 .vector_16_u8_type,12205 .vector_16_u8_type,
12137 .vector_32_u8_type,12206 .vector_32_u8_type,
12207 .vector_64_u8_type,
12208 .vector_2_i16_type,
12138 .vector_4_i16_type,12209 .vector_4_i16_type,
12139 .vector_8_i16_type,12210 .vector_8_i16_type,
12140 .vector_16_i16_type,12211 .vector_16_i16_type,
12212 .vector_32_i16_type,
12141 .vector_4_u16_type,12213 .vector_4_u16_type,
12142 .vector_8_u16_type,12214 .vector_8_u16_type,
12143 .vector_16_u16_type,12215 .vector_16_u16_type,
12216 .vector_32_u16_type,
12217 .vector_2_i32_type,
12144 .vector_4_i32_type,12218 .vector_4_i32_type,
12145 .vector_8_i32_type,12219 .vector_8_i32_type,
12220 .vector_16_i32_type,
12146 .vector_4_u32_type,12221 .vector_4_u32_type,
12147 .vector_8_u32_type,12222 .vector_8_u32_type,
12223 .vector_16_u32_type,
12148 .vector_2_i64_type,12224 .vector_2_i64_type,
12149 .vector_4_i64_type,12225 .vector_4_i64_type,
12226 .vector_8_i64_type,
12150 .vector_2_u64_type,12227 .vector_2_u64_type,
12151 .vector_4_u64_type,12228 .vector_4_u64_type,
12229 .vector_8_u64_type,
12230 .vector_1_u128_type,
12152 .vector_2_u128_type,12231 .vector_2_u128_type,
12232 .vector_1_u256_type,
12153 .vector_4_f16_type,12233 .vector_4_f16_type,
12154 .vector_8_f16_type,12234 .vector_8_f16_type,
12235 .vector_16_f16_type,
12236 .vector_32_f16_type,
12155 .vector_2_f32_type,12237 .vector_2_f32_type,
12156 .vector_4_f32_type,12238 .vector_4_f32_type,
12157 .vector_8_f32_type,12239 .vector_8_f32_type,
12240 .vector_16_f32_type,
12158 .vector_2_f64_type,12241 .vector_2_f64_type,
12159 .vector_4_f64_type,12242 .vector_4_f64_type,
12243 .vector_8_f64_type,
12160 => .vector,12244 => .vector,
1216112245
12162 .optional_noreturn_type => .optional,12246 .optional_noreturn_type => .optional,
src/Sema.zig+58-126
...@@ -753,6 +753,29 @@ pub const Block = struct {...@@ -753,6 +753,29 @@ pub const Block = struct {
753 });753 });
754 }754 }
755755
756 fn addReduce(block: *Block, operand: Air.Inst.Ref, operation: std.builtin.ReduceOp) !Air.Inst.Ref {
757 const sema = block.sema;
758 const zcu = sema.pt.zcu;
759 const vector_ty = sema.typeOf(operand);
760 switch (vector_ty.vectorLen(zcu)) {
761 0 => unreachable,
762 1 => return block.addBinOp(.array_elem_val, operand, .zero_usize),
763 else => {},
764 }
765 const allow_optimized = switch (vector_ty.childType(zcu).zigTypeTag(zcu)) {
766 .float => true,
767 .bool, .int => false,
768 else => unreachable,
769 };
770 return block.addInst(.{
771 .tag = if (allow_optimized and block.float_mode == .optimized) .reduce_optimized else .reduce,
772 .data = .{ .reduce = .{
773 .operand = operand,
774 .operation = operation,
775 } },
776 });
777 }
778
756 fn addAggregateInit(779 fn addAggregateInit(
757 block: *Block,780 block: *Block,
758 aggregate_ty: Type,781 aggregate_ty: Type,
...@@ -10307,10 +10330,7 @@ fn intCast(...@@ -10307,10 +10330,7 @@ fn intCast(
10307 const zeros = try sema.splat(operand_ty, try pt.intValue(operand_scalar_ty, 0));10330 const zeros = try sema.splat(operand_ty, try pt.intValue(operand_scalar_ty, 0));
10308 const zero_inst = Air.internedToRef(zeros.toIntern());10331 const zero_inst = Air.internedToRef(zeros.toIntern());
10309 const is_in_range = try block.addCmpVector(operand, zero_inst, .eq);10332 const is_in_range = try block.addCmpVector(operand, zero_inst, .eq);
10310 const all_in_range = try block.addInst(.{10333 const all_in_range = try block.addReduce(is_in_range, .And);
10311 .tag = .reduce,
10312 .data = .{ .reduce = .{ .operand = is_in_range, .operation = .And } },
10313 });
10314 break :ok all_in_range;10334 break :ok all_in_range;
10315 } else ok: {10335 } else ok: {
10316 const zero_inst = Air.internedToRef((try pt.intValue(operand_ty, 0)).toIntern());10336 const zero_inst = Air.internedToRef((try pt.intValue(operand_ty, 0)).toIntern());
...@@ -10374,13 +10394,7 @@ fn intCast(...@@ -10374,13 +10394,7 @@ fn intCast(
1037410394
10375 const ok = if (is_vector) ok: {10395 const ok = if (is_vector) ok: {
10376 const is_in_range = try block.addCmpVector(diff_unsigned, dest_range, .lte);10396 const is_in_range = try block.addCmpVector(diff_unsigned, dest_range, .lte);
10377 const all_in_range = try block.addInst(.{10397 const all_in_range = try block.addReduce(is_in_range, .And);
10378 .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce,
10379 .data = .{ .reduce = .{
10380 .operand = is_in_range,
10381 .operation = .And,
10382 } },
10383 });
10384 break :ok all_in_range;10398 break :ok all_in_range;
10385 } else ok: {10399 } else ok: {
10386 const is_in_range = try block.addBinOp(.cmp_lte, diff_unsigned, dest_range);10400 const is_in_range = try block.addBinOp(.cmp_lte, diff_unsigned, dest_range);
...@@ -10391,13 +10405,7 @@ fn intCast(...@@ -10391,13 +10405,7 @@ fn intCast(
10391 } else {10405 } else {
10392 const ok = if (is_vector) ok: {10406 const ok = if (is_vector) ok: {
10393 const is_in_range = try block.addCmpVector(operand, dest_max, .lte);10407 const is_in_range = try block.addCmpVector(operand, dest_max, .lte);
10394 const all_in_range = try block.addInst(.{10408 const all_in_range = try block.addReduce(is_in_range, .And);
10395 .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce,
10396 .data = .{ .reduce = .{
10397 .operand = is_in_range,
10398 .operation = .And,
10399 } },
10400 });
10401 break :ok all_in_range;10409 break :ok all_in_range;
10402 } else ok: {10410 } else ok: {
10403 const is_in_range = try block.addBinOp(.cmp_lte, operand, dest_max);10411 const is_in_range = try block.addBinOp(.cmp_lte, operand, dest_max);
...@@ -10413,13 +10421,7 @@ fn intCast(...@@ -10413,13 +10421,7 @@ fn intCast(
10413 const zero_val = try sema.splat(operand_ty, scalar_zero);10421 const zero_val = try sema.splat(operand_ty, scalar_zero);
10414 const zero_inst = Air.internedToRef(zero_val.toIntern());10422 const zero_inst = Air.internedToRef(zero_val.toIntern());
10415 const is_in_range = try block.addCmpVector(operand, zero_inst, .gte);10423 const is_in_range = try block.addCmpVector(operand, zero_inst, .gte);
10416 const all_in_range = try block.addInst(.{10424 const all_in_range = try block.addReduce(is_in_range, .And);
10417 .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce,
10418 .data = .{ .reduce = .{
10419 .operand = is_in_range,
10420 .operation = .And,
10421 } },
10422 });
10423 break :ok all_in_range;10425 break :ok all_in_range;
10424 } else ok: {10426 } else ok: {
10425 const zero_inst = Air.internedToRef((try pt.intValue(operand_ty, 0)).toIntern());10427 const zero_inst = Air.internedToRef((try pt.intValue(operand_ty, 0)).toIntern());
...@@ -14330,13 +14332,7 @@ fn zirShl(...@@ -14330,13 +14332,7 @@ fn zirShl(
14330 const ok = if (rhs_ty.zigTypeTag(zcu) == .vector) ok: {14332 const ok = if (rhs_ty.zigTypeTag(zcu) == .vector) ok: {
14331 const bit_count_inst = Air.internedToRef((try sema.splat(rhs_ty, bit_count_val)).toIntern());14333 const bit_count_inst = Air.internedToRef((try sema.splat(rhs_ty, bit_count_val)).toIntern());
14332 const lt = try block.addCmpVector(rhs, bit_count_inst, .lt);14334 const lt = try block.addCmpVector(rhs, bit_count_inst, .lt);
14333 break :ok try block.addInst(.{14335 break :ok try block.addReduce(lt, .And);
14334 .tag = .reduce,
14335 .data = .{ .reduce = .{
14336 .operand = lt,
14337 .operation = .And,
14338 } },
14339 });
14340 } else ok: {14336 } else ok: {
14341 const bit_count_inst = Air.internedToRef(bit_count_val.toIntern());14337 const bit_count_inst = Air.internedToRef(bit_count_val.toIntern());
14342 break :ok try block.addBinOp(.cmp_lt, rhs, bit_count_inst);14338 break :ok try block.addBinOp(.cmp_lt, rhs, bit_count_inst);
...@@ -14358,13 +14354,7 @@ fn zirShl(...@@ -14358,13 +14354,7 @@ fn zirShl(
14358 });14354 });
14359 const ov_bit = try sema.tupleFieldValByIndex(block, op_ov, 1, op_ov_tuple_ty);14355 const ov_bit = try sema.tupleFieldValByIndex(block, op_ov, 1, op_ov_tuple_ty);
14360 const any_ov_bit = if (lhs_ty.zigTypeTag(zcu) == .vector)14356 const any_ov_bit = if (lhs_ty.zigTypeTag(zcu) == .vector)
14361 try block.addInst(.{14357 try block.addReduce(ov_bit, .Or)
14362 .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce,
14363 .data = .{ .reduce = .{
14364 .operand = ov_bit,
14365 .operation = .Or,
14366 } },
14367 })
14368 else14358 else
14369 ov_bit;14359 ov_bit;
14370 const zero_ov = Air.internedToRef((try pt.intValue(Type.u1, 0)).toIntern());14360 const zero_ov = Air.internedToRef((try pt.intValue(Type.u1, 0)).toIntern());
...@@ -14490,13 +14480,7 @@ fn zirShr(...@@ -14490,13 +14480,7 @@ fn zirShr(
14490 const ok = if (rhs_ty.zigTypeTag(zcu) == .vector) ok: {14480 const ok = if (rhs_ty.zigTypeTag(zcu) == .vector) ok: {
14491 const bit_count_inst = Air.internedToRef((try sema.splat(rhs_ty, bit_count_val)).toIntern());14481 const bit_count_inst = Air.internedToRef((try sema.splat(rhs_ty, bit_count_val)).toIntern());
14492 const lt = try block.addCmpVector(rhs, bit_count_inst, .lt);14482 const lt = try block.addCmpVector(rhs, bit_count_inst, .lt);
14493 break :ok try block.addInst(.{14483 break :ok try block.addReduce(lt, .And);
14494 .tag = .reduce,
14495 .data = .{ .reduce = .{
14496 .operand = lt,
14497 .operation = .And,
14498 } },
14499 });
14500 } else ok: {14484 } else ok: {
14501 const bit_count_inst = Air.internedToRef(bit_count_val.toIntern());14485 const bit_count_inst = Air.internedToRef(bit_count_val.toIntern());
14502 break :ok try block.addBinOp(.cmp_lt, rhs, bit_count_inst);14486 break :ok try block.addBinOp(.cmp_lt, rhs, bit_count_inst);
...@@ -14509,13 +14493,7 @@ fn zirShr(...@@ -14509,13 +14493,7 @@ fn zirShr(
1450914493
14510 const ok = if (rhs_ty.zigTypeTag(zcu) == .vector) ok: {14494 const ok = if (rhs_ty.zigTypeTag(zcu) == .vector) ok: {
14511 const eql = try block.addCmpVector(lhs, back, .eq);14495 const eql = try block.addCmpVector(lhs, back, .eq);
14512 break :ok try block.addInst(.{14496 break :ok try block.addReduce(eql, .And);
14513 .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce,
14514 .data = .{ .reduce = .{
14515 .operand = eql,
14516 .operation = .And,
14517 } },
14518 });
14519 } else try block.addBinOp(.cmp_eq, lhs, back);14497 } else try block.addBinOp(.cmp_eq, lhs, back);
14520 try sema.addSafetyCheck(block, src, ok, .shr_overflow);14498 try sema.addSafetyCheck(block, src, ok, .shr_overflow);
14521 }14499 }
...@@ -15565,16 +15543,7 @@ fn zirDivExact(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -15565,16 +15543,7 @@ fn zirDivExact(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1556515543
15566 if (resolved_type.zigTypeTag(zcu) == .vector) {15544 if (resolved_type.zigTypeTag(zcu) == .vector) {
15567 const eql = try block.addCmpVector(result, floored, .eq);15545 const eql = try block.addCmpVector(result, floored, .eq);
15568 break :ok try block.addInst(.{15546 break :ok try block.addReduce(eql, .And);
15569 .tag = switch (block.float_mode) {
15570 .strict => .reduce,
15571 .optimized => .reduce_optimized,
15572 },
15573 .data = .{ .reduce = .{
15574 .operand = eql,
15575 .operation = .And,
15576 } },
15577 });
15578 } else {15547 } else {
15579 const is_in_range = try block.addBinOp(switch (block.float_mode) {15548 const is_in_range = try block.addBinOp(switch (block.float_mode) {
15580 .strict => .cmp_eq,15549 .strict => .cmp_eq,
...@@ -15594,13 +15563,7 @@ fn zirDivExact(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai...@@ -15594,13 +15563,7 @@ fn zirDivExact(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
15594 const zero_val = try sema.splat(resolved_type, scalar_zero);15563 const zero_val = try sema.splat(resolved_type, scalar_zero);
15595 const zero = Air.internedToRef(zero_val.toIntern());15564 const zero = Air.internedToRef(zero_val.toIntern());
15596 const eql = try block.addCmpVector(remainder, zero, .eq);15565 const eql = try block.addCmpVector(remainder, zero, .eq);
15597 break :ok try block.addInst(.{15566 break :ok try block.addReduce(eql, .And);
15598 .tag = .reduce,
15599 .data = .{ .reduce = .{
15600 .operand = eql,
15601 .operation = .And,
15602 } },
15603 });
15604 } else {15567 } else {
15605 const zero = Air.internedToRef(scalar_zero.toIntern());15568 const zero = Air.internedToRef(scalar_zero.toIntern());
15606 const is_in_range = try block.addBinOp(.cmp_eq, remainder, zero);15569 const is_in_range = try block.addBinOp(.cmp_eq, remainder, zero);
...@@ -15829,13 +15792,7 @@ fn addDivIntOverflowSafety(...@@ -15829,13 +15792,7 @@ fn addDivIntOverflowSafety(
15829 break :ok try block.addCmpVector(casted_rhs, neg_one_ref, .neq);15792 break :ok try block.addCmpVector(casted_rhs, neg_one_ref, .neq);
15830 };15793 };
1583115794
15832 const ok = try block.addInst(.{15795 const ok = try block.addReduce(try block.addBinOp(.bool_or, lhs_ok, rhs_ok), .And);
15833 .tag = .reduce,
15834 .data = .{ .reduce = .{
15835 .operand = try block.addBinOp(.bool_or, lhs_ok, rhs_ok),
15836 .operation = .And,
15837 } },
15838 });
15839 try sema.addSafetyCheck(block, src, ok, .integer_overflow);15796 try sema.addSafetyCheck(block, src, ok, .integer_overflow);
15840 } else {15797 } else {
15841 const lhs_ok: Air.Inst.Ref = if (maybe_lhs_val == null) ok: {15798 const lhs_ok: Air.Inst.Ref = if (maybe_lhs_val == null) ok: {
...@@ -15886,13 +15843,7 @@ fn addDivByZeroSafety(...@@ -15886,13 +15843,7 @@ fn addDivByZeroSafety(
15886 const zero_val = try sema.splat(resolved_type, scalar_zero);15843 const zero_val = try sema.splat(resolved_type, scalar_zero);
15887 const zero = Air.internedToRef(zero_val.toIntern());15844 const zero = Air.internedToRef(zero_val.toIntern());
15888 const ok = try block.addCmpVector(casted_rhs, zero, .neq);15845 const ok = try block.addCmpVector(casted_rhs, zero, .neq);
15889 break :ok try block.addInst(.{15846 break :ok try block.addReduce(ok, .And);
15890 .tag = if (is_int) .reduce else .reduce_optimized,
15891 .data = .{ .reduce = .{
15892 .operand = ok,
15893 .operation = .And,
15894 } },
15895 });
15896 } else ok: {15847 } else ok: {
15897 const zero = Air.internedToRef(scalar_zero.toIntern());15848 const zero = Air.internedToRef(scalar_zero.toIntern());
15898 break :ok try block.addBinOp(if (is_int) .cmp_neq else .cmp_neq_optimized, casted_rhs, zero);15849 break :ok try block.addBinOp(if (is_int) .cmp_neq else .cmp_neq_optimized, casted_rhs, zero);
...@@ -16579,13 +16530,7 @@ fn analyzeArithmetic(...@@ -16579,13 +16530,7 @@ fn analyzeArithmetic(
16579 });16530 });
16580 const ov_bit = try sema.tupleFieldValByIndex(block, op_ov, 1, op_ov_tuple_ty);16531 const ov_bit = try sema.tupleFieldValByIndex(block, op_ov, 1, op_ov_tuple_ty);
16581 const any_ov_bit = if (resolved_type.zigTypeTag(zcu) == .vector)16532 const any_ov_bit = if (resolved_type.zigTypeTag(zcu) == .vector)
16582 try block.addInst(.{16533 try block.addReduce(ov_bit, .Or)
16583 .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce,
16584 .data = .{ .reduce = .{
16585 .operand = ov_bit,
16586 .operation = .Or,
16587 } },
16588 })
16589 else16534 else
16590 ov_bit;16535 ov_bit;
16591 const zero_ov = Air.internedToRef((try pt.intValue(Type.u1, 0)).toIntern());16536 const zero_ov = Air.internedToRef((try pt.intValue(Type.u1, 0)).toIntern());
...@@ -22406,13 +22351,7 @@ fn zirIntFromFloat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro...@@ -22406,13 +22351,7 @@ fn zirIntFromFloat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro
22406 const ok_pos = try block.addCmpVector(diff, Air.internedToRef((try sema.splat(operand_ty, try pt.floatValue(operand_scalar_ty, 1.0))).toIntern()), .lt);22351 const ok_pos = try block.addCmpVector(diff, Air.internedToRef((try sema.splat(operand_ty, try pt.floatValue(operand_scalar_ty, 1.0))).toIntern()), .lt);
22407 const ok_neg = try block.addCmpVector(diff, Air.internedToRef((try sema.splat(operand_ty, try pt.floatValue(operand_scalar_ty, -1.0))).toIntern()), .gt);22352 const ok_neg = try block.addCmpVector(diff, Air.internedToRef((try sema.splat(operand_ty, try pt.floatValue(operand_scalar_ty, -1.0))).toIntern()), .gt);
22408 const ok = try block.addBinOp(.bit_and, ok_pos, ok_neg);22353 const ok = try block.addBinOp(.bit_and, ok_pos, ok_neg);
22409 break :ok try block.addInst(.{22354 break :ok try block.addReduce(ok, .And);
22410 .tag = .reduce,
22411 .data = .{ .reduce = .{
22412 .operand = ok,
22413 .operation = .And,
22414 } },
22415 });
22416 } else ok: {22355 } else ok: {
22417 const ok_pos = try block.addBinOp(if (block.float_mode == .optimized) .cmp_lt_optimized else .cmp_lt, diff, Air.internedToRef((try pt.floatValue(operand_ty, 1.0)).toIntern()));22356 const ok_pos = try block.addBinOp(if (block.float_mode == .optimized) .cmp_lt_optimized else .cmp_lt, diff, Air.internedToRef((try pt.floatValue(operand_ty, 1.0)).toIntern()));
22418 const ok_neg = try block.addBinOp(if (block.float_mode == .optimized) .cmp_gt_optimized else .cmp_gt, diff, Air.internedToRef((try pt.floatValue(operand_ty, -1.0)).toIntern()));22357 const ok_neg = try block.addBinOp(if (block.float_mode == .optimized) .cmp_gt_optimized else .cmp_gt, diff, Air.internedToRef((try pt.floatValue(operand_ty, -1.0)).toIntern()));
...@@ -22555,13 +22494,7 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!...@@ -22555,13 +22494,7 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!
22555 const is_non_zero = if (is_vector) all_non_zero: {22494 const is_non_zero = if (is_vector) all_non_zero: {
22556 const zero_usize = Air.internedToRef((try sema.splat(operand_ty, .zero_usize)).toIntern());22495 const zero_usize = Air.internedToRef((try sema.splat(operand_ty, .zero_usize)).toIntern());
22557 const is_non_zero = try block.addCmpVector(operand_coerced, zero_usize, .neq);22496 const is_non_zero = try block.addCmpVector(operand_coerced, zero_usize, .neq);
22558 break :all_non_zero try block.addInst(.{22497 break :all_non_zero try block.addReduce(is_non_zero, .And);
22559 .tag = .reduce,
22560 .data = .{ .reduce = .{
22561 .operand = is_non_zero,
22562 .operation = .And,
22563 } },
22564 });
22565 } else try block.addBinOp(.cmp_neq, operand_coerced, .zero_usize);22498 } else try block.addBinOp(.cmp_neq, operand_coerced, .zero_usize);
22566 try sema.addSafetyCheck(block, src, is_non_zero, .cast_to_null);22499 try sema.addSafetyCheck(block, src, is_non_zero, .cast_to_null);
22567 }22500 }
...@@ -22578,13 +22511,7 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!...@@ -22578,13 +22511,7 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!
22578 const is_aligned = if (is_vector) all_aligned: {22511 const is_aligned = if (is_vector) all_aligned: {
22579 const splat_zero_usize = Air.internedToRef((try sema.splat(operand_ty, .zero_usize)).toIntern());22512 const splat_zero_usize = Air.internedToRef((try sema.splat(operand_ty, .zero_usize)).toIntern());
22580 const is_aligned = try block.addCmpVector(remainder, splat_zero_usize, .eq);22513 const is_aligned = try block.addCmpVector(remainder, splat_zero_usize, .eq);
22581 break :all_aligned try block.addInst(.{22514 break :all_aligned try block.addReduce(is_aligned, .And);
22582 .tag = .reduce,
22583 .data = .{ .reduce = .{
22584 .operand = is_aligned,
22585 .operation = .And,
22586 } },
22587 });
22588 } else try block.addBinOp(.cmp_eq, remainder, .zero_usize);22515 } else try block.addBinOp(.cmp_eq, remainder, .zero_usize);
22589 try sema.addSafetyCheck(block, src, is_aligned, .incorrect_alignment);22516 try sema.addSafetyCheck(block, src, is_aligned, .incorrect_alignment);
22590 }22517 }
...@@ -24540,13 +24467,7 @@ fn zirReduce(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air....@@ -24540,13 +24467,7 @@ fn zirReduce(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.
24540 }24467 }
2454124468
24542 try sema.requireRuntimeBlock(block, block.nodeOffset(inst_data.src_node), operand_src);24469 try sema.requireRuntimeBlock(block, block.nodeOffset(inst_data.src_node), operand_src);
24543 return block.addInst(.{24470 return block.addReduce(operand, operation);
24544 .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce,
24545 .data = .{ .reduce = .{
24546 .operand = operand,
24547 .operation = operation,
24548 } },
24549 });
24550}24471}
2455124472
24552fn zirShuffle(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {24473fn zirShuffle(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {
...@@ -27324,13 +27245,7 @@ fn addSafetyCheckSentinelMismatch(...@@ -27324,13 +27245,7 @@ fn addSafetyCheckSentinelMismatch(
2732427245
27325 const ok = if (sentinel_ty.zigTypeTag(zcu) == .vector) ok: {27246 const ok = if (sentinel_ty.zigTypeTag(zcu) == .vector) ok: {
27326 const eql = try parent_block.addCmpVector(expected_sentinel, actual_sentinel, .eq);27247 const eql = try parent_block.addCmpVector(expected_sentinel, actual_sentinel, .eq);
27327 break :ok try parent_block.addInst(.{27248 break :ok try parent_block.addReduce(eql, .And);
27328 .tag = .reduce,
27329 .data = .{ .reduce = .{
27330 .operand = eql,
27331 .operation = .And,
27332 } },
27333 });
27334 } else ok: {27249 } else ok: {
27335 assert(sentinel_ty.isSelfComparable(zcu, true));27250 assert(sentinel_ty.isSelfComparable(zcu, true));
27336 break :ok try parent_block.addBinOp(.cmp_eq, expected_sentinel, actual_sentinel);27251 break :ok try parent_block.addBinOp(.cmp_eq, expected_sentinel, actual_sentinel);
...@@ -36595,6 +36510,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {...@@ -36595,6 +36510,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
36595 .u80_type,36510 .u80_type,
36596 .u128_type,36511 .u128_type,
36597 .i128_type,36512 .i128_type,
36513 .u256_type,
36598 .usize_type,36514 .usize_type,
36599 .isize_type,36515 .isize_type,
36600 .c_char_type,36516 .c_char_type,
...@@ -36629,34 +36545,50 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {...@@ -36629,34 +36545,50 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
36629 .vector_8_i8_type,36545 .vector_8_i8_type,
36630 .vector_16_i8_type,36546 .vector_16_i8_type,
36631 .vector_32_i8_type,36547 .vector_32_i8_type,
36548 .vector_64_i8_type,
36632 .vector_1_u8_type,36549 .vector_1_u8_type,
36633 .vector_2_u8_type,36550 .vector_2_u8_type,
36634 .vector_4_u8_type,36551 .vector_4_u8_type,
36635 .vector_8_u8_type,36552 .vector_8_u8_type,
36636 .vector_16_u8_type,36553 .vector_16_u8_type,
36637 .vector_32_u8_type,36554 .vector_32_u8_type,
36555 .vector_64_u8_type,
36556 .vector_2_i16_type,
36638 .vector_4_i16_type,36557 .vector_4_i16_type,
36639 .vector_8_i16_type,36558 .vector_8_i16_type,
36640 .vector_16_i16_type,36559 .vector_16_i16_type,
36560 .vector_32_i16_type,
36641 .vector_4_u16_type,36561 .vector_4_u16_type,
36642 .vector_8_u16_type,36562 .vector_8_u16_type,
36643 .vector_16_u16_type,36563 .vector_16_u16_type,
36564 .vector_32_u16_type,
36565 .vector_2_i32_type,
36644 .vector_4_i32_type,36566 .vector_4_i32_type,
36645 .vector_8_i32_type,36567 .vector_8_i32_type,
36568 .vector_16_i32_type,
36646 .vector_4_u32_type,36569 .vector_4_u32_type,
36647 .vector_8_u32_type,36570 .vector_8_u32_type,
36571 .vector_16_u32_type,
36648 .vector_2_i64_type,36572 .vector_2_i64_type,
36649 .vector_4_i64_type,36573 .vector_4_i64_type,
36574 .vector_8_i64_type,
36650 .vector_2_u64_type,36575 .vector_2_u64_type,
36651 .vector_4_u64_type,36576 .vector_4_u64_type,
36577 .vector_8_u64_type,
36578 .vector_1_u128_type,
36652 .vector_2_u128_type,36579 .vector_2_u128_type,
36580 .vector_1_u256_type,
36653 .vector_4_f16_type,36581 .vector_4_f16_type,
36654 .vector_8_f16_type,36582 .vector_8_f16_type,
36583 .vector_16_f16_type,
36584 .vector_32_f16_type,
36655 .vector_2_f32_type,36585 .vector_2_f32_type,
36656 .vector_4_f32_type,36586 .vector_4_f32_type,
36657 .vector_8_f32_type,36587 .vector_8_f32_type,
36588 .vector_16_f32_type,
36658 .vector_2_f64_type,36589 .vector_2_f64_type,
36659 .vector_4_f64_type,36590 .vector_4_f64_type,
36591 .vector_8_f64_type,
36660 .anyerror_void_error_union_type,36592 .anyerror_void_error_union_type,
36661 => null,36593 => null,
36662 .void_type => Value.void,36594 .void_type => Value.void,
src/Type.zig+18-1
...@@ -994,7 +994,7 @@ pub fn abiAlignmentInner(...@@ -994,7 +994,7 @@ pub fn abiAlignmentInner(
994 .stage2_x86_64 => {994 .stage2_x86_64 => {
995 if (vector_type.child == .bool_type) {995 if (vector_type.child == .bool_type) {
996 if (vector_type.len > 256 and std.Target.x86.featureSetHas(target.cpu.features, .avx512f)) return .{ .scalar = .@"64" };996 if (vector_type.len > 256 and std.Target.x86.featureSetHas(target.cpu.features, .avx512f)) return .{ .scalar = .@"64" };
997 if (vector_type.len > 128 and std.Target.x86.featureSetHas(target.cpu.features, .avx2)) return .{ .scalar = .@"32" };997 if (vector_type.len > 128 and std.Target.x86.featureSetHas(target.cpu.features, .avx)) return .{ .scalar = .@"32" };
998 if (vector_type.len > 64) return .{ .scalar = .@"16" };998 if (vector_type.len > 64) return .{ .scalar = .@"16" };
999 const bytes = std.math.divCeil(u32, vector_type.len, 8) catch unreachable;999 const bytes = std.math.divCeil(u32, vector_type.len, 8) catch unreachable;
1000 const alignment = std.math.ceilPowerOfTwoAssert(u32, bytes);1000 const alignment = std.math.ceilPowerOfTwoAssert(u32, bytes);
...@@ -4060,6 +4060,7 @@ pub const @"u32": Type = .{ .ip_index = .u32_type };...@@ -4060,6 +4060,7 @@ pub const @"u32": Type = .{ .ip_index = .u32_type };
4060pub const @"u64": Type = .{ .ip_index = .u64_type };4060pub const @"u64": Type = .{ .ip_index = .u64_type };
4061pub const @"u80": Type = .{ .ip_index = .u80_type };4061pub const @"u80": Type = .{ .ip_index = .u80_type };
4062pub const @"u128": Type = .{ .ip_index = .u128_type };4062pub const @"u128": Type = .{ .ip_index = .u128_type };
4063pub const @"u256": Type = .{ .ip_index = .u256_type };
40634064
4064pub const @"i8": Type = .{ .ip_index = .i8_type };4065pub const @"i8": Type = .{ .ip_index = .i8_type };
4065pub const @"i16": Type = .{ .ip_index = .i16_type };4066pub const @"i16": Type = .{ .ip_index = .i16_type };
...@@ -4109,34 +4110,50 @@ pub const slice_const_u8_sentinel_0: Type = .{ .ip_index = .slice_const_u8_senti...@@ -4109,34 +4110,50 @@ pub const slice_const_u8_sentinel_0: Type = .{ .ip_index = .slice_const_u8_senti
4109pub const vector_8_i8: Type = .{ .ip_index = .vector_8_i8_type };4110pub const vector_8_i8: Type = .{ .ip_index = .vector_8_i8_type };
4110pub const vector_16_i8: Type = .{ .ip_index = .vector_16_i8_type };4111pub const vector_16_i8: Type = .{ .ip_index = .vector_16_i8_type };
4111pub const vector_32_i8: Type = .{ .ip_index = .vector_32_i8_type };4112pub const vector_32_i8: Type = .{ .ip_index = .vector_32_i8_type };
4113pub const vector_64_i8: Type = .{ .ip_index = .vector_64_i8_type };
4112pub const vector_1_u8: Type = .{ .ip_index = .vector_1_u8_type };4114pub const vector_1_u8: Type = .{ .ip_index = .vector_1_u8_type };
4113pub const vector_2_u8: Type = .{ .ip_index = .vector_2_u8_type };4115pub const vector_2_u8: Type = .{ .ip_index = .vector_2_u8_type };
4114pub const vector_4_u8: Type = .{ .ip_index = .vector_4_u8_type };4116pub const vector_4_u8: Type = .{ .ip_index = .vector_4_u8_type };
4115pub const vector_8_u8: Type = .{ .ip_index = .vector_8_u8_type };4117pub const vector_8_u8: Type = .{ .ip_index = .vector_8_u8_type };
4116pub const vector_16_u8: Type = .{ .ip_index = .vector_16_u8_type };4118pub const vector_16_u8: Type = .{ .ip_index = .vector_16_u8_type };
4117pub const vector_32_u8: Type = .{ .ip_index = .vector_32_u8_type };4119pub const vector_32_u8: Type = .{ .ip_index = .vector_32_u8_type };
4120pub const vector_64_u8: Type = .{ .ip_index = .vector_64_u8_type };
4121pub const vector_2_i16: Type = .{ .ip_index = .vector_2_i16_type };
4118pub const vector_4_i16: Type = .{ .ip_index = .vector_4_i16_type };4122pub const vector_4_i16: Type = .{ .ip_index = .vector_4_i16_type };
4119pub const vector_8_i16: Type = .{ .ip_index = .vector_8_i16_type };4123pub const vector_8_i16: Type = .{ .ip_index = .vector_8_i16_type };
4120pub const vector_16_i16: Type = .{ .ip_index = .vector_16_i16_type };4124pub const vector_16_i16: Type = .{ .ip_index = .vector_16_i16_type };
4125pub const vector_32_i16: Type = .{ .ip_index = .vector_32_i16_type };
4121pub const vector_4_u16: Type = .{ .ip_index = .vector_4_u16_type };4126pub const vector_4_u16: Type = .{ .ip_index = .vector_4_u16_type };
4122pub const vector_8_u16: Type = .{ .ip_index = .vector_8_u16_type };4127pub const vector_8_u16: Type = .{ .ip_index = .vector_8_u16_type };
4123pub const vector_16_u16: Type = .{ .ip_index = .vector_16_u16_type };4128pub const vector_16_u16: Type = .{ .ip_index = .vector_16_u16_type };
4129pub const vector_32_u16: Type = .{ .ip_index = .vector_32_u16_type };
4130pub const vector_2_i32: Type = .{ .ip_index = .vector_2_i32_type };
4124pub const vector_4_i32: Type = .{ .ip_index = .vector_4_i32_type };4131pub const vector_4_i32: Type = .{ .ip_index = .vector_4_i32_type };
4125pub const vector_8_i32: Type = .{ .ip_index = .vector_8_i32_type };4132pub const vector_8_i32: Type = .{ .ip_index = .vector_8_i32_type };
4133pub const vector_16_i32: Type = .{ .ip_index = .vector_16_i32_type };
4126pub const vector_4_u32: Type = .{ .ip_index = .vector_4_u32_type };4134pub const vector_4_u32: Type = .{ .ip_index = .vector_4_u32_type };
4127pub const vector_8_u32: Type = .{ .ip_index = .vector_8_u32_type };4135pub const vector_8_u32: Type = .{ .ip_index = .vector_8_u32_type };
4136pub const vector_16_u32: Type = .{ .ip_index = .vector_16_u32_type };
4128pub const vector_2_i64: Type = .{ .ip_index = .vector_2_i64_type };4137pub const vector_2_i64: Type = .{ .ip_index = .vector_2_i64_type };
4129pub const vector_4_i64: Type = .{ .ip_index = .vector_4_i64_type };4138pub const vector_4_i64: Type = .{ .ip_index = .vector_4_i64_type };
4139pub const vector_8_i64: Type = .{ .ip_index = .vector_8_i64_type };
4130pub const vector_2_u64: Type = .{ .ip_index = .vector_2_u64_type };4140pub const vector_2_u64: Type = .{ .ip_index = .vector_2_u64_type };
4131pub const vector_4_u64: Type = .{ .ip_index = .vector_4_u64_type };4141pub const vector_4_u64: Type = .{ .ip_index = .vector_4_u64_type };
4142pub const vector_8_u64: Type = .{ .ip_index = .vector_8_u64_type };
4143pub const vector_1_u128: Type = .{ .ip_index = .vector_1_u128_type };
4132pub const vector_2_u128: Type = .{ .ip_index = .vector_2_u128_type };4144pub const vector_2_u128: Type = .{ .ip_index = .vector_2_u128_type };
4145pub const vector_1_u256: Type = .{ .ip_index = .vector_1_u256_type };
4133pub const vector_4_f16: Type = .{ .ip_index = .vector_4_f16_type };4146pub const vector_4_f16: Type = .{ .ip_index = .vector_4_f16_type };
4134pub const vector_8_f16: Type = .{ .ip_index = .vector_8_f16_type };4147pub const vector_8_f16: Type = .{ .ip_index = .vector_8_f16_type };
4148pub const vector_16_f16: Type = .{ .ip_index = .vector_16_f16_type };
4149pub const vector_32_f16: Type = .{ .ip_index = .vector_32_f16_type };
4135pub const vector_2_f32: Type = .{ .ip_index = .vector_2_f32_type };4150pub const vector_2_f32: Type = .{ .ip_index = .vector_2_f32_type };
4136pub const vector_4_f32: Type = .{ .ip_index = .vector_4_f32_type };4151pub const vector_4_f32: Type = .{ .ip_index = .vector_4_f32_type };
4137pub const vector_8_f32: Type = .{ .ip_index = .vector_8_f32_type };4152pub const vector_8_f32: Type = .{ .ip_index = .vector_8_f32_type };
4153pub const vector_16_f32: Type = .{ .ip_index = .vector_16_f32_type };
4138pub const vector_2_f64: Type = .{ .ip_index = .vector_2_f64_type };4154pub const vector_2_f64: Type = .{ .ip_index = .vector_2_f64_type };
4139pub const vector_4_f64: Type = .{ .ip_index = .vector_4_f64_type };4155pub const vector_4_f64: Type = .{ .ip_index = .vector_4_f64_type };
4156pub const vector_8_f64: Type = .{ .ip_index = .vector_8_f64_type };
41404157
4141pub const empty_tuple: Type = .{ .ip_index = .empty_tuple_type };4158pub const empty_tuple: Type = .{ .ip_index = .empty_tuple_type };
41424159
src/arch/x86_64/CodeGen.zig+42229-414
...@@ -148,8 +148,11 @@ const Owner = union(enum) {...@@ -148,8 +148,11 @@ const Owner = union(enum) {
148 }148 }
149};149};
150150
151const MaskKind = enum(u1) { sign, all };151const MaskInfo = packed struct {
152const MaskInfo = packed struct { kind: MaskKind, inverted: bool = false, scalar: Memory.Size };152 kind: enum(u1) { sign, all },
153 inverted: bool = false,
154 scalar: Memory.Size,
155};
153156
154pub const MCValue = union(enum) {157pub const MCValue = union(enum) {
155 /// No runtime bits. `void` types, empty structs, u0, enums with 1 tag, etc.158 /// No runtime bits. `void` types, empty structs, u0, enums with 1 tag, etc.
...@@ -2386,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2386,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2386}2389}
23872390
2388fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {2391fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2389 @setEvalBranchQuota(20_200);2392 @setEvalBranchQuota(28_600);
2390 const pt = cg.pt;2393 const pt = cg.pt;
2391 const zcu = pt.zcu;2394 const zcu = pt.zcu;
2392 const ip = &zcu.intern_pool;2395 const ip = &zcu.intern_pool;
...@@ -2424,8 +2427,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2424,8 +2427,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2424 // zig fmt: off2427 // zig fmt: off
2425 .select => try cg.airSelect(inst),2428 .select => try cg.airSelect(inst),
2426 .shuffle => try cg.airShuffle(inst),2429 .shuffle => try cg.airShuffle(inst),
2427 .reduce => try cg.airReduce(inst),
2428 .reduce_optimized => try cg.airReduce(inst),
2429 // zig fmt: on2430 // zig fmt: on
24302431
2431 .arg => if (cg.debug_output != .none) {2432 .arg => if (cg.debug_output != .none) {
...@@ -4326,10 +4327,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -4326,10 +4327,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
4326 else => unreachable,4327 else => unreachable,
4327 .add, .add_optimized => {},4328 .add, .add_optimized => {},
4328 .add_wrap => res[0].wrapInt(cg) catch |err| switch (err) {4329 .add_wrap => res[0].wrapInt(cg) catch |err| switch (err) {
4329 error.SelectFailed => return cg.fail("failed to select wrap {} {} {}", .{4330 error.SelectFailed => return cg.fail("failed to select {s} wrap {} {}", .{
4331 @tagName(air_tag),
4330 cg.typeOf(bin_op.lhs).fmt(pt),4332 cg.typeOf(bin_op.lhs).fmt(pt),
4331 ops[0].tracking(cg),4333 res[0].tracking(cg),
4332 ops[1].tracking(cg),
4333 }),4334 }),
4334 else => |e| return e,4335 else => |e| return e,
4335 },4336 },
...@@ -14775,10 +14776,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -14775,10 +14776,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
14775 else => unreachable,14776 else => unreachable,
14776 .sub, .sub_optimized => {},14777 .sub, .sub_optimized => {},
14777 .sub_wrap => res[0].wrapInt(cg) catch |err| switch (err) {14778 .sub_wrap => res[0].wrapInt(cg) catch |err| switch (err) {
14778 error.SelectFailed => return cg.fail("failed to select wrap {} {} {}", .{14779 error.SelectFailed => return cg.fail("failed to select {s} wrap {} {}", .{
14780 @tagName(air_tag),
14779 cg.typeOf(bin_op.lhs).fmt(pt),14781 cg.typeOf(bin_op.lhs).fmt(pt),
14780 ops[0].tracking(cg),14782 res[0].tracking(cg),
14781 ops[1].tracking(cg),
14782 }),14783 }),
14783 else => |e| return e,14784 else => |e| return e,
14784 },14785 },
...@@ -26977,10 +26978,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -26977,10 +26978,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
26977 else => |e| return e,26978 else => |e| return e,
26978 };26979 };
26979 res[0].wrapInt(cg) catch |err| switch (err) {26980 res[0].wrapInt(cg) catch |err| switch (err) {
26980 error.SelectFailed => return cg.fail("failed to select wrap {} {} {}", .{26981 error.SelectFailed => return cg.fail("failed to select {s} wrap {} {}", .{
26982 @tagName(air_tag),
26981 cg.typeOf(bin_op.lhs).fmt(pt),26983 cg.typeOf(bin_op.lhs).fmt(pt),
26982 ops[0].tracking(cg),26984 res[0].tracking(cg),
26983 ops[1].tracking(cg),
26984 }),26985 }),
26985 else => |e| return e,26986 else => |e| return e,
26986 };26987 };
...@@ -58662,11 +58663,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -58662,11 +58663,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
58662 switch (air_tag) {58663 switch (air_tag) {
58663 else => unreachable,58664 else => unreachable,
58664 .shl => res[0].wrapInt(cg) catch |err| switch (err) {58665 .shl => res[0].wrapInt(cg) catch |err| switch (err) {
58665 error.SelectFailed => return cg.fail("failed to select wrap {} {} {} {}", .{58666 error.SelectFailed => return cg.fail("failed to select {s} wrap {} {}", .{
58667 @tagName(air_tag),
58666 cg.typeOf(bin_op.lhs).fmt(pt),58668 cg.typeOf(bin_op.lhs).fmt(pt),
58667 cg.typeOf(bin_op.rhs).fmt(pt),58669 res[0].tracking(cg),
58668 ops[0].tracking(cg),
58669 ops[1].tracking(cg),
58670 }),58670 }),
58671 else => |e| return e,58671 else => |e| return e,
58672 },58672 },
...@@ -58839,10 +58839,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -58839,10 +58839,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
58839 else => |e| return e,58839 else => |e| return e,
58840 },58840 },
58841 }58841 }
58842 if (ops[1].index != res[0].index) {58842 if (ops[1].index != res[0].index) try ops[1].die(cg);
58843 try ops[1].die(cg);58843 ops[1] = res[0];
58844 ops[1] = res[0];
58845 } else cg.temp_type[@intFromEnum(res[0].unwrap(cg).temp)] = .i32;
58846 cg.select(&res, &.{lhs_ty}, &ops, comptime &.{ .{58844 cg.select(&res, &.{lhs_ty}, &ops, comptime &.{ .{
58847 .required_features = .{ .cmov, null, null, null },58845 .required_features = .{ .cmov, null, null, null },
58848 .src_constraints = .{ .{ .signed_int = .byte }, .{ .exact_signed_int = 32 }, .any },58846 .src_constraints = .{ .{ .signed_int = .byte }, .{ .exact_signed_int = 32 }, .any },
...@@ -63335,20 +63333,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -63335,20 +63333,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
63335 .bitcast => try cg.airBitCast(inst),63333 .bitcast => try cg.airBitCast(inst),
63336 .block => {63334 .block => {
63337 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;63335 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
63338 const extra = cg.air.extraData(Air.Block, ty_pl.payload);63336 const block = cg.air.extraData(Air.Block, ty_pl.payload);
63339 if (cg.debug_output != .none) try cg.asmPseudo(.pseudo_dbg_enter_block_none);63337 if (cg.debug_output != .none) try cg.asmPseudo(.pseudo_dbg_enter_block_none);
63340 try cg.lowerBlock(inst, @ptrCast(cg.air.extra[extra.end..][0..extra.data.body_len]));63338 try cg.lowerBlock(inst, @ptrCast(cg.air.extra[block.end..][0..block.data.body_len]));
63341 if (cg.debug_output != .none) try cg.asmPseudo(.pseudo_dbg_leave_block_none);63339 if (cg.debug_output != .none) try cg.asmPseudo(.pseudo_dbg_leave_block_none);
63342 },63340 },
63343 .loop => if (use_old) try cg.airLoop(inst) else {63341 .loop => if (use_old) try cg.airLoop(inst) else {
63344 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;63342 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
63345 const extra = cg.air.extraData(Air.Block, ty_pl.payload);63343 const block = cg.air.extraData(Air.Block, ty_pl.payload);
63346 try cg.loops.putNoClobber(cg.gpa, inst, .{63344 try cg.loops.putNoClobber(cg.gpa, inst, .{
63347 .state = try cg.saveState(),63345 .state = try cg.saveState(),
63348 .target = @intCast(cg.mir_instructions.len),63346 .target = @intCast(cg.mir_instructions.len),
63349 });63347 });
63350 defer assert(cg.loops.remove(inst));63348 defer assert(cg.loops.remove(inst));
63351 try cg.genBodyBlock(@ptrCast(cg.air.extra[extra.end..][0..extra.data.body_len]));63349 try cg.genBodyBlock(@ptrCast(cg.air.extra[block.end..][0..block.data.body_len]));
63352 },63350 },
63353 .repeat => if (use_old) try cg.airRepeat(inst) else {63351 .repeat => if (use_old) try cg.airRepeat(inst) else {
63354 const repeat = air_datas[@intFromEnum(inst)].repeat;63352 const repeat = air_datas[@intFromEnum(inst)].repeat;
...@@ -67796,7 +67794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67796,7 +67794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67796 .clobbers = .{ .eflags = true },67794 .clobbers = .{ .eflags = true },
67797 .each = .{ .once = &.{67795 .each = .{ .once = &.{
67798 .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ },67796 .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ },
67799 .{ ._, ._, .movbe, .dst0w, .src0w, ._, ._ },67797 .{ ._, ._be, .mov, .dst0w, .src0w, ._, ._ },
67800 } },67798 } },
67801 }, .{67799 }, .{
67802 .src_constraints = .{ .{ .exact_int = 16 }, .any, .any },67800 .src_constraints = .{ .{ .exact_int = 16 }, .any, .any },
...@@ -67816,7 +67814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67816,7 +67814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67816 },67814 },
67817 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },67815 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
67818 .each = .{ .once = &.{67816 .each = .{ .once = &.{
67819 .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ },67817 .{ ._, ._be, .mov, .dst0d, .src0d, ._, ._ },
67820 } },67818 } },
67821 }, .{67819 }, .{
67822 .src_constraints = .{ .{ .exact_int = 32 }, .any, .any },67820 .src_constraints = .{ .{ .exact_int = 32 }, .any, .any },
...@@ -67825,7 +67823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67825,7 +67823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67825 },67823 },
67826 .dst_temps = .{ .{ .ref = .src0 }, .unused },67824 .dst_temps = .{ .{ .ref = .src0 }, .unused },
67827 .each = .{ .once = &.{67825 .each = .{ .once = &.{
67828 .{ ._, ._, .bswap, .dst0d, ._, ._, ._ },67826 .{ ._, .b_, .swap, .dst0d, ._, ._, ._ },
67829 } },67827 } },
67830 }, .{67828 }, .{
67831 .required_features = .{ .movbe, null, null, null },67829 .required_features = .{ .movbe, null, null, null },
...@@ -67836,7 +67834,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67836,7 +67834,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67836 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },67834 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
67837 .clobbers = .{ .eflags = true },67835 .clobbers = .{ .eflags = true },
67838 .each = .{ .once = &.{67836 .each = .{ .once = &.{
67839 .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ },67837 .{ ._, ._be, .mov, .dst0d, .src0d, ._, ._ },
67840 .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },67838 .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
67841 } },67839 } },
67842 }, .{67840 }, .{
...@@ -67847,7 +67845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67847,7 +67845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67847 .dst_temps = .{ .{ .ref = .src0 }, .unused },67845 .dst_temps = .{ .{ .ref = .src0 }, .unused },
67848 .clobbers = .{ .eflags = true },67846 .clobbers = .{ .eflags = true },
67849 .each = .{ .once = &.{67847 .each = .{ .once = &.{
67850 .{ ._, ._, .bswap, .dst0d, ._, ._, ._ },67848 .{ ._, .b_, .swap, .dst0d, ._, ._, ._ },
67851 .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },67849 .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
67852 } },67850 } },
67853 }, .{67851 }, .{
...@@ -67859,7 +67857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67859,7 +67857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67859 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },67857 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
67860 .clobbers = .{ .eflags = true },67858 .clobbers = .{ .eflags = true },
67861 .each = .{ .once = &.{67859 .each = .{ .once = &.{
67862 .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ },67860 .{ ._, ._be, .mov, .dst0d, .src0d, ._, ._ },
67863 .{ ._, ._r, .sh, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },67861 .{ ._, ._r, .sh, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
67864 } },67862 } },
67865 }, .{67863 }, .{
...@@ -67870,7 +67868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67870,7 +67868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67870 .dst_temps = .{ .{ .ref = .src0 }, .unused },67868 .dst_temps = .{ .{ .ref = .src0 }, .unused },
67871 .clobbers = .{ .eflags = true },67869 .clobbers = .{ .eflags = true },
67872 .each = .{ .once = &.{67870 .each = .{ .once = &.{
67873 .{ ._, ._, .bswap, .dst0d, ._, ._, ._ },67871 .{ ._, .b_, .swap, .dst0d, ._, ._, ._ },
67874 .{ ._, ._r, .sh, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },67872 .{ ._, ._r, .sh, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ },
67875 } },67873 } },
67876 }, .{67874 }, .{
...@@ -67881,7 +67879,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67881,7 +67879,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67881 },67879 },
67882 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },67880 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
67883 .each = .{ .once = &.{67881 .each = .{ .once = &.{
67884 .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ },67882 .{ ._, ._be, .mov, .dst0q, .src0q, ._, ._ },
67885 } },67883 } },
67886 }, .{67884 }, .{
67887 .src_constraints = .{ .{ .exact_int = 64 }, .any, .any },67885 .src_constraints = .{ .{ .exact_int = 64 }, .any, .any },
...@@ -67890,7 +67888,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67890,7 +67888,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67890 },67888 },
67891 .dst_temps = .{ .{ .ref = .src0 }, .unused },67889 .dst_temps = .{ .{ .ref = .src0 }, .unused },
67892 .each = .{ .once = &.{67890 .each = .{ .once = &.{
67893 .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },67891 .{ ._, .b_, .swap, .dst0q, ._, ._, ._ },
67894 } },67892 } },
67895 }, .{67893 }, .{
67896 .required_features = .{ .movbe, null, null, null },67894 .required_features = .{ .movbe, null, null, null },
...@@ -67901,7 +67899,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67901,7 +67899,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67901 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },67899 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
67902 .clobbers = .{ .eflags = true },67900 .clobbers = .{ .eflags = true },
67903 .each = .{ .once = &.{67901 .each = .{ .once = &.{
67904 .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ },67902 .{ ._, ._be, .mov, .dst0q, .src0q, ._, ._ },
67905 .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },67903 .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
67906 } },67904 } },
67907 }, .{67905 }, .{
...@@ -67912,7 +67910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67912,7 +67910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67912 .dst_temps = .{ .{ .ref = .src0 }, .unused },67910 .dst_temps = .{ .{ .ref = .src0 }, .unused },
67913 .clobbers = .{ .eflags = true },67911 .clobbers = .{ .eflags = true },
67914 .each = .{ .once = &.{67912 .each = .{ .once = &.{
67915 .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },67913 .{ ._, .b_, .swap, .dst0q, ._, ._, ._ },
67916 .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },67914 .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
67917 } },67915 } },
67918 }, .{67916 }, .{
...@@ -67924,7 +67922,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67924,7 +67922,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67924 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },67922 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
67925 .clobbers = .{ .eflags = true },67923 .clobbers = .{ .eflags = true },
67926 .each = .{ .once = &.{67924 .each = .{ .once = &.{
67927 .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ },67925 .{ ._, ._be, .mov, .dst0q, .src0q, ._, ._ },
67928 .{ ._, ._r, .sh, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },67926 .{ ._, ._r, .sh, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
67929 } },67927 } },
67930 }, .{67928 }, .{
...@@ -67935,7 +67933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67935,7 +67933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67935 .dst_temps = .{ .{ .ref = .src0 }, .unused },67933 .dst_temps = .{ .{ .ref = .src0 }, .unused },
67936 .clobbers = .{ .eflags = true },67934 .clobbers = .{ .eflags = true },
67937 .each = .{ .once = &.{67935 .each = .{ .once = &.{
67938 .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },67936 .{ ._, .b_, .swap, .dst0q, ._, ._, ._ },
67939 .{ ._, ._r, .sh, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },67937 .{ ._, ._r, .sh, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ },
67940 } },67938 } },
67941 }, .{67939 }, .{
...@@ -67963,7 +67961,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67963,7 +67961,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67963 .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },67961 .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
67964 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },67962 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
67965 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },67963 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
67966 .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },67964 .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
67967 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },67965 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
67968 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },67966 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
67969 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },67967 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
...@@ -67993,7 +67991,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -67993,7 +67991,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
67993 .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },67991 .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
67994 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },67992 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
67995 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },67993 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
67996 .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ },67994 .{ ._, .b_, .swap, .tmp2q, ._, ._, ._ },
67997 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },67995 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
67998 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },67996 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
67999 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },67997 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
...@@ -68027,7 +68025,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68027,7 +68025,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68027 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },68025 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
68028 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },68026 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
68029 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },68027 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
68030 .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },68028 .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
68031 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },68029 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
68032 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },68030 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
68033 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },68031 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
...@@ -68060,7 +68058,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68060,7 +68058,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68060 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },68058 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
68061 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },68059 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
68062 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },68060 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
68063 .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ },68061 .{ ._, .b_, .swap, .tmp2q, ._, ._, ._ },
68064 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },68062 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
68065 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },68063 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
68066 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },68064 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
...@@ -68092,7 +68090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68092,7 +68090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68092 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },68090 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
68093 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },68091 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
68094 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },68092 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
68095 .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },68093 .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
68096 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },68094 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
68097 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },68095 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
68098 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },68096 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
...@@ -68123,7 +68121,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68123,7 +68121,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68123 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },68121 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
68124 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },68122 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
68125 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },68123 .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ },
68126 .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ },68124 .{ ._, .b_, .swap, .tmp2q, ._, ._, ._ },
68127 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },68125 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
68128 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },68126 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
68129 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },68127 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
...@@ -68156,7 +68154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68156,7 +68154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68156 .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },68154 .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
68157 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },68155 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
68158 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },68156 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
68159 .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ },68157 .{ .@"0:", ._be, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
68160 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },68158 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
68161 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },68159 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
68162 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },68160 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
...@@ -68193,7 +68191,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68193,7 +68191,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68193 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },68191 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
68194 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },68192 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
68195 .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },68193 .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
68196 .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ },68194 .{ ._, .b_, .swap, .tmp3q, ._, ._, ._ },
68197 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },68195 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
68198 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },68196 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
68199 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },68197 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
...@@ -68228,7 +68226,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68228,7 +68226,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68228 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },68226 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
68229 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },68227 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
68230 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },68228 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
68231 .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ },68229 .{ .@"0:", ._be, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
68232 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },68230 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
68233 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },68231 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
68234 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },68232 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
...@@ -68264,7 +68262,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68264,7 +68262,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68264 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },68262 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
68265 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },68263 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ },
68266 .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },68264 .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
68267 .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ },68265 .{ ._, .b_, .swap, .tmp3q, ._, ._, ._ },
68268 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },68266 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
68269 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },68267 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
68270 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },68268 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
...@@ -68299,7 +68297,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68299,7 +68297,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68299 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },68297 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
68300 .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },68298 .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
68301 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },68299 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
68302 .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ },68300 .{ .@"0:", ._be, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
68303 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },68301 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
68304 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },68302 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
68305 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },68303 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
...@@ -68335,7 +68333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68335,7 +68333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68335 .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },68333 .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ },
68336 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },68334 .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ },
68337 .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },68335 .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
68338 .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ },68336 .{ ._, .b_, .swap, .tmp3q, ._, ._, ._ },
68339 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },68337 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
68340 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },68338 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
68341 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },68339 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
...@@ -68369,7 +68367,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68369,7 +68367,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68369 .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },68367 .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },
68370 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },68368 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
68371 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },68369 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
68372 .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ },68370 .{ .@"0:", ._be, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
68373 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },68371 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
68374 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },68372 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
68375 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },68373 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
...@@ -68404,7 +68402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68404,7 +68402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68404 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },68402 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
68405 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },68403 .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ },
68406 .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },68404 .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ },
68407 .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ },68405 .{ ._, .b_, .swap, .tmp3q, ._, ._, ._ },
68408 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },68406 .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ },
68409 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },68407 .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ },
68410 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },68408 .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ },
...@@ -68443,7 +68441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68443,7 +68441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68443 .{ .src = .{ .to_sse, .none, .none } },68441 .{ .src = .{ .to_sse, .none, .none } },
68444 },68442 },
68445 .extra_temps = .{68443 .extra_temps = .{
68446 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },68444 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
68447 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },68445 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
68448 .unused,68446 .unused,
68449 .unused,68447 .unused,
...@@ -68467,7 +68465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68467,7 +68465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68467 .{ .src = .{ .to_mut_sse, .none, .none } },68465 .{ .src = .{ .to_mut_sse, .none, .none } },
68468 },68466 },
68469 .extra_temps = .{68467 .extra_temps = .{
68470 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },68468 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
68471 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },68469 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
68472 .unused,68470 .unused,
68473 .unused,68471 .unused,
...@@ -68491,7 +68489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68491,7 +68489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68491 .{ .src = .{ .to_sse, .none, .none } },68489 .{ .src = .{ .to_sse, .none, .none } },
68492 },68490 },
68493 .extra_temps = .{68491 .extra_temps = .{
68494 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68492 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68495 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },68493 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
68496 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68494 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68497 .unused,68495 .unused,
...@@ -68519,7 +68517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68519,7 +68517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68519 .{ .src = .{ .to_sse, .none, .none } },68517 .{ .src = .{ .to_sse, .none, .none } },
68520 },68518 },
68521 .extra_temps = .{68519 .extra_temps = .{
68522 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68520 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68523 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },68521 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
68524 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68522 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68525 .unused,68523 .unused,
...@@ -68548,7 +68546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68548,7 +68546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68548 .{ .src = .{ .to_mut_sse, .none, .none } },68546 .{ .src = .{ .to_mut_sse, .none, .none } },
68549 },68547 },
68550 .extra_temps = .{68548 .extra_temps = .{
68551 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68549 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68552 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68550 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68553 .unused,68551 .unused,
68554 .unused,68552 .unused,
...@@ -68577,7 +68575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68577,7 +68575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68577 .{ .src = .{ .to_mut_sse, .none, .none } },68575 .{ .src = .{ .to_mut_sse, .none, .none } },
68578 },68576 },
68579 .extra_temps = .{68577 .extra_temps = .{
68580 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68578 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68581 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68579 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68582 .unused,68580 .unused,
68583 .unused,68581 .unused,
...@@ -68644,7 +68642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68644,7 +68642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68644 .{ .src = .{ .to_sse, .none, .none } },68642 .{ .src = .{ .to_sse, .none, .none } },
68645 },68643 },
68646 .extra_temps = .{68644 .extra_temps = .{
68647 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },68645 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
68648 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },68646 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
68649 .unused,68647 .unused,
68650 .unused,68648 .unused,
...@@ -68670,7 +68668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68670,7 +68668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68670 .{ .src = .{ .to_mut_sse, .none, .none } },68668 .{ .src = .{ .to_mut_sse, .none, .none } },
68671 },68669 },
68672 .extra_temps = .{68670 .extra_temps = .{
68673 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },68671 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
68674 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },68672 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
68675 .unused,68673 .unused,
68676 .unused,68674 .unused,
...@@ -68696,7 +68694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68696,7 +68694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68696 .{ .src = .{ .to_sse, .none, .none } },68694 .{ .src = .{ .to_sse, .none, .none } },
68697 },68695 },
68698 .extra_temps = .{68696 .extra_temps = .{
68699 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68697 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68700 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },68698 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
68701 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68699 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68702 .unused,68700 .unused,
...@@ -68726,7 +68724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68726,7 +68724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68726 .{ .src = .{ .to_sse, .none, .none } },68724 .{ .src = .{ .to_sse, .none, .none } },
68727 },68725 },
68728 .extra_temps = .{68726 .extra_temps = .{
68729 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68727 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68730 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },68728 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
68731 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68729 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68732 .unused,68730 .unused,
...@@ -68757,7 +68755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68757,7 +68755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68757 .{ .src = .{ .to_mut_sse, .none, .none } },68755 .{ .src = .{ .to_mut_sse, .none, .none } },
68758 },68756 },
68759 .extra_temps = .{68757 .extra_temps = .{
68760 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68758 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68761 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68759 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68762 .unused,68760 .unused,
68763 .unused,68761 .unused,
...@@ -68788,7 +68786,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68788,7 +68786,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68788 .{ .src = .{ .to_mut_sse, .none, .none } },68786 .{ .src = .{ .to_mut_sse, .none, .none } },
68789 },68787 },
68790 .extra_temps = .{68788 .extra_temps = .{
68791 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68789 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68792 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68790 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68793 .unused,68791 .unused,
68794 .unused,68792 .unused,
...@@ -68858,7 +68856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68858,7 +68856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68858 .{ .src = .{ .to_sse, .none, .none } },68856 .{ .src = .{ .to_sse, .none, .none } },
68859 },68857 },
68860 .extra_temps = .{68858 .extra_temps = .{
68861 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },68859 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
68862 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },68860 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
68863 .unused,68861 .unused,
68864 .unused,68862 .unused,
...@@ -68884,7 +68882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68884,7 +68882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68884 .{ .src = .{ .to_mut_sse, .none, .none } },68882 .{ .src = .{ .to_mut_sse, .none, .none } },
68885 },68883 },
68886 .extra_temps = .{68884 .extra_temps = .{
68887 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },68885 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
68888 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },68886 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
68889 .unused,68887 .unused,
68890 .unused,68888 .unused,
...@@ -68910,7 +68908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68910,7 +68908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68910 .{ .src = .{ .to_sse, .none, .none } },68908 .{ .src = .{ .to_sse, .none, .none } },
68911 },68909 },
68912 .extra_temps = .{68910 .extra_temps = .{
68913 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68911 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68914 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },68912 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
68915 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68913 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68916 .unused,68914 .unused,
...@@ -68940,7 +68938,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68940,7 +68938,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68940 .{ .src = .{ .to_sse, .none, .none } },68938 .{ .src = .{ .to_sse, .none, .none } },
68941 },68939 },
68942 .extra_temps = .{68940 .extra_temps = .{
68943 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68941 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68944 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },68942 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
68945 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68943 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68946 .unused,68944 .unused,
...@@ -68971,7 +68969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -68971,7 +68969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
68971 .{ .src = .{ .to_mut_sse, .none, .none } },68969 .{ .src = .{ .to_mut_sse, .none, .none } },
68972 },68970 },
68973 .extra_temps = .{68971 .extra_temps = .{
68974 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },68972 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
68975 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },68973 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
68976 .unused,68974 .unused,
68977 .unused,68975 .unused,
...@@ -69002,7 +69000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69002,7 +69000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69002 .{ .src = .{ .to_mut_sse, .none, .none } },69000 .{ .src = .{ .to_mut_sse, .none, .none } },
69003 },69001 },
69004 .extra_temps = .{69002 .extra_temps = .{
69005 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },69003 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
69006 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },69004 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
69007 .unused,69005 .unused,
69008 .unused,69006 .unused,
...@@ -69072,7 +69070,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69072,7 +69070,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69072 .{ .src = .{ .to_sse, .none, .none } },69070 .{ .src = .{ .to_sse, .none, .none } },
69073 },69071 },
69074 .extra_temps = .{69072 .extra_temps = .{
69075 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69073 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69076 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },69074 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
69077 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69075 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69078 .unused,69076 .unused,
...@@ -69098,7 +69096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69098,7 +69096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69098 .{ .src = .{ .to_mut_sse, .none, .none } },69096 .{ .src = .{ .to_mut_sse, .none, .none } },
69099 },69097 },
69100 .extra_temps = .{69098 .extra_temps = .{
69101 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69099 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69102 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },69100 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
69103 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69101 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69104 .unused,69102 .unused,
...@@ -69124,7 +69122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69124,7 +69122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69124 .{ .src = .{ .to_mut_sse, .none, .none } },69122 .{ .src = .{ .to_mut_sse, .none, .none } },
69125 },69123 },
69126 .extra_temps = .{69124 .extra_temps = .{
69127 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69125 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69128 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69126 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69129 .unused,69127 .unused,
69130 .unused,69128 .unused,
...@@ -69151,7 +69149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69151,7 +69149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69151 },69149 },
69152 .extra_temps = .{69150 .extra_temps = .{
69153 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },69151 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
69154 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },69152 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
69155 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },69153 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
69156 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },69154 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
69157 .unused,69155 .unused,
...@@ -69180,7 +69178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69180,7 +69178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69180 },69178 },
69181 .extra_temps = .{69179 .extra_temps = .{
69182 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },69180 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
69183 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },69181 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
69184 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },69182 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
69185 .unused,69183 .unused,
69186 .unused,69184 .unused,
...@@ -69249,7 +69247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69249,7 +69247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69249 .{ .src = .{ .to_sse, .none, .none } },69247 .{ .src = .{ .to_sse, .none, .none } },
69250 },69248 },
69251 .extra_temps = .{69249 .extra_temps = .{
69252 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69250 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69253 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },69251 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
69254 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69252 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69255 .unused,69253 .unused,
...@@ -69276,7 +69274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69276,7 +69274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69276 .{ .src = .{ .to_mut_sse, .none, .none } },69274 .{ .src = .{ .to_mut_sse, .none, .none } },
69277 },69275 },
69278 .extra_temps = .{69276 .extra_temps = .{
69279 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69277 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69280 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },69278 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
69281 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69279 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69282 .unused,69280 .unused,
...@@ -69303,7 +69301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69303,7 +69301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69303 .{ .src = .{ .to_mut_sse, .none, .none } },69301 .{ .src = .{ .to_mut_sse, .none, .none } },
69304 },69302 },
69305 .extra_temps = .{69303 .extra_temps = .{
69306 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69304 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69307 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69305 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69308 .unused,69306 .unused,
69309 .unused,69307 .unused,
...@@ -69331,7 +69329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69331,7 +69329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69331 },69329 },
69332 .extra_temps = .{69330 .extra_temps = .{
69333 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },69331 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
69334 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },69332 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
69335 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },69333 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
69336 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },69334 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
69337 .unused,69335 .unused,
...@@ -69362,7 +69360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69362,7 +69360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69362 },69360 },
69363 .extra_temps = .{69361 .extra_temps = .{
69364 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },69362 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
69365 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },69363 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
69366 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },69364 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
69367 .unused,69365 .unused,
69368 .unused,69366 .unused,
...@@ -69434,7 +69432,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69434,7 +69432,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69434 .{ .src = .{ .to_sse, .none, .none } },69432 .{ .src = .{ .to_sse, .none, .none } },
69435 },69433 },
69436 .extra_temps = .{69434 .extra_temps = .{
69437 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69435 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69438 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },69436 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
69439 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69437 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69440 .unused,69438 .unused,
...@@ -69461,7 +69459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69461,7 +69459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69461 .{ .src = .{ .to_mut_sse, .none, .none } },69459 .{ .src = .{ .to_mut_sse, .none, .none } },
69462 },69460 },
69463 .extra_temps = .{69461 .extra_temps = .{
69464 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69462 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69465 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },69463 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
69466 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69464 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69467 .unused,69465 .unused,
...@@ -69488,7 +69486,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69488,7 +69486,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69488 .{ .src = .{ .to_mut_sse, .none, .none } },69486 .{ .src = .{ .to_mut_sse, .none, .none } },
69489 },69487 },
69490 .extra_temps = .{69488 .extra_temps = .{
69491 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69489 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69492 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69490 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69493 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },69491 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
69494 .unused,69492 .unused,
...@@ -69517,7 +69515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69517,7 +69515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69517 },69515 },
69518 .extra_temps = .{69516 .extra_temps = .{
69519 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },69517 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
69520 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },69518 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
69521 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },69519 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
69522 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },69520 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
69523 .unused,69521 .unused,
...@@ -69548,7 +69546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69548,7 +69546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69548 },69546 },
69549 .extra_temps = .{69547 .extra_temps = .{
69550 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },69548 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
69551 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },69549 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .reverse } },
69552 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },69550 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
69553 .unused,69551 .unused,
69554 .unused,69552 .unused,
...@@ -69620,7 +69618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69620,7 +69618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69620 .{ .src = .{ .to_sse, .none, .none } },69618 .{ .src = .{ .to_sse, .none, .none } },
69621 },69619 },
69622 .extra_temps = .{69620 .extra_temps = .{
69623 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69621 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69624 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },69622 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
69625 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69623 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69626 .unused,69624 .unused,
...@@ -69646,7 +69644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69646,7 +69644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69646 .{ .src = .{ .to_mut_sse, .none, .none } },69644 .{ .src = .{ .to_mut_sse, .none, .none } },
69647 },69645 },
69648 .extra_temps = .{69646 .extra_temps = .{
69649 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69647 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69650 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },69648 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
69651 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69649 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69652 .unused,69650 .unused,
...@@ -69672,7 +69670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69672,7 +69670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69672 .{ .src = .{ .to_mut_sse, .none, .none } },69670 .{ .src = .{ .to_mut_sse, .none, .none } },
69673 },69671 },
69674 .extra_temps = .{69672 .extra_temps = .{
69675 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69673 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69676 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69674 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69677 .unused,69675 .unused,
69678 .unused,69676 .unused,
...@@ -69700,7 +69698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69700,7 +69698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69700 },69698 },
69701 .extra_temps = .{69699 .extra_temps = .{
69702 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },69700 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },
69703 .{ .type = .vector_32_u8, .kind = .reverse_bits_mem },69701 .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .reverse } },
69704 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },69702 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
69705 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },69703 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
69706 .unused,69704 .unused,
...@@ -69743,7 +69741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69743,7 +69741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69743 .dst_temps = .{ .{ .ref = .src0 }, .unused },69741 .dst_temps = .{ .{ .ref = .src0 }, .unused },
69744 .clobbers = .{ .eflags = true },69742 .clobbers = .{ .eflags = true },
69745 .each = .{ .once = &.{69743 .each = .{ .once = &.{
69746 .{ ._, ._, .bswap, .src0d, ._, ._, ._ },69744 .{ ._, .b_, .swap, .src0d, ._, ._, ._ },
69747 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },69745 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
69748 .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ },69746 .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ },
69749 .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ },69747 .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ },
...@@ -69770,7 +69768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69770,7 +69768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69770 .{ .src = .{ .to_sse, .none, .none } },69768 .{ .src = .{ .to_sse, .none, .none } },
69771 },69769 },
69772 .extra_temps = .{69770 .extra_temps = .{
69773 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69771 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69774 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },69772 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
69775 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69773 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69776 .unused,69774 .unused,
...@@ -69797,7 +69795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69797,7 +69795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69797 .{ .src = .{ .to_mut_sse, .none, .none } },69795 .{ .src = .{ .to_mut_sse, .none, .none } },
69798 },69796 },
69799 .extra_temps = .{69797 .extra_temps = .{
69800 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69798 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69801 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },69799 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
69802 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69800 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69803 .unused,69801 .unused,
...@@ -69824,7 +69822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69824,7 +69822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69824 .{ .src = .{ .to_mut_sse, .none, .none } },69822 .{ .src = .{ .to_mut_sse, .none, .none } },
69825 },69823 },
69826 .extra_temps = .{69824 .extra_temps = .{
69827 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69825 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69828 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69826 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69829 .unused,69827 .unused,
69830 .unused,69828 .unused,
...@@ -69853,7 +69851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69853,7 +69851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69853 },69851 },
69854 .extra_temps = .{69852 .extra_temps = .{
69855 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },69853 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },
69856 .{ .type = .vector_32_u8, .kind = .reverse_bits_mem },69854 .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .reverse } },
69857 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },69855 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
69858 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },69856 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
69859 .unused,69857 .unused,
...@@ -69898,7 +69896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69898,7 +69896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69898 .dst_temps = .{ .{ .ref = .src0 }, .unused },69896 .dst_temps = .{ .{ .ref = .src0 }, .unused },
69899 .clobbers = .{ .eflags = true },69897 .clobbers = .{ .eflags = true },
69900 .each = .{ .once = &.{69898 .each = .{ .once = &.{
69901 .{ ._, ._, .bswap, .src0d, ._, ._, ._ },69899 .{ ._, .b_, .swap, .src0d, ._, ._, ._ },
69902 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },69900 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
69903 .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ },69901 .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ },
69904 .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ },69902 .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ },
...@@ -69926,7 +69924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69926,7 +69924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69926 .{ .src = .{ .to_sse, .none, .none } },69924 .{ .src = .{ .to_sse, .none, .none } },
69927 },69925 },
69928 .extra_temps = .{69926 .extra_temps = .{
69929 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69927 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69930 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },69928 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
69931 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69929 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69932 .unused,69930 .unused,
...@@ -69953,7 +69951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69953,7 +69951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69953 .{ .src = .{ .to_mut_sse, .none, .none } },69951 .{ .src = .{ .to_mut_sse, .none, .none } },
69954 },69952 },
69955 .extra_temps = .{69953 .extra_temps = .{
69956 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69954 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69957 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },69955 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
69958 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69956 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69959 .unused,69957 .unused,
...@@ -69980,7 +69978,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -69980,7 +69978,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
69980 .{ .src = .{ .to_mut_sse, .none, .none } },69978 .{ .src = .{ .to_mut_sse, .none, .none } },
69981 },69979 },
69982 .extra_temps = .{69980 .extra_temps = .{
69983 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },69981 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
69984 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },69982 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
69985 .unused,69983 .unused,
69986 .unused,69984 .unused,
...@@ -70009,7 +70007,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70009,7 +70007,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70009 },70007 },
70010 .extra_temps = .{70008 .extra_temps = .{
70011 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },70009 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },
70012 .{ .type = .vector_32_u8, .kind = .reverse_bits_mem },70010 .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .reverse } },
70013 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },70011 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
70014 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },70012 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
70015 .unused,70013 .unused,
...@@ -70054,7 +70052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70054,7 +70052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70054 .dst_temps = .{ .{ .ref = .src0 }, .unused },70052 .dst_temps = .{ .{ .ref = .src0 }, .unused },
70055 .clobbers = .{ .eflags = true },70053 .clobbers = .{ .eflags = true },
70056 .each = .{ .once = &.{70054 .each = .{ .once = &.{
70057 .{ ._, ._, .bswap, .src0d, ._, ._, ._ },70055 .{ ._, .b_, .swap, .src0d, ._, ._, ._ },
70058 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },70056 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
70059 .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ },70057 .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ },
70060 .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ },70058 .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ },
...@@ -70082,7 +70080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70082,7 +70080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70082 .{ .src = .{ .to_sse, .none, .none } },70080 .{ .src = .{ .to_sse, .none, .none } },
70083 },70081 },
70084 .extra_temps = .{70082 .extra_temps = .{
70085 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70083 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70086 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },70084 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },
70087 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70085 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70088 .unused,70086 .unused,
...@@ -70108,7 +70106,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70108,7 +70106,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70108 .{ .src = .{ .to_mut_sse, .none, .none } },70106 .{ .src = .{ .to_mut_sse, .none, .none } },
70109 },70107 },
70110 .extra_temps = .{70108 .extra_temps = .{
70111 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70109 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70112 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },70110 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },
70113 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70111 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70114 .unused,70112 .unused,
...@@ -70134,7 +70132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70134,7 +70132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70134 .{ .src = .{ .to_mut_sse, .none, .none } },70132 .{ .src = .{ .to_mut_sse, .none, .none } },
70135 },70133 },
70136 .extra_temps = .{70134 .extra_temps = .{
70137 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70135 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70138 .unused,70136 .unused,
70139 .unused,70137 .unused,
70140 .unused,70138 .unused,
...@@ -70151,7 +70149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70151,7 +70149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70151 .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ },70149 .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ },
70152 .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ },70150 .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ },
70153 .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ },70151 .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ },
70154 .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },70152 .{ ._, .b_, .swap, .dst0q, ._, ._, ._ },
70155 } },70153 } },
70156 }, .{70154 }, .{
70157 .required_features = .{ .@"64bit", null, null, null },70155 .required_features = .{ .@"64bit", null, null, null },
...@@ -70175,7 +70173,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70175,7 +70173,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70175 .dst_temps = .{ .{ .ref = .src0 }, .unused },70173 .dst_temps = .{ .{ .ref = .src0 }, .unused },
70176 .clobbers = .{ .eflags = true },70174 .clobbers = .{ .eflags = true },
70177 .each = .{ .once = &.{70175 .each = .{ .once = &.{
70178 .{ ._, ._, .bswap, .src0q, ._, ._, ._ },70176 .{ ._, .b_, .swap, .src0q, ._, ._, ._ },
70179 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },70177 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
70180 .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },70178 .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },
70181 .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ },70179 .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ },
...@@ -70205,7 +70203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70205,7 +70203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70205 .{ .src = .{ .to_sse, .none, .none } },70203 .{ .src = .{ .to_sse, .none, .none } },
70206 },70204 },
70207 .extra_temps = .{70205 .extra_temps = .{
70208 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70206 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70209 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },70207 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
70210 .unused,70208 .unused,
70211 .unused,70209 .unused,
...@@ -70223,7 +70221,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70223,7 +70221,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70223 .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ },70221 .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ },
70224 .{ ._, .v_b, .gf2p8affineq, .tmp1x, .src0x, .lea(.dst0x), .ui(0) },70222 .{ ._, .v_b, .gf2p8affineq, .tmp1x, .src0x, .lea(.dst0x), .ui(0) },
70225 .{ ._, .v_q, .mov, .dst0q, .tmp1x, ._, ._ },70223 .{ ._, .v_q, .mov, .dst0q, .tmp1x, ._, ._ },
70226 .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },70224 .{ ._, .b_, .swap, .dst0q, ._, ._, ._ },
70227 .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },70225 .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
70228 } },70226 } },
70229 }, .{70227 }, .{
...@@ -70233,7 +70231,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70233,7 +70231,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70233 .{ .src = .{ .to_mut_sse, .none, .none } },70231 .{ .src = .{ .to_mut_sse, .none, .none } },
70234 },70232 },
70235 .extra_temps = .{70233 .extra_temps = .{
70236 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70234 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70237 .unused,70235 .unused,
70238 .unused,70236 .unused,
70239 .unused,70237 .unused,
...@@ -70251,7 +70249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70251,7 +70249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70251 .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ },70249 .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ },
70252 .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ },70250 .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ },
70253 .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ },70251 .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ },
70254 .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },70252 .{ ._, .b_, .swap, .dst0q, ._, ._, ._ },
70255 .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },70253 .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
70256 } },70254 } },
70257 }, .{70255 }, .{
...@@ -70276,7 +70274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70276,7 +70274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70276 .dst_temps = .{ .{ .ref = .src0 }, .unused },70274 .dst_temps = .{ .{ .ref = .src0 }, .unused },
70277 .clobbers = .{ .eflags = true },70275 .clobbers = .{ .eflags = true },
70278 .each = .{ .once = &.{70276 .each = .{ .once = &.{
70279 .{ ._, ._, .bswap, .src0q, ._, ._, ._ },70277 .{ ._, .b_, .swap, .src0q, ._, ._, ._ },
70280 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },70278 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
70281 .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },70279 .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },
70282 .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ },70280 .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ },
...@@ -70307,7 +70305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70307,7 +70305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70307 .{ .src = .{ .to_sse, .none, .none } },70305 .{ .src = .{ .to_sse, .none, .none } },
70308 },70306 },
70309 .extra_temps = .{70307 .extra_temps = .{
70310 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70308 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70311 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },70309 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },
70312 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70310 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70313 .unused,70311 .unused,
...@@ -70334,7 +70332,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70334,7 +70332,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70334 .{ .src = .{ .to_mut_sse, .none, .none } },70332 .{ .src = .{ .to_mut_sse, .none, .none } },
70335 },70333 },
70336 .extra_temps = .{70334 .extra_temps = .{
70337 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70335 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70338 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },70336 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },
70339 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70337 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70340 .unused,70338 .unused,
...@@ -70361,7 +70359,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70361,7 +70359,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70361 .{ .src = .{ .to_mut_sse, .none, .none } },70359 .{ .src = .{ .to_mut_sse, .none, .none } },
70362 },70360 },
70363 .extra_temps = .{70361 .extra_temps = .{
70364 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70362 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70365 .unused,70363 .unused,
70366 .unused,70364 .unused,
70367 .unused,70365 .unused,
...@@ -70379,7 +70377,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70379,7 +70377,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70379 .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ },70377 .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ },
70380 .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ },70378 .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ },
70381 .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ },70379 .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ },
70382 .{ ._, ._, .bswap, .dst0q, ._, ._, ._ },70380 .{ ._, .b_, .swap, .dst0q, ._, ._, ._ },
70383 .{ ._, ._r, .sh, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },70381 .{ ._, ._r, .sh, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
70384 } },70382 } },
70385 }, .{70383 }, .{
...@@ -70404,7 +70402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70404,7 +70402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70404 .dst_temps = .{ .{ .ref = .src0 }, .unused },70402 .dst_temps = .{ .{ .ref = .src0 }, .unused },
70405 .clobbers = .{ .eflags = true },70403 .clobbers = .{ .eflags = true },
70406 .each = .{ .once = &.{70404 .each = .{ .once = &.{
70407 .{ ._, ._, .bswap, .src0q, ._, ._, ._ },70405 .{ ._, .b_, .swap, .src0q, ._, ._, ._ },
70408 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },70406 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
70409 .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },70407 .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },
70410 .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ },70408 .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ },
...@@ -70435,7 +70433,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70435,7 +70433,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70435 .{ .src = .{ .to_sse, .none, .none } },70433 .{ .src = .{ .to_sse, .none, .none } },
70436 },70434 },
70437 .extra_temps = .{70435 .extra_temps = .{
70438 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70436 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70439 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },70437 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
70440 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70438 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70441 .unused,70439 .unused,
...@@ -70461,7 +70459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70461,7 +70459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70461 .{ .src = .{ .to_mut_sse, .none, .none } },70459 .{ .src = .{ .to_mut_sse, .none, .none } },
70462 },70460 },
70463 .extra_temps = .{70461 .extra_temps = .{
70464 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70462 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70465 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },70463 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
70466 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70464 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70467 .unused,70465 .unused,
...@@ -70487,7 +70485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70487,7 +70485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70487 .{ .src = .{ .to_sse, .none, .none } },70485 .{ .src = .{ .to_sse, .none, .none } },
70488 },70486 },
70489 .extra_temps = .{70487 .extra_temps = .{
70490 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70488 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70491 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },70489 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
70492 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70490 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70493 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },70491 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
...@@ -70520,7 +70518,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70520,7 +70518,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70520 .{ .src = .{ .to_mut_sse, .none, .none } },70518 .{ .src = .{ .to_mut_sse, .none, .none } },
70521 },70519 },
70522 .extra_temps = .{70520 .extra_temps = .{
70523 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70521 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70524 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },70522 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
70525 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70523 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70526 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },70524 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -70553,7 +70551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70553,7 +70551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70553 .{ .src = .{ .to_sse, .none, .none } },70551 .{ .src = .{ .to_sse, .none, .none } },
70554 },70552 },
70555 .extra_temps = .{70553 .extra_temps = .{
70556 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70554 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70557 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },70555 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
70558 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70556 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70559 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },70557 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
...@@ -70586,7 +70584,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70586,7 +70584,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70586 .{ .src = .{ .to_mut_sse, .none, .none } },70584 .{ .src = .{ .to_mut_sse, .none, .none } },
70587 },70585 },
70588 .extra_temps = .{70586 .extra_temps = .{
70589 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70587 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70590 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },70588 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
70591 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70589 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70592 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },70590 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -70619,7 +70617,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70619,7 +70617,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70619 .{ .src = .{ .to_sse, .none, .none } },70617 .{ .src = .{ .to_sse, .none, .none } },
70620 },70618 },
70621 .extra_temps = .{70619 .extra_temps = .{
70622 .{ .type = .vector_32_u8, .kind = .forward_bits_mem },70620 .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .forward } },
70623 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },70621 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },
70624 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70622 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70625 .unused,70623 .unused,
...@@ -70646,11 +70644,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70646,11 +70644,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70646 .{ .src = .{ .to_sse, .none, .none } },70644 .{ .src = .{ .to_sse, .none, .none } },
70647 },70645 },
70648 .extra_temps = .{70646 .extra_temps = .{
70649 .{ .type = .vector_32_u8, .kind = .forward_bits_mem },70647 .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .forward } },
70650 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },70648 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
70651 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70649 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70652 .unused,70650 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
70653 .unused,70651 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
70654 .unused,70652 .unused,
70655 .unused,70653 .unused,
70656 .unused,70654 .unused,
...@@ -70662,9 +70660,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70662,9 +70660,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70662 .each = .{ .once = &.{70660 .each = .{ .once = &.{
70663 .{ ._, ._, .lea, .tmp2p, .mem(.tmp0), ._, ._ },70661 .{ ._, ._, .lea, .tmp2p, .mem(.tmp0), ._, ._ },
70664 .{ ._, .v_b, .gf2p8affineq, .dst0y, .src0y, .lea(.tmp2y), .ui(0) },70662 .{ ._, .v_b, .gf2p8affineq, .dst0y, .src0y, .lea(.tmp2y), .ui(0) },
70663 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
70665 .{ ._, ._, .lea, .tmp2p, .mem(.tmp1), ._, ._ },70664 .{ ._, ._, .lea, .tmp2p, .mem(.tmp1), ._, ._ },
70666 .{ ._, .vp_b, .shuf, .dst0y, .dst0y, .lea(.tmp2y), ._ },70665 .{ ._, .v_dqa, .mov, .tmp4x, .lea(.tmp2x), ._, ._ },
70667 .{ ._, .v_pd, .perm, .dst0y, .dst0y, .ui(0b01_00_11_10), ._ },70666 .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .tmp4x, ._ },
70667 .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp4x, ._ },
70668 .{ ._, .v_f128, .insert, .dst0y, .tmp3y, .dst0x, .ui(1) },
70668 } },70669 } },
70669 }, .{70670 }, .{
70670 .required_features = .{ .avx2, .gfni, null, null },70671 .required_features = .{ .avx2, .gfni, null, null },
...@@ -70675,7 +70676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70675,7 +70676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70675 .extra_temps = .{70676 .extra_temps = .{
70676 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70677 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70677 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },70678 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
70678 .{ .type = .vector_32_u8, .kind = .forward_bits_mem },70679 .{ .type = .vector_32_u8, .kind = .{ .bits_mem = .forward } },
70679 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },70680 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },
70680 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },70681 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
70681 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },70682 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
...@@ -70702,42 +70703,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70702,42 +70703,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70702 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },70703 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
70703 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },70704 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
70704 } },70705 } },
70705 }, .{
70706 .required_features = .{ .avx, .gfni, null, null },
70707 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .yword, .is = 256 } }, .any, .any },
70708 .patterns = &.{
70709 .{ .src = .{ .to_mem, .none, .none } },
70710 },
70711 .extra_temps = .{
70712 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70713 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
70714 .{ .type = .vector_32_u8, .kind = .forward_bits_mem },
70715 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },
70716 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
70717 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
70718 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
70719 .unused,
70720 .unused,
70721 .unused,
70722 .unused,
70723 },
70724 .dst_temps = .{ .mem, .unused },
70725 .clobbers = .{ .eflags = true },
70726 .each = .{ .once = &.{
70727 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
70728 .{ ._, .v_dqa, .mov, .tmp4y, .lea(.tmp0y), ._, ._ },
70729 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
70730 .{ ._, .v_dqa, .mov, .tmp5y, .lea(.tmp0y), ._, ._ },
70731 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
70732 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
70733 .{ .@"0:", .v_pd, .perm, .tmp6y, .lea(.tmp1y), .ui(0b01_00_11_10), ._ },
70734 .{ ._, .v_b, .gf2p8affineq, .tmp6y, .tmp6y, .tmp4y, .ui(0) },
70735 .{ ._, .vp_b, .shuf, .tmp6y, .tmp6y, .tmp5y, ._ },
70736 .{ ._, .v_dqu, .mov, .memi(.dst0y, .tmp0), .tmp6y, ._, ._ },
70737 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 32), ._, ._ },
70738 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
70739 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
70740 } },
70741 }, .{70706 }, .{
70742 .required_features = .{ .avx, .gfni, null, null },70707 .required_features = .{ .avx, .gfni, null, null },
70743 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },70708 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },
...@@ -70747,7 +70712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70747,7 +70712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70747 .extra_temps = .{70712 .extra_temps = .{
70748 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },70713 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
70749 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },70714 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
70750 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },70715 .{ .type = .vector_16_u8, .kind = .{ .bits_mem = .forward } },
70751 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },70716 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
70752 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },70717 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
70753 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },70718 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
...@@ -70820,7 +70785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70820,7 +70785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70820 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },70785 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },
70821 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },70786 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },
70822 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },70787 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },
70823 .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },70788 .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },
70824 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },70789 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
70825 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },70790 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
70826 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },70791 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
...@@ -70871,7 +70836,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70871,7 +70836,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70871 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },70836 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },
70872 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },70837 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },
70873 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },70838 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },
70874 .{ ._, ._, .bswap, .tmp5q, ._, ._, ._ },70839 .{ ._, .b_, .swap, .tmp5q, ._, ._, ._ },
70875 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },70840 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },
70876 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },70841 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
70877 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },70842 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
...@@ -70927,7 +70892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70927,7 +70892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70927 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },70892 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },
70928 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },70893 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },
70929 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },70894 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },
70930 .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },70895 .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },
70931 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },70896 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
70932 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },70897 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
70933 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },70898 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
...@@ -70982,7 +70947,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -70982,7 +70947,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
70982 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },70947 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },
70983 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },70948 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },
70984 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },70949 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },
70985 .{ ._, ._, .bswap, .tmp5q, ._, ._, ._ },70950 .{ ._, .b_, .swap, .tmp5q, ._, ._, ._ },
70986 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },70951 .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },
70987 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },70952 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
70988 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },70953 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
...@@ -71035,7 +71000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71035,7 +71000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71035 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },71000 .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ },
71036 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },71001 .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ },
71037 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },71002 .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ },
71038 .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },71003 .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ },
71039 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },71004 .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
71040 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },71005 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
71041 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },71006 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
...@@ -71069,7 +71034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71069,7 +71034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71069 .{ ._, ._, .mov, .tmp3q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71034 .{ ._, ._, .mov, .tmp3q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71070 .{ ._, ._, .mov, .tmp4q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71035 .{ ._, ._, .mov, .tmp4q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71071 .{ .@"0:", ._, .mov, .tmp5q, .lea(.tmp1q), ._, ._ },71036 .{ .@"0:", ._, .mov, .tmp5q, .lea(.tmp1q), ._, ._ },
71072 .{ ._, ._, .bswap, .tmp5q, ._, ._, ._ },71037 .{ ._, .b_, .swap, .tmp5q, ._, ._, ._ },
71073 .{ ._, ._, .mov, .tmp6q, .tmp5q, ._, ._ },71038 .{ ._, ._, .mov, .tmp6q, .tmp5q, ._, ._ },
71074 .{ ._, ._, .@"and", .tmp6q, .tmp2q, ._, ._ },71039 .{ ._, ._, .@"and", .tmp6q, .tmp2q, ._, ._ },
71075 .{ ._, ._r, .sh, .tmp5q, .ui(4), ._, ._ },71040 .{ ._, ._r, .sh, .tmp5q, .ui(4), ._, ._ },
...@@ -71124,7 +71089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71124,7 +71089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71124 .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },71089 .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },
71125 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71090 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71126 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71091 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71127 .{ .@"0:", ._, .movbe, .tmp6q, .lea(.tmp1q), ._, ._ },71092 .{ .@"0:", ._be, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },
71128 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },71093 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },
71129 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },71094 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },
71130 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },71095 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },
...@@ -71183,7 +71148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71183,7 +71148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71183 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71148 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71184 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71149 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71185 .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },71150 .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },
71186 .{ ._, ._, .bswap, .tmp6q, ._, ._, ._ },71151 .{ ._, .b_, .swap, .tmp6q, ._, ._, ._ },
71187 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },71152 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },
71188 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },71153 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },
71189 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },71154 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },
...@@ -71239,7 +71204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71239,7 +71204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71239 .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },71204 .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },
71240 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71205 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71241 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71206 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71242 .{ .@"0:", ._, .movbe, .tmp6q, .lea(.tmp1q), ._, ._ },71207 .{ .@"0:", ._be, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },
71243 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },71208 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },
71244 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },71209 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },
71245 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },71210 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },
...@@ -71296,7 +71261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71296,7 +71261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71296 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71261 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71297 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71262 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71298 .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },71263 .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },
71299 .{ ._, ._, .bswap, .tmp6q, ._, ._, ._ },71264 .{ ._, .b_, .swap, .tmp6q, ._, ._, ._ },
71300 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },71265 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },
71301 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },71266 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },
71302 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },71267 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },
...@@ -71353,7 +71318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71353,7 +71318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71353 .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },71318 .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },
71354 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71319 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71355 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71320 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71356 .{ .@"0:", ._, .movbe, .tmp6q, .lea(.tmp1q), ._, ._ },71321 .{ .@"0:", ._be, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },
71357 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },71322 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },
71358 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },71323 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },
71359 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },71324 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },
...@@ -71411,7 +71376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71411,7 +71376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71411 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71376 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71412 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71377 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71413 .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },71378 .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },
71414 .{ ._, ._, .bswap, .tmp6q, ._, ._, ._ },71379 .{ ._, .b_, .swap, .tmp6q, ._, ._, ._ },
71415 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },71380 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },
71416 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },71381 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },
71417 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },71382 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },
...@@ -71466,7 +71431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71466,7 +71431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71466 .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },71431 .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ },
71467 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71432 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71468 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71433 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71469 .{ .@"0:", ._, .movbe, .tmp6q, .lea(.tmp1q), ._, ._ },71434 .{ .@"0:", ._be, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },
71470 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },71435 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },
71471 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },71436 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },
71472 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },71437 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },
...@@ -71522,7 +71487,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -71522,7 +71487,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
71522 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },71487 .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ },
71523 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },71488 .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ },
71524 .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },71489 .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ },
71525 .{ ._, ._, .bswap, .tmp6q, ._, ._, ._ },71490 .{ ._, .b_, .swap, .tmp6q, ._, ._, ._ },
71526 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },71491 .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ },
71527 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },71492 .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ },
71528 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },71493 .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ },
...@@ -77295,15 +77260,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77295,15 +77260,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77295 },77260 },
77296 .cmp_vector, .cmp_vector_optimized => |air_tag| if (use_old) try cg.airCmpVector(inst) else fallback: {77261 .cmp_vector, .cmp_vector_optimized => |air_tag| if (use_old) try cg.airCmpVector(inst) else fallback: {
77297 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;77262 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
77298 const extra = cg.air.extraData(Air.VectorCmp, ty_pl.payload).data;77263 const vector_cmp = cg.air.extraData(Air.VectorCmp, ty_pl.payload).data;
77299 switch (extra.compareOperator()) {77264 switch (vector_cmp.compareOperator()) {
77300 .eq, .neq => {},77265 .eq, .neq => {},
77301 .lt, .lte, .gte, .gt => if (cg.floatBits(cg.typeOf(extra.lhs).childType(zcu)) == null)77266 .lt, .lte, .gte, .gt => if (cg.floatBits(cg.typeOf(vector_cmp.lhs).childType(zcu)) == null)
77302 break :fallback try cg.airCmpVector(inst),77267 break :fallback try cg.airCmpVector(inst),
77303 }77268 }
77304 var ops = try cg.tempsFromOperands(inst, .{ extra.lhs, extra.rhs });77269 var ops = try cg.tempsFromOperands(inst, .{ vector_cmp.lhs, vector_cmp.rhs });
77305 var res: [1]Temp = undefined;77270 var res: [1]Temp = undefined;
77306 (err: switch (extra.compareOperator()) {77271 (err: switch (vector_cmp.compareOperator()) {
77307 .lt, .lte, .gte, .gt => |cmp_op| {77272 .lt, .lte, .gte, .gt => |cmp_op| {
77308 switch (cmp_op) {77273 switch (cmp_op) {
77309 else => unreachable,77274 else => unreachable,
...@@ -84350,14 +84315,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -84350,14 +84315,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
84350 }) catch |err| switch (err) {84315 }) catch |err| switch (err) {
84351 error.SelectFailed => return cg.fail("failed to select {s} {s} {} {} {}", .{84316 error.SelectFailed => return cg.fail("failed to select {s} {s} {} {} {}", .{
84352 @tagName(air_tag),84317 @tagName(air_tag),
84353 @tagName(extra.compareOperator()),84318 @tagName(vector_cmp.compareOperator()),
84354 cg.typeOf(extra.lhs).fmt(pt),84319 cg.typeOf(vector_cmp.lhs).fmt(pt),
84355 ops[0].tracking(cg),84320 ops[0].tracking(cg),
84356 ops[1].tracking(cg),84321 ops[1].tracking(cg),
84357 }),84322 }),
84358 else => |e| return e,84323 else => |e| return e,
84359 };84324 };
84360 try res[0].finish(inst, &.{ extra.lhs, extra.rhs }, &ops, cg);84325 try res[0].finish(inst, &.{ vector_cmp.lhs, vector_cmp.rhs }, &ops, cg);
84361 },84326 },
84362 .cond_br => try cg.airCondBr(inst),84327 .cond_br => try cg.airCondBr(inst),
84363 .switch_br => try cg.airSwitchBr(inst),84328 .switch_br => try cg.airSwitchBr(inst),
...@@ -84386,16 +84351,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -84386,16 +84351,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
84386 },84351 },
84387 .dbg_inline_block => {84352 .dbg_inline_block => {
84388 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;84353 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
84389 const extra = cg.air.extraData(Air.DbgInlineBlock, ty_pl.payload);84354 const dbg_inline_block = cg.air.extraData(Air.DbgInlineBlock, ty_pl.payload);
84390 const old_inline_func = cg.inline_func;84355 const old_inline_func = cg.inline_func;
84391 defer cg.inline_func = old_inline_func;84356 defer cg.inline_func = old_inline_func;
84392 cg.inline_func = extra.data.func;84357 cg.inline_func = dbg_inline_block.data.func;
84393 if (cg.debug_output != .none) _ = try cg.addInst(.{84358 if (cg.debug_output != .none) _ = try cg.addInst(.{
84394 .tag = .pseudo,84359 .tag = .pseudo,
84395 .ops = .pseudo_dbg_enter_inline_func,84360 .ops = .pseudo_dbg_enter_inline_func,
84396 .data = .{ .func = extra.data.func },84361 .data = .{ .func = dbg_inline_block.data.func },
84397 });84362 });
84398 try cg.lowerBlock(inst, @ptrCast(cg.air.extra[extra.end..][0..extra.data.body_len]));84363 try cg.lowerBlock(inst, @ptrCast(cg.air.extra[dbg_inline_block.end..][0..dbg_inline_block.data.body_len]));
84399 if (cg.debug_output != .none) _ = try cg.addInst(.{84364 if (cg.debug_output != .none) _ = try cg.addInst(.{
84400 .tag = .pseudo,84365 .tag = .pseudo,
84401 .ops = .pseudo_dbg_leave_inline_func,84366 .ops = .pseudo_dbg_leave_inline_func,
...@@ -97931,14 +97896,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -97931,14 +97896,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
97931 },97896 },
97932 .struct_field_ptr => if (use_old) try cg.airStructFieldPtr(inst) else {97897 .struct_field_ptr => if (use_old) try cg.airStructFieldPtr(inst) else {
97933 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;97898 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
97934 const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data;97899 const struct_field = cg.air.extraData(Air.StructField, ty_pl.payload).data;
97935 var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand});97900 var ops = try cg.tempsFromOperands(inst, .{struct_field.struct_operand});
97936 try ops[0].toOffset(cg.fieldOffset(97901 try ops[0].toOffset(cg.fieldOffset(
97937 cg.typeOf(extra.struct_operand),97902 cg.typeOf(struct_field.struct_operand),
97938 ty_pl.ty.toType(),97903 ty_pl.ty.toType(),
97939 extra.field_index,97904 struct_field.field_index,
97940 ), cg);97905 ), cg);
97941 try ops[0].finish(inst, &.{extra.struct_operand}, &ops, cg);97906 try ops[0].finish(inst, &.{struct_field.struct_operand}, &ops, cg);
97942 },97907 },
97943 .struct_field_ptr_index_0,97908 .struct_field_ptr_index_0,
97944 .struct_field_ptr_index_1,97909 .struct_field_ptr_index_1,
...@@ -97968,19 +97933,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -97968,19 +97933,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
97968 },97933 },
97969 .struct_field_val => if (use_old) try cg.airStructFieldVal(inst) else fallback: {97934 .struct_field_val => if (use_old) try cg.airStructFieldVal(inst) else fallback: {
97970 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;97935 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
97971 const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data;97936 const struct_field = cg.air.extraData(Air.StructField, ty_pl.payload).data;
97972 const agg_ty = cg.typeOf(extra.struct_operand);97937 const agg_ty = cg.typeOf(struct_field.struct_operand);
97973 const field_ty = ty_pl.ty.toType();97938 const field_ty = ty_pl.ty.toType();
97974 const field_off: u31 = switch (agg_ty.containerLayout(zcu)) {97939 const field_off: u31 = switch (agg_ty.containerLayout(zcu)) {
97975 .auto, .@"extern" => @intCast(agg_ty.structFieldOffset(extra.field_index, zcu)),97940 .auto, .@"extern" => @intCast(agg_ty.structFieldOffset(struct_field.field_index, zcu)),
97976 .@"packed" => break :fallback try cg.airStructFieldVal(inst),97941 .@"packed" => break :fallback try cg.airStructFieldVal(inst),
97977 };97942 };
97978 var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand});97943 var ops = try cg.tempsFromOperands(inst, .{struct_field.struct_operand});
97979 var res = if (!hack_around_sema_opv_bugs or field_ty.hasRuntimeBitsIgnoreComptime(zcu))97944 var res = if (!hack_around_sema_opv_bugs or field_ty.hasRuntimeBitsIgnoreComptime(zcu))
97980 try ops[0].read(field_ty, .{ .disp = field_off }, cg)97945 try ops[0].read(field_ty, .{ .disp = field_off }, cg)
97981 else97946 else
97982 try cg.tempInit(field_ty, .none);97947 try cg.tempInit(field_ty, .none);
97983 try res.finish(inst, &.{extra.struct_operand}, &ops, cg);97948 try res.finish(inst, &.{struct_field.struct_operand}, &ops, cg);
97984 },97949 },
97985 .set_union_tag => if (use_old) try cg.airSetUnionTag(inst) else {97950 .set_union_tag => if (use_old) try cg.airSetUnionTag(inst) else {
97986 const bin_op = air_datas[@intFromEnum(inst)].bin_op;97951 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
...@@ -98881,9 +98846,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -98881,9 +98846,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
98881 .unused,98846 .unused,
98882 },98847 },
98883 .dst_temps = .{ .mem, .unused },98848 .dst_temps = .{ .mem, .unused },
98849 .clobbers = .{ .eflags = true },
98884 .each = .{ .once = &.{98850 .each = .{ .once = &.{
98885 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },98851 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
98886 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },98852 .{ ._, .v_ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ },
98887 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },98853 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
98888 .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ },98854 .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ },
98889 .{ ._, .v_, .cvttps2dq, .tmp3x, .tmp3x, ._, ._ },98855 .{ ._, .v_, .cvttps2dq, .tmp3x, .tmp3x, ._, ._ },
...@@ -99135,6 +99101,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -99135,6 +99101,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
99135 .unused,99101 .unused,
99136 },99102 },
99137 .dst_temps = .{ .mem, .unused },99103 .dst_temps = .{ .mem, .unused },
99104 .clobbers = .{ .eflags = true },
99138 .each = .{ .once = &.{99105 .each = .{ .once = &.{
99139 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },99106 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
99140 .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },99107 .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
...@@ -99165,6 +99132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -99165,6 +99132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
99165 .unused,99132 .unused,
99166 },99133 },
99167 .dst_temps = .{ .mem, .unused },99134 .dst_temps = .{ .mem, .unused },
99135 .clobbers = .{ .eflags = true },
99168 .each = .{ .once = &.{99136 .each = .{ .once = &.{
99169 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },99137 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
99170 .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },99138 .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
...@@ -99292,6 +99260,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -99292,6 +99260,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
99292 .unused,99260 .unused,
99293 },99261 },
99294 .dst_temps = .{ .mem, .unused },99262 .dst_temps = .{ .mem, .unused },
99263 .clobbers = .{ .eflags = true },
99295 .each = .{ .once = &.{99264 .each = .{ .once = &.{
99296 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },99265 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
99297 .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },99266 .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
...@@ -99321,6 +99290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -99321,6 +99290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
99321 .unused,99290 .unused,
99322 },99291 },
99323 .dst_temps = .{ .mem, .unused },99292 .dst_temps = .{ .mem, .unused },
99293 .clobbers = .{ .eflags = true },
99324 .each = .{ .once = &.{99294 .each = .{ .once = &.{
99325 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },99295 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
99326 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },99296 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
...@@ -99546,6 +99516,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -99546,6 +99516,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
99546 .unused,99516 .unused,
99547 },99517 },
99548 .dst_temps = .{ .mem, .unused },99518 .dst_temps = .{ .mem, .unused },
99519 .clobbers = .{ .eflags = true },
99549 .each = .{ .once = &.{99520 .each = .{ .once = &.{
99550 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },99521 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
99551 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },99522 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
...@@ -100556,6 +100527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -100556,6 +100527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
100556 .unused,100527 .unused,
100557 },100528 },
100558 .dst_temps = .{ .mem, .unused },100529 .dst_temps = .{ .mem, .unused },
100530 .clobbers = .{ .eflags = true },
100559 .each = .{ .once = &.{100531 .each = .{ .once = &.{
100560 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },100532 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
100561 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },100533 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
...@@ -100587,6 +100559,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -100587,6 +100559,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
100587 .unused,100559 .unused,
100588 },100560 },
100589 .dst_temps = .{ .mem, .unused },100561 .dst_temps = .{ .mem, .unused },
100562 .clobbers = .{ .eflags = true },
100590 .each = .{ .once = &.{100563 .each = .{ .once = &.{
100591 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },100564 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
100592 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },100565 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
...@@ -100618,6 +100591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -100618,6 +100591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
100618 .unused,100591 .unused,
100619 },100592 },
100620 .dst_temps = .{ .mem, .unused },100593 .dst_temps = .{ .mem, .unused },
100594 .clobbers = .{ .eflags = true },
100621 .each = .{ .once = &.{100595 .each = .{ .once = &.{
100622 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },100596 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
100623 .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ },100597 .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ },
...@@ -100646,6 +100620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -100646,6 +100620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
100646 .unused,100620 .unused,
100647 },100621 },
100648 .dst_temps = .{ .mem, .unused },100622 .dst_temps = .{ .mem, .unused },
100623 .clobbers = .{ .eflags = true },
100649 .each = .{ .once = &.{100624 .each = .{ .once = &.{
100650 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },100625 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
100651 .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ },100626 .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ },
...@@ -100850,6 +100825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -100850,6 +100825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
100850 .unused,100825 .unused,
100851 },100826 },
100852 .dst_temps = .{ .mem, .unused },100827 .dst_temps = .{ .mem, .unused },
100828 .clobbers = .{ .eflags = true },
100853 .each = .{ .once = &.{100829 .each = .{ .once = &.{
100854 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },100830 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
100855 .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ },100831 .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ },
...@@ -100879,6 +100855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -100879,6 +100855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
100879 .unused,100855 .unused,
100880 },100856 },
100881 .dst_temps = .{ .mem, .unused },100857 .dst_temps = .{ .mem, .unused },
100858 .clobbers = .{ .eflags = true },
100882 .each = .{ .once = &.{100859 .each = .{ .once = &.{
100883 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },100860 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
100884 .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ },100861 .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ },
...@@ -100908,6 +100885,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -100908,6 +100885,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
100908 .unused,100885 .unused,
100909 },100886 },
100910 .dst_temps = .{ .mem, .unused },100887 .dst_temps = .{ .mem, .unused },
100888 .clobbers = .{ .eflags = true },
100911 .each = .{ .once = &.{100889 .each = .{ .once = &.{
100912 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },100890 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
100913 .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ },100891 .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ },
...@@ -100937,6 +100915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -100937,6 +100915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
100937 .unused,100915 .unused,
100938 },100916 },
100939 .dst_temps = .{ .mem, .unused },100917 .dst_temps = .{ .mem, .unused },
100918 .clobbers = .{ .eflags = true },
100940 .each = .{ .once = &.{100919 .each = .{ .once = &.{
100941 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },100920 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
100942 .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ },100921 .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ },
...@@ -101052,6 +101031,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101052,6 +101031,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101052 .unused,101031 .unused,
101053 },101032 },
101054 .dst_temps = .{ .mem, .unused },101033 .dst_temps = .{ .mem, .unused },
101034 .clobbers = .{ .eflags = true },
101055 .each = .{ .once = &.{101035 .each = .{ .once = &.{
101056 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },101036 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
101057 .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },101037 .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
...@@ -101080,6 +101060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101080,6 +101060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101080 .unused,101060 .unused,
101081 },101061 },
101082 .dst_temps = .{ .mem, .unused },101062 .dst_temps = .{ .mem, .unused },
101063 .clobbers = .{ .eflags = true },
101083 .each = .{ .once = &.{101064 .each = .{ .once = &.{
101084 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },101065 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
101085 .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },101066 .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
...@@ -101232,6 +101213,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101232,6 +101213,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101232 .unused,101213 .unused,
101233 },101214 },
101234 .dst_temps = .{ .mem, .unused },101215 .dst_temps = .{ .mem, .unused },
101216 .clobbers = .{ .eflags = true },
101235 .each = .{ .once = &.{101217 .each = .{ .once = &.{
101236 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },101218 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
101237 .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },101219 .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
...@@ -101260,6 +101242,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101260,6 +101242,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101260 .unused,101242 .unused,
101261 },101243 },
101262 .dst_temps = .{ .mem, .unused },101244 .dst_temps = .{ .mem, .unused },
101245 .clobbers = .{ .eflags = true },
101263 .each = .{ .once = &.{101246 .each = .{ .once = &.{
101264 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },101247 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
101265 .{ .@"0:", ._, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },101248 .{ .@"0:", ._, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
...@@ -101688,6 +101671,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101688,6 +101671,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101688 },101671 },
101689 .extra_temps = .{101672 .extra_temps = .{
101690 .{ .type = .f64, .kind = .{ .reg = .st7 } },101673 .{ .type = .f64, .kind = .{ .reg = .st7 } },
101674 .{ .type = .u16, .kind = .mem },
101691 .{ .type = .i16, .kind = .mem },101675 .{ .type = .i16, .kind = .mem },
101692 .unused,101676 .unused,
101693 .unused,101677 .unused,
...@@ -101697,13 +101681,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101697,13 +101681,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101697 .unused,101681 .unused,
101698 .unused,101682 .unused,
101699 .unused,101683 .unused,
101700 .unused,
101701 },101684 },
101702 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },101685 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
101703 .each = .{ .once = &.{101686 .each = .{ .once = &.{
101704 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },101687 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
101705 .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ },101688 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
101706 .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ },101689 .{ ._, ._, .movzx, .dst0d, .memd(.tmp1b, 1), ._, ._ },
101690 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
101691 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101692 .{ ._, ._, .mov, .memd(.tmp1b, 1), .dst0b, ._, ._ },
101693 .{ ._, .fi_p, .st, .tmp2w, ._, ._, ._ },
101694 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101695 .{ ._, ._, .movsx, .dst0d, .tmp2b, ._, ._ },
101707 } },101696 } },
101708 }, .{101697 }, .{
101709 .required_features = .{ .x87, null, null, null },101698 .required_features = .{ .x87, null, null, null },
...@@ -101714,6 +101703,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101714,6 +101703,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101714 },101703 },
101715 .extra_temps = .{101704 .extra_temps = .{
101716 .{ .type = .f64, .kind = .{ .reg = .st7 } },101705 .{ .type = .f64, .kind = .{ .reg = .st7 } },
101706 .{ .type = .u16, .kind = .mem },
101717 .{ .type = .i16, .kind = .mem },101707 .{ .type = .i16, .kind = .mem },
101718 .unused,101708 .unused,
101719 .unused,101709 .unused,
...@@ -101723,13 +101713,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101723,13 +101713,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101723 .unused,101713 .unused,
101724 .unused,101714 .unused,
101725 .unused,101715 .unused,
101726 .unused,
101727 },101716 },
101728 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },101717 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
101729 .each = .{ .once = &.{101718 .each = .{ .once = &.{
101730 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },101719 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
101731 .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ },101720 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
101732 .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ },101721 .{ ._, ._, .movzx, .dst0d, .memd(.tmp1b, 1), ._, ._ },
101722 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
101723 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101724 .{ ._, ._, .mov, .memd(.tmp1b, 1), .dst0b, ._, ._ },
101725 .{ ._, .fi_p, .st, .tmp2w, ._, ._, ._ },
101726 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101727 .{ ._, ._, .movzx, .dst0d, .tmp2b, ._, ._ },
101733 } },101728 } },
101734 }, .{101729 }, .{
101735 .required_features = .{ .x87, null, null, null },101730 .required_features = .{ .x87, null, null, null },
...@@ -101740,8 +101735,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101740,8 +101735,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101740 },101735 },
101741 .extra_temps = .{101736 .extra_temps = .{
101742 .{ .type = .f64, .kind = .{ .reg = .st7 } },101737 .{ .type = .f64, .kind = .{ .reg = .st7 } },
101743 .unused,101738 .{ .type = .u16, .kind = .mem },
101744 .unused,101739 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
101745 .unused,101740 .unused,
101746 .unused,101741 .unused,
101747 .unused,101742 .unused,
...@@ -101754,7 +101749,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101754,7 +101749,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101754 .dst_temps = .{ .mem, .unused },101749 .dst_temps = .{ .mem, .unused },
101755 .each = .{ .once = &.{101750 .each = .{ .once = &.{
101756 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },101751 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
101757 .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ },101752 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
101753 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
101754 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
101755 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101756 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
101757 .{ ._, .fi_p, .st, .dst0w, ._, ._, ._ },
101758 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101758 } },101759 } },
101759 }, .{101760 }, .{
101760 .required_features = .{ .x87, null, null, null },101761 .required_features = .{ .x87, null, null, null },
...@@ -101765,8 +101766,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101765,8 +101766,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101765 },101766 },
101766 .extra_temps = .{101767 .extra_temps = .{
101767 .{ .type = .f64, .kind = .{ .reg = .st7 } },101768 .{ .type = .f64, .kind = .{ .reg = .st7 } },
101768 .unused,101769 .{ .type = .u16, .kind = .mem },
101769 .unused,101770 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
101770 .unused,101771 .unused,
101771 .unused,101772 .unused,
101772 .unused,101773 .unused,
...@@ -101779,7 +101780,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101779,7 +101780,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101779 .dst_temps = .{ .mem, .unused },101780 .dst_temps = .{ .mem, .unused },
101780 .each = .{ .once = &.{101781 .each = .{ .once = &.{
101781 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },101782 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
101782 .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ },101783 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
101784 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
101785 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
101786 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101787 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
101788 .{ ._, .fi_p, .st, .dst0d, ._, ._, ._ },
101789 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101783 } },101790 } },
101784 }, .{101791 }, .{
101785 .required_features = .{ .@"64bit", .avx, null, null },101792 .required_features = .{ .@"64bit", .avx, null, null },
...@@ -101814,8 +101821,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101814,8 +101821,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101814 },101821 },
101815 .extra_temps = .{101822 .extra_temps = .{
101816 .{ .type = .f64, .kind = .{ .reg = .st7 } },101823 .{ .type = .f64, .kind = .{ .reg = .st7 } },
101817 .unused,101824 .{ .type = .u16, .kind = .mem },
101818 .unused,101825 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
101819 .unused,101826 .unused,
101820 .unused,101827 .unused,
101821 .unused,101828 .unused,
...@@ -101828,7 +101835,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101828,7 +101835,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101828 .dst_temps = .{ .mem, .unused },101835 .dst_temps = .{ .mem, .unused },
101829 .each = .{ .once = &.{101836 .each = .{ .once = &.{
101830 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },101837 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
101831 .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ },101838 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
101839 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
101840 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
101841 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101842 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
101843 .{ ._, .fi_p, .st, .dst0q, ._, ._, ._ },
101844 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
101832 } },101845 } },
101833 }, .{101846 }, .{
101834 .required_features = .{ .@"64bit", .avx, null, null },101847 .required_features = .{ .@"64bit", .avx, null, null },
...@@ -101902,12 +101915,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101902,12 +101915,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101902 .{ .src = .{ .to_mem, .none, .none } },101915 .{ .src = .{ .to_mem, .none, .none } },
101903 },101916 },
101904 .extra_temps = .{101917 .extra_temps = .{
101905 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
101906 .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } },
101907 .{ .type = .f64, .kind = .{ .reg = .st6 } },
101908 .{ .type = .f64, .kind = .{ .reg = .st7 } },101918 .{ .type = .f64, .kind = .{ .reg = .st7 } },
101919 .{ .type = .f64, .kind = .{ .reg = .st6 } },
101920 .{ .type = .u16, .kind = .mem },
101921 .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } },
101909 .{ .type = .i64, .kind = .mem },101922 .{ .type = .i64, .kind = .mem },
101910 .unused,101923 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
101911 .unused,101924 .unused,
101912 .unused,101925 .unused,
101913 .unused,101926 .unused,
...@@ -101918,16 +101931,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -101918,16 +101931,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
101918 .clobbers = .{ .eflags = true },101931 .clobbers = .{ .eflags = true },
101919 .each = .{ .once = &.{101932 .each = .{ .once = &.{
101920 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },101933 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
101921 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },101934 .{ ._, .f_, .ld, .tmp0t, ._, ._, ._ },
101922 .{ ._, .f_, .ld, .tmp3t, ._, ._, ._ },101935 .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ },
101923 .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ },101936 .{ ._, ._, .movzx, .dst0d, .memd(.tmp2b, 1), ._, ._ },
101924 .{ ._, ._, .mov, .dst0q, .tmp4q, ._, ._ },101937 .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ },
101925 .{ ._, .f_, .sub, .lea(.tmp0d), ._, ._, ._ },101938 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
101926 .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ },101939 .{ ._, ._, .mov, .memd(.tmp2b, 1), .dst0b, ._, ._ },
101927 .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ },101940 .{ ._, ._, .lea, .dst0q, .mem(.tmp3), ._, ._ },
101941 .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ },
101942 .{ ._, .f_, .sub, .lea(.dst0d), ._, ._, ._ },
101943 .{ ._, ._, .mov, .tmp5q, .tmp4q, ._, ._ },
101944 .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ },
101945 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
101946 .{ ._, ._, .mov, .dst0q, .tmp5q, ._, ._ },
101928 .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ },101947 .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ },
101929 .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ },101948 .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ },
101930 .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ },101949 .{ ._, ._, .@"or", .dst0q, .tmp5q, ._, ._ },
101931 } },101950 } },
101932 }, .{101951 }, .{
101933 .required_features = .{ .@"64bit", .sse, null, null },101952 .required_features = .{ .@"64bit", .sse, null, null },
...@@ -102249,10 +102268,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102249,10 +102268,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102249 },102268 },
102250 .extra_temps = .{102269 .extra_temps = .{
102251 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },102270 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102271 .{ .type = .u16, .kind = .mem },
102272 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
102252 .{ .type = .f64, .kind = .{ .reg = .st7 } },102273 .{ .type = .f64, .kind = .{ .reg = .st7 } },
102253 .{ .type = .i16, .kind = .mem },102274 .{ .type = .i16, .kind = .mem },
102254 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
102255 .unused,
102256 .unused,102275 .unused,
102257 .unused,102276 .unused,
102258 .unused,102277 .unused,
...@@ -102261,14 +102280,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102261,14 +102280,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102261 .unused,102280 .unused,
102262 },102281 },
102263 .dst_temps = .{ .mem, .unused },102282 .dst_temps = .{ .mem, .unused },
102283 .clobbers = .{ .eflags = true },
102264 .each = .{ .once = &.{102284 .each = .{ .once = &.{
102265 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },102285 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102286 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
102287 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
102288 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
102289 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102290 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
102266 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ },102291 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ },
102267 .{ ._, .fi_p, .stt, .tmp2w, ._, ._, ._ },102292 .{ ._, .fi_p, .st, .tmp4w, ._, ._, ._ },
102268 .{ ._, ._, .movzx, .tmp3d, .tmp2b, ._, ._ },102293 .{ ._, ._, .movzx, .tmp2d, .tmp4b, ._, ._ },
102269 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ },102294 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ },
102270 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },102295 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
102271 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },102296 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102297 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102272 } },102298 } },
102273 }, .{102299 }, .{
102274 .required_features = .{ .x87, null, null, null },102300 .required_features = .{ .x87, null, null, null },
...@@ -102279,10 +102305,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102279,10 +102305,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102279 },102305 },
102280 .extra_temps = .{102306 .extra_temps = .{
102281 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },102307 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102308 .{ .type = .u16, .kind = .mem },
102309 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
102282 .{ .type = .f64, .kind = .{ .reg = .st7 } },102310 .{ .type = .f64, .kind = .{ .reg = .st7 } },
102283 .{ .type = .i16, .kind = .mem },102311 .{ .type = .i16, .kind = .mem },
102284 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
102285 .unused,
102286 .unused,102312 .unused,
102287 .unused,102313 .unused,
102288 .unused,102314 .unused,
...@@ -102291,14 +102317,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102291,14 +102317,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102291 .unused,102317 .unused,
102292 },102318 },
102293 .dst_temps = .{ .mem, .unused },102319 .dst_temps = .{ .mem, .unused },
102320 .clobbers = .{ .eflags = true },
102294 .each = .{ .once = &.{102321 .each = .{ .once = &.{
102295 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },102322 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102323 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
102324 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
102325 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
102326 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102327 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
102296 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ },102328 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ },
102297 .{ ._, .fi_p, .stt, .tmp2w, ._, ._, ._ },102329 .{ ._, .fi_p, .st, .tmp4w, ._, ._, ._ },
102298 .{ ._, ._, .movzx, .tmp3d, .tmp2b, ._, ._ },102330 .{ ._, ._, .movzx, .tmp2d, .tmp4b, ._, ._ },
102299 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ },102331 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ },
102300 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },102332 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
102301 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },102333 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
102334 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102302 } },102335 } },
102303 }, .{102336 }, .{
102304 .required_features = .{ .avx, .slow_incdec, null, null },102337 .required_features = .{ .avx, .slow_incdec, null, null },
...@@ -102724,6 +102757,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102724,6 +102757,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102724 },102757 },
102725 .extra_temps = .{102758 .extra_temps = .{
102726 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },102759 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102760 .{ .type = .u16, .kind = .mem },
102727 .{ .type = .f64, .kind = .{ .reg = .st7 } },102761 .{ .type = .f64, .kind = .{ .reg = .st7 } },
102728 .unused,102762 .unused,
102729 .unused,102763 .unused,
...@@ -102733,15 +102767,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102733,15 +102767,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102733 .unused,102767 .unused,
102734 .unused,102768 .unused,
102735 .unused,102769 .unused,
102736 .unused,
102737 },102770 },
102738 .dst_temps = .{ .mem, .unused },102771 .dst_temps = .{ .mem, .unused },
102772 .clobbers = .{ .eflags = true },
102739 .each = .{ .once = &.{102773 .each = .{ .once = &.{
102774 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
102775 .{ ._, ._, .movzx, .tmp0d, .memd(.tmp1b, 1), ._, ._ },
102776 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
102777 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102778 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ },
102740 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },102779 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102741 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ },102780 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ },
102742 .{ ._, .fi_p, .stt, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ },102781 .{ ._, .fi_p, .st, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ },
102743 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },102782 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
102744 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },102783 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102784 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102745 } },102785 } },
102746 }, .{102786 }, .{
102747 .required_features = .{ .x87, null, null, null },102787 .required_features = .{ .x87, null, null, null },
...@@ -102752,10 +102792,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102752,10 +102792,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102752 },102792 },
102753 .extra_temps = .{102793 .extra_temps = .{
102754 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },102794 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
102795 .{ .type = .u16, .kind = .mem },
102796 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
102755 .{ .type = .f64, .kind = .{ .reg = .st7 } },102797 .{ .type = .f64, .kind = .{ .reg = .st7 } },
102756 .{ .type = .i32, .kind = .mem },102798 .{ .type = .i32, .kind = .mem },
102757 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
102758 .unused,
102759 .unused,102799 .unused,
102760 .unused,102800 .unused,
102761 .unused,102801 .unused,
...@@ -102764,14 +102804,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102764,14 +102804,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102764 .unused,102804 .unused,
102765 },102805 },
102766 .dst_temps = .{ .mem, .unused },102806 .dst_temps = .{ .mem, .unused },
102807 .clobbers = .{ .eflags = true },
102767 .each = .{ .once = &.{102808 .each = .{ .once = &.{
102768 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },102809 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102810 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
102811 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
102812 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
102813 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102814 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
102769 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ },102815 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ },
102770 .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ },102816 .{ ._, .fi_p, .st, .tmp4d, ._, ._, ._ },
102771 .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ },102817 .{ ._, ._, .mov, .tmp2d, .tmp4d, ._, ._ },
102772 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ },102818 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ },
102773 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },102819 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
102774 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },102820 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
102821 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102775 } },102822 } },
102776 }, .{102823 }, .{
102777 .required_features = .{ .avx, null, null, null },102824 .required_features = .{ .avx, null, null, null },
...@@ -102970,6 +103017,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102970,6 +103017,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102970 },103017 },
102971 .extra_temps = .{103018 .extra_temps = .{
102972 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },103019 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103020 .{ .type = .u16, .kind = .mem },
102973 .{ .type = .f64, .kind = .{ .reg = .st7 } },103021 .{ .type = .f64, .kind = .{ .reg = .st7 } },
102974 .unused,103022 .unused,
102975 .unused,103023 .unused,
...@@ -102979,15 +103027,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102979,15 +103027,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102979 .unused,103027 .unused,
102980 .unused,103028 .unused,
102981 .unused,103029 .unused,
102982 .unused,
102983 },103030 },
102984 .dst_temps = .{ .mem, .unused },103031 .dst_temps = .{ .mem, .unused },
103032 .clobbers = .{ .eflags = true },
102985 .each = .{ .once = &.{103033 .each = .{ .once = &.{
103034 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
103035 .{ ._, ._, .movzx, .tmp0d, .memd(.tmp1b, 1), ._, ._ },
103036 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
103037 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
103038 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ },
102986 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },103039 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
102987 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ },103040 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ },
102988 .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ },103041 .{ ._, .fi_p, .st, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ },
102989 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },103042 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
102990 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },103043 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103044 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
102991 } },103045 } },
102992 }, .{103046 }, .{
102993 .required_features = .{ .x87, null, null, null },103047 .required_features = .{ .x87, null, null, null },
...@@ -102998,10 +103052,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -102998,10 +103052,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
102998 },103052 },
102999 .extra_temps = .{103053 .extra_temps = .{
103000 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },103054 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103055 .{ .type = .u16, .kind = .mem },
103056 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
103001 .{ .type = .f64, .kind = .{ .reg = .st7 } },103057 .{ .type = .f64, .kind = .{ .reg = .st7 } },
103002 .{ .type = .i64, .kind = .mem },103058 .{ .type = .i64, .kind = .mem },
103003 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
103004 .unused,
103005 .unused,103059 .unused,
103006 .unused,103060 .unused,
103007 .unused,103061 .unused,
...@@ -103010,14 +103064,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103010,14 +103064,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103010 .unused,103064 .unused,
103011 },103065 },
103012 .dst_temps = .{ .mem, .unused },103066 .dst_temps = .{ .mem, .unused },
103067 .clobbers = .{ .eflags = true },
103013 .each = .{ .once = &.{103068 .each = .{ .once = &.{
103014 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },103069 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103070 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
103071 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
103072 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
103073 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
103074 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
103015 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ },103075 .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ },
103016 .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ },103076 .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ },
103017 .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ },103077 .{ ._, ._, .mov, .tmp2d, .tmp4d, ._, ._ },
103018 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ },103078 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ },
103019 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },103079 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
103020 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },103080 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103081 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
103021 } },103082 } },
103022 }, .{103083 }, .{
103023 .required_features = .{ .avx, null, null, null },103084 .required_features = .{ .avx, null, null, null },
...@@ -103274,6 +103335,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103274,6 +103335,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103274 },103335 },
103275 .extra_temps = .{103336 .extra_temps = .{
103276 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },103337 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103338 .{ .type = .u16, .kind = .mem },
103277 .{ .type = .f64, .kind = .{ .reg = .st7 } },103339 .{ .type = .f64, .kind = .{ .reg = .st7 } },
103278 .unused,103340 .unused,
103279 .unused,103341 .unused,
...@@ -103283,15 +103345,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103283,15 +103345,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103283 .unused,103345 .unused,
103284 .unused,103346 .unused,
103285 .unused,103347 .unused,
103286 .unused,
103287 },103348 },
103288 .dst_temps = .{ .mem, .unused },103349 .dst_temps = .{ .mem, .unused },
103350 .clobbers = .{ .eflags = true },
103289 .each = .{ .once = &.{103351 .each = .{ .once = &.{
103290 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },103352 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
103353 .{ ._, ._, .movzx, .tmp0d, .memd(.tmp1b, 1), ._, ._ },
103354 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
103355 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
103356 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ },
103357 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
103291 .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },103358 .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
103292 .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },103359 .{ ._, .fi_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
103293 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },103360 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
103294 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },103361 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103362 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
103295 } },103363 } },
103296 }, .{103364 }, .{
103297 .required_features = .{ .avx, null, null, null },103365 .required_features = .{ .avx, null, null, null },
...@@ -103882,7 +103950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103882,7 +103950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103882 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },103950 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103883 } },103951 } },
103884 }, .{103952 }, .{
103885 .required_features = .{ .x87, null, null, null },103953 .required_features = .{ .sse3, .x87, null, null },
103886 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },103954 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
103887 .dst_constraints = .{ .{ .signed_int = .byte }, .any },103955 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
103888 .patterns = &.{103956 .patterns = &.{
...@@ -103890,7 +103958,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103890,7 +103958,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103890 .{ .src = .{ .to_x87, .none, .none } },103958 .{ .src = .{ .to_x87, .none, .none } },
103891 },103959 },
103892 .extra_temps = .{103960 .extra_temps = .{
103893 .{ .type = .f64, .kind = .{ .reg = .st7 } },103961 .{ .type = .f80, .kind = .{ .reg = .st7 } },
103894 .{ .type = .i16, .kind = .mem },103962 .{ .type = .i16, .kind = .mem },
103895 .unused,103963 .unused,
103896 .unused,103964 .unused,
...@@ -103911,13 +103979,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103911,13 +103979,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103911 }, .{103979 }, .{
103912 .required_features = .{ .x87, null, null, null },103980 .required_features = .{ .x87, null, null, null },
103913 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },103981 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
103982 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
103983 .patterns = &.{
103984 .{ .src = .{ .mem, .none, .none } },
103985 .{ .src = .{ .to_x87, .none, .none } },
103986 },
103987 .extra_temps = .{
103988 .{ .type = .f80, .kind = .{ .reg = .st7 } },
103989 .{ .type = .u16, .kind = .mem },
103990 .{ .type = .i16, .kind = .mem },
103991 .unused,
103992 .unused,
103993 .unused,
103994 .unused,
103995 .unused,
103996 .unused,
103997 .unused,
103998 .unused,
103999 },
104000 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
104001 .each = .{ .once = &.{
104002 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
104003 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104004 .{ ._, ._, .movzx, .dst0d, .memd(.tmp1b, 1), ._, ._ },
104005 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104006 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104007 .{ ._, ._, .mov, .memd(.tmp1b, 1), .dst0b, ._, ._ },
104008 .{ ._, .fi_p, .st, .tmp2w, ._, ._, ._ },
104009 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104010 .{ ._, ._, .movsx, .dst0d, .tmp2b, ._, ._ },
104011 } },
104012 }, .{
104013 .required_features = .{ .sse3, .x87, null, null },
104014 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
103914 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },104015 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
103915 .patterns = &.{104016 .patterns = &.{
103916 .{ .src = .{ .mem, .none, .none } },104017 .{ .src = .{ .mem, .none, .none } },
103917 .{ .src = .{ .to_x87, .none, .none } },104018 .{ .src = .{ .to_x87, .none, .none } },
103918 },104019 },
103919 .extra_temps = .{104020 .extra_temps = .{
103920 .{ .type = .f64, .kind = .{ .reg = .st7 } },104021 .{ .type = .f80, .kind = .{ .reg = .st7 } },
103921 .{ .type = .i16, .kind = .mem },104022 .{ .type = .i16, .kind = .mem },
103922 .unused,104023 .unused,
103923 .unused,104024 .unused,
...@@ -103936,7 +104037,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103936,7 +104037,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103936 .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ },104037 .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ },
103937 } },104038 } },
103938 }, .{104039 }, .{
103939 .required_features = .{ .x87, .slow_incdec, null, null },104040 .required_features = .{ .x87, null, null, null },
104041 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104042 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
104043 .patterns = &.{
104044 .{ .src = .{ .mem, .none, .none } },
104045 .{ .src = .{ .to_x87, .none, .none } },
104046 },
104047 .extra_temps = .{
104048 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104049 .{ .type = .u16, .kind = .mem },
104050 .{ .type = .i16, .kind = .mem },
104051 .unused,
104052 .unused,
104053 .unused,
104054 .unused,
104055 .unused,
104056 .unused,
104057 .unused,
104058 .unused,
104059 },
104060 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
104061 .each = .{ .once = &.{
104062 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
104063 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104064 .{ ._, ._, .movzx, .dst0d, .memd(.tmp1b, 1), ._, ._ },
104065 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104066 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104067 .{ ._, ._, .mov, .memd(.tmp1b, 1), .dst0b, ._, ._ },
104068 .{ ._, .fi_p, .st, .tmp2w, ._, ._, ._ },
104069 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104070 .{ ._, ._, .movzx, .dst0d, .tmp2b, ._, ._ },
104071 } },
104072 }, .{
104073 .required_features = .{ .sse3, .x87, .slow_incdec, null },
103940 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104074 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
103941 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any },104075 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any },
103942 .patterns = &.{104076 .patterns = &.{
...@@ -103947,7 +104081,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103947,7 +104081,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103947 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },104081 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103948 .{ .type = .f80, .kind = .{ .reg = .st7 } },104082 .{ .type = .f80, .kind = .{ .reg = .st7 } },
103949 .{ .type = .i16, .kind = .mem },104083 .{ .type = .i16, .kind = .mem },
103950 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },104084 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
103951 .unused,104085 .unused,
103952 .unused,104086 .unused,
103953 .unused,104087 .unused,
...@@ -103969,7 +104103,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103969,7 +104103,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103969 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },104103 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
103970 } },104104 } },
103971 }, .{104105 }, .{
103972 .required_features = .{ .x87, null, null, null },104106 .required_features = .{ .sse3, .x87, null, null },
103973 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104107 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
103974 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any },104108 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any },
103975 .patterns = &.{104109 .patterns = &.{
...@@ -103980,7 +104114,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -103980,7 +104114,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
103980 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },104114 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
103981 .{ .type = .f80, .kind = .{ .reg = .st7 } },104115 .{ .type = .f80, .kind = .{ .reg = .st7 } },
103982 .{ .type = .i16, .kind = .mem },104116 .{ .type = .i16, .kind = .mem },
103983 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },104117 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
103984 .unused,104118 .unused,
103985 .unused,104119 .unused,
103986 .unused,104120 .unused,
...@@ -104004,6 +104138,84 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104004,6 +104138,84 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104004 }, .{104138 }, .{
104005 .required_features = .{ .x87, .slow_incdec, null, null },104139 .required_features = .{ .x87, .slow_incdec, null, null },
104006 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104140 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104141 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any },
104142 .patterns = &.{
104143 .{ .src = .{ .to_mem, .none, .none } },
104144 },
104145 .extra_temps = .{
104146 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
104147 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104148 .{ .type = .u16, .kind = .mem },
104149 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
104150 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104151 .{ .type = .i16, .kind = .mem },
104152 .unused,
104153 .unused,
104154 .unused,
104155 .unused,
104156 .unused,
104157 },
104158 .dst_temps = .{ .mem, .unused },
104159 .clobbers = .{ .eflags = true },
104160 .each = .{ .once = &.{
104161 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
104162 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104163 .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ },
104164 .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ },
104165 .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ },
104166 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104167 .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ },
104168 .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ },
104169 .{ ._, .fi_p, .st, .tmp5w, ._, ._, ._ },
104170 .{ ._, ._, .movsx, .tmp3d, .tmp5b, ._, ._ },
104171 .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp3b, ._, ._ },
104172 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ },
104173 .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ },
104174 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104175 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104176 } },
104177 }, .{
104178 .required_features = .{ .x87, null, null, null },
104179 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104180 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any },
104181 .patterns = &.{
104182 .{ .src = .{ .to_mem, .none, .none } },
104183 },
104184 .extra_temps = .{
104185 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
104186 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104187 .{ .type = .u16, .kind = .mem },
104188 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
104189 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104190 .{ .type = .i16, .kind = .mem },
104191 .unused,
104192 .unused,
104193 .unused,
104194 .unused,
104195 .unused,
104196 },
104197 .dst_temps = .{ .mem, .unused },
104198 .clobbers = .{ .eflags = true },
104199 .each = .{ .once = &.{
104200 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
104201 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104202 .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ },
104203 .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ },
104204 .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ },
104205 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104206 .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ },
104207 .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ },
104208 .{ ._, .fi_p, .st, .tmp5w, ._, ._, ._ },
104209 .{ ._, ._, .movsx, .tmp3d, .tmp5b, ._, ._ },
104210 .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp3b, ._, ._ },
104211 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ },
104212 .{ ._, ._c, .in, .tmp1p, ._, ._, ._ },
104213 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
104214 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104215 } },
104216 }, .{
104217 .required_features = .{ .sse3, .x87, .slow_incdec, null },
104218 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104007 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any },104219 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any },
104008 .patterns = &.{104220 .patterns = &.{
104009 .{ .src = .{ .to_mem, .none, .none } },104221 .{ .src = .{ .to_mem, .none, .none } },
...@@ -104035,7 +104247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104035,7 +104247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104035 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },104247 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104036 } },104248 } },
104037 }, .{104249 }, .{
104038 .required_features = .{ .x87, null, null, null },104250 .required_features = .{ .sse3, .x87, null, null },
104039 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104251 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104040 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any },104252 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any },
104041 .patterns = &.{104253 .patterns = &.{
...@@ -104067,8 +104279,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104067,8 +104279,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104067 .{ ._, ._c, .in, .tmp1p, ._, ._, ._ },104279 .{ ._, ._c, .in, .tmp1p, ._, ._, ._ },
104068 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },104280 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
104069 } },104281 } },
104282 }, .{
104283 .required_features = .{ .x87, .slow_incdec, null, null },
104284 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104285 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any },
104286 .patterns = &.{
104287 .{ .src = .{ .to_mem, .none, .none } },
104288 },
104289 .extra_temps = .{
104290 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
104291 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104292 .{ .type = .u16, .kind = .mem },
104293 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
104294 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104295 .{ .type = .i16, .kind = .mem },
104296 .unused,
104297 .unused,
104298 .unused,
104299 .unused,
104300 .unused,
104301 },
104302 .dst_temps = .{ .mem, .unused },
104303 .clobbers = .{ .eflags = true },
104304 .each = .{ .once = &.{
104305 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
104306 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104307 .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ },
104308 .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ },
104309 .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ },
104310 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104311 .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ },
104312 .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ },
104313 .{ ._, .fi_p, .st, .tmp5w, ._, ._, ._ },
104314 .{ ._, ._, .movzx, .tmp3d, .tmp5b, ._, ._ },
104315 .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp3b, ._, ._ },
104316 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ },
104317 .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ },
104318 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104319 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104320 } },
104070 }, .{104321 }, .{
104071 .required_features = .{ .x87, null, null, null },104322 .required_features = .{ .x87, null, null, null },
104323 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104324 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any },
104325 .patterns = &.{
104326 .{ .src = .{ .to_mem, .none, .none } },
104327 },
104328 .extra_temps = .{
104329 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
104330 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104331 .{ .type = .u16, .kind = .mem },
104332 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
104333 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104334 .{ .type = .i16, .kind = .mem },
104335 .unused,
104336 .unused,
104337 .unused,
104338 .unused,
104339 .unused,
104340 },
104341 .dst_temps = .{ .mem, .unused },
104342 .clobbers = .{ .eflags = true },
104343 .each = .{ .once = &.{
104344 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
104345 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104346 .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ },
104347 .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ },
104348 .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ },
104349 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104350 .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ },
104351 .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ },
104352 .{ ._, .fi_p, .st, .tmp5w, ._, ._, ._ },
104353 .{ ._, ._, .movzx, .tmp3d, .tmp5b, ._, ._ },
104354 .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp3b, ._, ._ },
104355 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ },
104356 .{ ._, ._c, .in, .tmp1p, ._, ._, ._ },
104357 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
104358 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104359 } },
104360 }, .{
104361 .required_features = .{ .sse3, .x87, null, null },
104072 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },104362 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104073 .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any },104363 .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any },
104074 .patterns = &.{104364 .patterns = &.{
...@@ -104095,6 +104385,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104095,6 +104385,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104095 } },104385 } },
104096 }, .{104386 }, .{
104097 .required_features = .{ .x87, null, null, null },104387 .required_features = .{ .x87, null, null, null },
104388 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104389 .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any },
104390 .patterns = &.{
104391 .{ .src = .{ .mem, .none, .none } },
104392 .{ .src = .{ .to_x87, .none, .none } },
104393 },
104394 .extra_temps = .{
104395 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104396 .{ .type = .u16, .kind = .mem },
104397 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
104398 .unused,
104399 .unused,
104400 .unused,
104401 .unused,
104402 .unused,
104403 .unused,
104404 .unused,
104405 .unused,
104406 },
104407 .dst_temps = .{ .mem, .unused },
104408 .each = .{ .once = &.{
104409 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
104410 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104411 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
104412 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104413 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104414 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
104415 .{ ._, .fi_p, .st, .dst0w, ._, ._, ._ },
104416 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104417 } },
104418 }, .{
104419 .required_features = .{ .sse3, .x87, null, null },
104098 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104420 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104099 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any },104421 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any },
104100 .patterns = &.{104422 .patterns = &.{
...@@ -104125,6 +104447,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104125,6 +104447,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104125 }, .{104447 }, .{
104126 .required_features = .{ .x87, null, null, null },104448 .required_features = .{ .x87, null, null, null },
104127 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104449 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104450 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any },
104451 .patterns = &.{
104452 .{ .src = .{ .to_mem, .none, .none } },
104453 },
104454 .extra_temps = .{
104455 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104456 .{ .type = .u16, .kind = .mem },
104457 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104458 .unused,
104459 .unused,
104460 .unused,
104461 .unused,
104462 .unused,
104463 .unused,
104464 .unused,
104465 .unused,
104466 },
104467 .dst_temps = .{ .mem, .unused },
104468 .clobbers = .{ .eflags = true },
104469 .each = .{ .once = &.{
104470 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104471 .{ ._, ._, .movzx, .tmp0d, .memd(.tmp1b, 1), ._, ._ },
104472 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104473 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104474 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ },
104475 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104476 .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ },
104477 .{ ._, .fi_p, .st, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ },
104478 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
104479 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104480 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104481 } },
104482 }, .{
104483 .required_features = .{ .sse3, .x87, null, null },
104484 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104128 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any },104485 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any },
104129 .patterns = &.{104486 .patterns = &.{
104130 .{ .src = .{ .to_mem, .none, .none } },104487 .{ .src = .{ .to_mem, .none, .none } },
...@@ -104155,6 +104512,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104155,6 +104512,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104155 } },104512 } },
104156 }, .{104513 }, .{
104157 .required_features = .{ .x87, null, null, null },104514 .required_features = .{ .x87, null, null, null },
104515 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104516 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any },
104517 .patterns = &.{
104518 .{ .src = .{ .to_mem, .none, .none } },
104519 },
104520 .extra_temps = .{
104521 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104522 .{ .type = .u16, .kind = .mem },
104523 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
104524 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104525 .{ .type = .i32, .kind = .mem },
104526 .unused,
104527 .unused,
104528 .unused,
104529 .unused,
104530 .unused,
104531 .unused,
104532 },
104533 .dst_temps = .{ .mem, .unused },
104534 .clobbers = .{ .eflags = true },
104535 .each = .{ .once = &.{
104536 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104537 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104538 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
104539 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104540 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104541 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
104542 .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ },
104543 .{ ._, .fi_p, .st, .tmp4d, ._, ._, ._ },
104544 .{ ._, ._, .mov, .tmp2d, .tmp4d, ._, ._ },
104545 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ },
104546 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
104547 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104548 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104549 } },
104550 }, .{
104551 .required_features = .{ .sse3, .x87, null, null },
104158 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },104552 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104159 .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any },104553 .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any },
104160 .patterns = &.{104554 .patterns = &.{
...@@ -104181,6 +104575,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104181,6 +104575,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104181 } },104575 } },
104182 }, .{104576 }, .{
104183 .required_features = .{ .x87, null, null, null },104577 .required_features = .{ .x87, null, null, null },
104578 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104579 .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any },
104580 .patterns = &.{
104581 .{ .src = .{ .mem, .none, .none } },
104582 .{ .src = .{ .to_x87, .none, .none } },
104583 },
104584 .extra_temps = .{
104585 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104586 .{ .type = .u16, .kind = .mem },
104587 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
104588 .unused,
104589 .unused,
104590 .unused,
104591 .unused,
104592 .unused,
104593 .unused,
104594 .unused,
104595 .unused,
104596 },
104597 .dst_temps = .{ .mem, .unused },
104598 .each = .{ .once = &.{
104599 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
104600 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104601 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
104602 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104603 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104604 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
104605 .{ ._, .fi_p, .st, .dst0d, ._, ._, ._ },
104606 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104607 } },
104608 }, .{
104609 .required_features = .{ .sse3, .x87, null, null },
104184 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104610 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104185 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any },104611 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any },
104186 .patterns = &.{104612 .patterns = &.{
...@@ -104211,6 +104637,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104211,6 +104637,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104211 }, .{104637 }, .{
104212 .required_features = .{ .x87, null, null, null },104638 .required_features = .{ .x87, null, null, null },
104213 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104639 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104640 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any },
104641 .patterns = &.{
104642 .{ .src = .{ .to_mem, .none, .none } },
104643 },
104644 .extra_temps = .{
104645 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104646 .{ .type = .u16, .kind = .mem },
104647 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104648 .unused,
104649 .unused,
104650 .unused,
104651 .unused,
104652 .unused,
104653 .unused,
104654 .unused,
104655 .unused,
104656 },
104657 .dst_temps = .{ .mem, .unused },
104658 .clobbers = .{ .eflags = true },
104659 .each = .{ .once = &.{
104660 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104661 .{ ._, ._, .movzx, .tmp0d, .memd(.tmp1b, 1), ._, ._ },
104662 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104663 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104664 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ },
104665 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104666 .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ },
104667 .{ ._, .fi_p, .st, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ },
104668 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
104669 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104670 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104671 } },
104672 }, .{
104673 .required_features = .{ .sse3, .x87, null, null },
104674 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104214 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any },104675 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any },
104215 .patterns = &.{104676 .patterns = &.{
104216 .{ .src = .{ .to_mem, .none, .none } },104677 .{ .src = .{ .to_mem, .none, .none } },
...@@ -104241,6 +104702,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104241,6 +104702,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104241 } },104702 } },
104242 }, .{104703 }, .{
104243 .required_features = .{ .x87, null, null, null },104704 .required_features = .{ .x87, null, null, null },
104705 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104706 .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any },
104707 .patterns = &.{
104708 .{ .src = .{ .to_mem, .none, .none } },
104709 },
104710 .extra_temps = .{
104711 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104712 .{ .type = .u16, .kind = .mem },
104713 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
104714 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104715 .{ .type = .i64, .kind = .mem },
104716 .unused,
104717 .unused,
104718 .unused,
104719 .unused,
104720 .unused,
104721 .unused,
104722 },
104723 .dst_temps = .{ .mem, .unused },
104724 .clobbers = .{ .eflags = true },
104725 .each = .{ .once = &.{
104726 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104727 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104728 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
104729 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104730 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104731 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
104732 .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ },
104733 .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ },
104734 .{ ._, ._, .mov, .tmp2d, .tmp4d, ._, ._ },
104735 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ },
104736 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
104737 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104738 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104739 } },
104740 }, .{
104741 .required_features = .{ .sse3, .x87, null, null },
104244 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },104742 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104245 .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any },104743 .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any },
104246 .patterns = &.{104744 .patterns = &.{
...@@ -104266,7 +104764,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104266,7 +104764,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104266 .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ },104764 .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ },
104267 } },104765 } },
104268 }, .{104766 }, .{
104269 .required_features = .{ .@"64bit", .x87, null, null },104767 .required_features = .{ .x87, null, null, null },
104768 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104769 .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any },
104770 .patterns = &.{
104771 .{ .src = .{ .mem, .none, .none } },
104772 .{ .src = .{ .to_x87, .none, .none } },
104773 },
104774 .extra_temps = .{
104775 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104776 .{ .type = .u16, .kind = .mem },
104777 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
104778 .unused,
104779 .unused,
104780 .unused,
104781 .unused,
104782 .unused,
104783 .unused,
104784 .unused,
104785 .unused,
104786 },
104787 .dst_temps = .{ .mem, .unused },
104788 .each = .{ .once = &.{
104789 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
104790 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104791 .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ },
104792 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104793 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104794 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ },
104795 .{ ._, .fi_p, .st, .dst0q, ._, ._, ._ },
104796 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104797 } },
104798 }, .{
104799 .required_features = .{ .@"64bit", .sse3, .x87, null },
104270 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },104800 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104271 .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any },104801 .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any },
104272 .patterns = &.{104802 .patterns = &.{
...@@ -104302,7 +104832,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104302,7 +104832,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104302 .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ },104832 .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ },
104303 } },104833 } },
104304 }, .{104834 }, .{
104305 .required_features = .{ .x87, null, null, null },104835 .required_features = .{ .@"64bit", .x87, null, null },
104836 .src_constraints = .{ .{ .float = .tbyte }, .any, .any },
104837 .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any },
104838 .patterns = &.{
104839 .{ .src = .{ .mem, .none, .none } },
104840 .{ .src = .{ .to_x87, .none, .none } },
104841 },
104842 .extra_temps = .{
104843 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104844 .{ .type = .f80, .kind = .{ .reg = .st6 } },
104845 .{ .type = .u16, .kind = .mem },
104846 .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } },
104847 .{ .type = .i64, .kind = .mem },
104848 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
104849 .unused,
104850 .unused,
104851 .unused,
104852 .unused,
104853 .unused,
104854 },
104855 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
104856 .clobbers = .{ .eflags = true },
104857 .each = .{ .once = &.{
104858 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
104859 .{ ._, .f_, .ld, .tmp0t, ._, ._, ._ },
104860 .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ },
104861 .{ ._, ._, .movzx, .dst0d, .memd(.tmp2b, 1), ._, ._ },
104862 .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ },
104863 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104864 .{ ._, ._, .mov, .memd(.tmp2b, 1), .dst0b, ._, ._ },
104865 .{ ._, ._, .lea, .dst0q, .mem(.tmp3), ._, ._ },
104866 .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ },
104867 .{ ._, .f_, .sub, .lea(.dst0d), ._, ._, ._ },
104868 .{ ._, ._, .mov, .tmp5q, .tmp4q, ._, ._ },
104869 .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ },
104870 .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ },
104871 .{ ._, ._, .mov, .dst0q, .tmp5q, ._, ._ },
104872 .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ },
104873 .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ },
104874 .{ ._, ._, .@"or", .dst0q, .tmp5q, ._, ._ },
104875 } },
104876 }, .{
104877 .required_features = .{ .sse3, .x87, null, null },
104306 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104878 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104307 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any },104879 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any },
104308 .patterns = &.{104880 .patterns = &.{
...@@ -104330,6 +104902,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -104330,6 +104902,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
104330 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },104902 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
104331 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },104903 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104332 } },104904 } },
104905 }, .{
104906 .required_features = .{ .x87, null, null, null },
104907 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
104908 .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any },
104909 .patterns = &.{
104910 .{ .src = .{ .to_mem, .none, .none } },
104911 },
104912 .extra_temps = .{
104913 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
104914 .{ .type = .u16, .kind = .mem },
104915 .{ .type = .f80, .kind = .{ .reg = .st7 } },
104916 .unused,
104917 .unused,
104918 .unused,
104919 .unused,
104920 .unused,
104921 .unused,
104922 .unused,
104923 .unused,
104924 },
104925 .dst_temps = .{ .mem, .unused },
104926 .clobbers = .{ .eflags = true },
104927 .each = .{ .once = &.{
104928 .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ },
104929 .{ ._, ._, .movzx, .tmp0d, .memd(.tmp1b, 1), ._, ._ },
104930 .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ },
104931 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104932 .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ },
104933 .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
104934 .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ },
104935 .{ ._, .fi_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
104936 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
104937 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
104938 .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ },
104939 } },
104333 }, .{104940 }, .{
104334 .required_features = .{ .@"64bit", .avx, null, null },104941 .required_features = .{ .@"64bit", .avx, null, null },
104335 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },104942 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
...@@ -116829,7 +117436,40914 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116829,7 +117436,40914 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116829 };117436 };
116830 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);117437 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
116831 },117438 },
116832117439 .reduce => |air_tag| if (use_old) try cg.airReduce(inst) else {
117440 const nan = std.math.nan(f16);
117441 const reduce = air_datas[@intFromEnum(inst)].reduce;
117442 const res_ty = cg.typeOfIndex(inst);
117443 var ops = try cg.tempsFromOperands(inst, .{reduce.operand});
117444 var res: [1]Temp = undefined;
117445 cg.select(&res, &.{res_ty}, &ops, switch (reduce.operation) {
117446 .And, .Or, .Xor => switch (@as(Mir.Inst.Tag, switch (reduce.operation) {
117447 else => unreachable,
117448 .And => .@"and",
117449 .Or => .@"or",
117450 .Xor => .xor,
117451 })) {
117452 else => unreachable,
117453 inline .@"and", .@"or", .xor => |mir_tag| comptime &switch (mir_tag) {
117454 else => unreachable,
117455 .@"and" => [_]Select.Case{ .{
117456 .required_features = .{ .avx, null, null, null },
117457 .dst_constraints = .{ .bool, .any },
117458 .src_constraints = .{ .any_bool_vec, .any, .any },
117459 .patterns = &.{
117460 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword, .is = .inverted } }, .none, .none } },
117461 },
117462 .dst_temps = .{ .{ .cc = .z }, .unused },
117463 .clobbers = .{ .eflags = true },
117464 .each = .{ .once = &.{
117465 .{ ._, .vp_, .@"test", .src0x, .src0x, ._, ._ },
117466 } },
117467 }, .{
117468 .required_features = .{ .sse4_1, null, null, null },
117469 .dst_constraints = .{ .bool, .any },
117470 .src_constraints = .{ .any_bool_vec, .any, .any },
117471 .patterns = &.{
117472 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword, .is = .inverted } }, .none, .none } },
117473 },
117474 .dst_temps = .{ .{ .cc = .z }, .unused },
117475 .clobbers = .{ .eflags = true },
117476 .each = .{ .once = &.{
117477 .{ ._, .p_, .@"test", .src0x, .src0x, ._, ._ },
117478 } },
117479 }, .{
117480 .required_features = .{ .avx, null, null, null },
117481 .dst_constraints = .{ .bool, .any },
117482 .src_constraints = .{ .any_bool_vec, .any, .any },
117483 .patterns = &.{
117484 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword } }, .none, .none } },
117485 },
117486 .extra_temps = .{
117487 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
117488 .unused,
117489 .unused,
117490 .unused,
117491 .unused,
117492 .unused,
117493 .unused,
117494 .unused,
117495 .unused,
117496 .unused,
117497 .unused,
117498 },
117499 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117500 .clobbers = .{ .eflags = true },
117501 .each = .{ .once = &.{
117502 .{ ._, .vp_b, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
117503 .{ ._, .vp_, .@"test", .src0x, .tmp0x, ._, ._ },
117504 } },
117505 }, .{
117506 .required_features = .{ .sse4_1, null, null, null },
117507 .dst_constraints = .{ .bool, .any },
117508 .src_constraints = .{ .any_bool_vec, .any, .any },
117509 .patterns = &.{
117510 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword } }, .none, .none } },
117511 },
117512 .extra_temps = .{
117513 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
117514 .unused,
117515 .unused,
117516 .unused,
117517 .unused,
117518 .unused,
117519 .unused,
117520 .unused,
117521 .unused,
117522 .unused,
117523 .unused,
117524 },
117525 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117526 .clobbers = .{ .eflags = true },
117527 .each = .{ .once = &.{
117528 .{ ._, .p_b, .cmpeq, .tmp0x, .tmp0x, ._, ._ },
117529 .{ ._, .p_, .@"test", .src0x, .tmp0x, ._, ._ },
117530 } },
117531 }, .{
117532 .required_features = .{ .avx, null, null, null },
117533 .dst_constraints = .{ .bool, .any },
117534 .src_constraints = .{ .any_bool_vec, .any, .any },
117535 .patterns = &.{
117536 .{ .src = .{ .{ .reg_mask = .{ .size = .xword } }, .none, .none } },
117537 },
117538 .extra_temps = .{
117539 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117540 .{ .type = .vector_16_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117541 .unused,
117542 .unused,
117543 .unused,
117544 .unused,
117545 .unused,
117546 .unused,
117547 .unused,
117548 .unused,
117549 .unused,
117550 },
117551 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117552 .clobbers = .{ .eflags = true },
117553 .each = .{ .once = &.{
117554 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117555 .{ ._, .vp_, .@"test", .src0x, .lea(.tmp0x), ._, ._ },
117556 } },
117557 }, .{
117558 .required_features = .{ .sse4_1, null, null, null },
117559 .dst_constraints = .{ .bool, .any },
117560 .src_constraints = .{ .any_bool_vec, .any, .any },
117561 .patterns = &.{
117562 .{ .src = .{ .{ .reg_mask = .{ .size = .xword } }, .none, .none } },
117563 },
117564 .extra_temps = .{
117565 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117566 .{ .type = .vector_16_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117567 .unused,
117568 .unused,
117569 .unused,
117570 .unused,
117571 .unused,
117572 .unused,
117573 .unused,
117574 .unused,
117575 .unused,
117576 },
117577 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117578 .clobbers = .{ .eflags = true },
117579 .each = .{ .once = &.{
117580 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117581 .{ ._, .p_, .@"test", .src0x, .lea(.tmp0x), ._, ._ },
117582 } },
117583 }, .{
117584 .required_features = .{ .avx2, null, null, null },
117585 .dst_constraints = .{ .bool, .any },
117586 .src_constraints = .{ .any_bool_vec, .any, .any },
117587 .patterns = &.{
117588 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword, .is = .inverted } }, .none, .none } },
117589 },
117590 .dst_temps = .{ .{ .cc = .z }, .unused },
117591 .clobbers = .{ .eflags = true },
117592 .each = .{ .once = &.{
117593 .{ ._, .vp_, .@"test", .src0y, .src0y, ._, ._ },
117594 } },
117595 }, .{
117596 .required_features = .{ .avx, null, null, null },
117597 .dst_constraints = .{ .bool, .any },
117598 .src_constraints = .{ .any_bool_vec, .any, .any },
117599 .patterns = &.{
117600 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword, .is = .inverted } }, .none, .none } },
117601 },
117602 .dst_temps = .{ .{ .cc = .z }, .unused },
117603 .clobbers = .{ .eflags = true },
117604 .each = .{ .once = &.{
117605 .{ ._, .v_ps, .@"test", .src0y, .src0y, ._, ._ },
117606 } },
117607 }, .{
117608 .required_features = .{ .avx2, null, null, null },
117609 .dst_constraints = .{ .bool, .any },
117610 .src_constraints = .{ .any_bool_vec, .any, .any },
117611 .patterns = &.{
117612 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword } }, .none, .none } },
117613 },
117614 .extra_temps = .{
117615 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
117616 .unused,
117617 .unused,
117618 .unused,
117619 .unused,
117620 .unused,
117621 .unused,
117622 .unused,
117623 .unused,
117624 .unused,
117625 .unused,
117626 },
117627 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117628 .clobbers = .{ .eflags = true },
117629 .each = .{ .once = &.{
117630 .{ ._, .vp_b, .cmpeq, .tmp0y, .tmp0y, .tmp0y, ._ },
117631 .{ ._, .vp_, .@"test", .src0y, .tmp0y, ._, ._ },
117632 } },
117633 }, .{
117634 .required_features = .{ .avx, null, null, null },
117635 .dst_constraints = .{ .bool, .any },
117636 .src_constraints = .{ .any_bool_vec, .any, .any },
117637 .patterns = &.{
117638 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword } }, .none, .none } },
117639 },
117640 .extra_temps = .{
117641 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
117642 .unused,
117643 .unused,
117644 .unused,
117645 .unused,
117646 .unused,
117647 .unused,
117648 .unused,
117649 .unused,
117650 .unused,
117651 .unused,
117652 },
117653 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117654 .clobbers = .{ .eflags = true },
117655 .each = .{ .once = &.{
117656 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.true) },
117657 .{ ._, .v_ps, .@"test", .src0y, .tmp0y, ._, ._ },
117658 } },
117659 }, .{
117660 .required_features = .{ .avx, null, null, null },
117661 .dst_constraints = .{ .bool, .any },
117662 .src_constraints = .{ .any_bool_vec, .any, .any },
117663 .patterns = &.{
117664 .{ .src = .{ .{ .reg_mask = .{ .size = .yword } }, .none, .none } },
117665 },
117666 .extra_temps = .{
117667 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117668 .{ .type = .vector_32_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117669 .unused,
117670 .unused,
117671 .unused,
117672 .unused,
117673 .unused,
117674 .unused,
117675 .unused,
117676 .unused,
117677 .unused,
117678 },
117679 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117680 .clobbers = .{ .eflags = true },
117681 .each = .{ .once = &.{
117682 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117683 .{ ._, .vp_, .@"test", .src0y, .lea(.tmp0y), ._, ._ },
117684 } },
117685 }, .{
117686 .dst_constraints = .{ .bool, .any },
117687 .src_constraints = .{ .{ .exact_bool_vec = 8 }, .any, .any },
117688 .patterns = &.{
117689 .{ .src = .{ .mem, .none, .none } },
117690 .{ .src = .{ .to_gpr, .none, .none } },
117691 },
117692 .dst_temps = .{ .{ .cc = .e }, .unused },
117693 .clobbers = .{ .eflags = true },
117694 .each = .{ .once = &.{
117695 .{ ._, ._, .cmp, .src0b, .si(-1), ._, ._ },
117696 } },
117697 }, .{
117698 .dst_constraints = .{ .bool, .any },
117699 .src_constraints = .{ .{ .bool_vec = .byte }, .any, .any },
117700 .patterns = &.{
117701 .{ .src = .{ .to_mut_gpr, .none, .none } },
117702 },
117703 .dst_temps = .{ .{ .cc = .z }, .unused },
117704 .clobbers = .{ .eflags = true },
117705 .each = .{ .once = &.{
117706 .{ ._, ._, .not, .src0b, ._, ._, ._ },
117707 .{ ._, ._, .@"test", .src0b, .ua(.src0, .add_umax), ._, ._ },
117708 } },
117709 }, .{
117710 .dst_constraints = .{ .bool, .any },
117711 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
117712 .patterns = &.{
117713 .{ .src = .{ .mem, .none, .none } },
117714 .{ .src = .{ .to_gpr, .none, .none } },
117715 },
117716 .dst_temps = .{ .{ .cc = .e }, .unused },
117717 .clobbers = .{ .eflags = true },
117718 .each = .{ .once = &.{
117719 .{ ._, ._, .cmp, .src0w, .si(-1), ._, ._ },
117720 } },
117721 }, .{
117722 .dst_constraints = .{ .bool, .any },
117723 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
117724 .patterns = &.{
117725 .{ .src = .{ .to_mut_gpr, .none, .none } },
117726 },
117727 .dst_temps = .{ .{ .cc = .z }, .unused },
117728 .clobbers = .{ .eflags = true },
117729 .each = .{ .once = &.{
117730 .{ ._, ._, .not, .src0d, ._, ._, ._ },
117731 .{ ._, ._, .@"test", .src0d, .ua(.src0, .add_umax), ._, ._ },
117732 } },
117733 }, .{
117734 .dst_constraints = .{ .bool, .any },
117735 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
117736 .patterns = &.{
117737 .{ .src = .{ .mem, .none, .none } },
117738 .{ .src = .{ .to_gpr, .none, .none } },
117739 },
117740 .dst_temps = .{ .{ .cc = .e }, .unused },
117741 .clobbers = .{ .eflags = true },
117742 .each = .{ .once = &.{
117743 .{ ._, ._, .cmp, .src0d, .si(-1), ._, ._ },
117744 } },
117745 }, .{
117746 .dst_constraints = .{ .bool, .any },
117747 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
117748 .patterns = &.{
117749 .{ .src = .{ .to_mut_gpr, .none, .none } },
117750 },
117751 .dst_temps = .{ .{ .cc = .z }, .unused },
117752 .clobbers = .{ .eflags = true },
117753 .each = .{ .once = &.{
117754 .{ ._, ._, .not, .src0d, ._, ._, ._ },
117755 .{ ._, ._, .@"test", .src0d, .ua(.src0, .add_umax), ._, ._ },
117756 } },
117757 }, .{
117758 .required_features = .{ .@"64bit", null, null, null },
117759 .dst_constraints = .{ .bool, .any },
117760 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
117761 .patterns = &.{
117762 .{ .src = .{ .mem, .none, .none } },
117763 .{ .src = .{ .to_gpr, .none, .none } },
117764 },
117765 .dst_temps = .{ .{ .cc = .e }, .unused },
117766 .clobbers = .{ .eflags = true },
117767 .each = .{ .once = &.{
117768 .{ ._, ._, .cmp, .src0q, .si(-1), ._, ._ },
117769 } },
117770 }, .{
117771 .required_features = .{ .@"64bit", null, null, null },
117772 .dst_constraints = .{ .bool, .any },
117773 .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any },
117774 .patterns = &.{
117775 .{ .src = .{ .to_mut_gpr, .none, .none } },
117776 },
117777 .extra_temps = .{
117778 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117779 .unused,
117780 .unused,
117781 .unused,
117782 .unused,
117783 .unused,
117784 .unused,
117785 .unused,
117786 .unused,
117787 .unused,
117788 .unused,
117789 },
117790 .dst_temps = .{ .{ .cc = .z }, .unused },
117791 .clobbers = .{ .eflags = true },
117792 .each = .{ .once = &.{
117793 .{ ._, ._, .not, .src0q, ._, ._, ._ },
117794 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
117795 .{ ._, ._, .@"test", .src0q, .tmp0q, ._, ._ },
117796 } },
117797 }, .{
117798 .required_features = .{ .@"64bit", null, null, null },
117799 .dst_constraints = .{ .bool, .any },
117800 .src_constraints = .{ .{ .exact_remainder_bool_vec = .{ .of = .qword, .is = 64 } }, .any, .any },
117801 .patterns = &.{
117802 .{ .src = .{ .to_mem, .none, .none } },
117803 },
117804 .extra_temps = .{
117805 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117806 .unused,
117807 .unused,
117808 .unused,
117809 .unused,
117810 .unused,
117811 .unused,
117812 .unused,
117813 .unused,
117814 .unused,
117815 .unused,
117816 },
117817 .dst_temps = .{ .{ .cc = .nc }, .unused },
117818 .clobbers = .{ .eflags = true },
117819 .each = .{ .once = &.{
117820 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8), ._, ._ },
117821 .{ .@"1:", ._, .cmp, .memi(.src0q, .tmp0), .si(-1), ._, ._ },
117822 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
117823 .{ ._, ._, .add, .tmp0d, .si(-8), ._, ._ },
117824 .{ ._, ._b, .j, .@"1b", ._, ._, ._ },
117825 } },
117826 }, .{
117827 .required_features = .{ .@"64bit", null, null, null },
117828 .dst_constraints = .{ .bool, .any },
117829 .src_constraints = .{ .{ .remainder_bool_vec = .{ .of = .qword, .is = .qword } }, .any, .any },
117830 .patterns = &.{
117831 .{ .src = .{ .to_mem, .none, .none } },
117832 },
117833 .extra_temps = .{
117834 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117835 .unused,
117836 .unused,
117837 .unused,
117838 .unused,
117839 .unused,
117840 .unused,
117841 .unused,
117842 .unused,
117843 .unused,
117844 .unused,
117845 },
117846 .dst_temps = .{ .{ .cc = .nc }, .unused },
117847 .clobbers = .{ .eflags = true },
117848 .each = .{ .once = &.{
117849 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_2_smin), ._, ._ },
117850 .{ ._, ._, .@"or", .tmp0q, .mema(.src0q, .add_bit_size_div_8_down_8), ._, ._ },
117851 .{ ._, ._, .cmp, .tmp0q, .si(-1), ._, ._ },
117852 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
117853 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8_down_8), ._, ._ },
117854 .{ .@"1:", ._, .cmp, .memi(.src0q, .tmp0), .si(-1), ._, ._ },
117855 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
117856 .{ ._, ._, .add, .tmp0d, .si(-8), ._, ._ },
117857 .{ ._, ._b, .j, .@"1b", ._, ._, ._ },
117858 } },
117859 } },
117860 .@"or" => [_]Select.Case{ .{
117861 .required_features = .{ .avx, null, null, null },
117862 .dst_constraints = .{ .bool, .any },
117863 .src_constraints = .{ .any_bool_vec, .any, .any },
117864 .patterns = &.{
117865 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword, .is = .uninverted } }, .none, .none } },
117866 },
117867 .dst_temps = .{ .{ .cc = .nz }, .unused },
117868 .clobbers = .{ .eflags = true },
117869 .each = .{ .once = &.{
117870 .{ ._, .vp_, .@"test", .src0x, .src0x, ._, ._ },
117871 } },
117872 }, .{
117873 .required_features = .{ .sse4_1, null, null, null },
117874 .dst_constraints = .{ .bool, .any },
117875 .src_constraints = .{ .any_bool_vec, .any, .any },
117876 .patterns = &.{
117877 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword, .is = .uninverted } }, .none, .none } },
117878 },
117879 .dst_temps = .{ .{ .cc = .nz }, .unused },
117880 .clobbers = .{ .eflags = true },
117881 .each = .{ .once = &.{
117882 .{ ._, .p_, .@"test", .src0x, .src0x, ._, ._ },
117883 } },
117884 }, .{
117885 .required_features = .{ .avx, null, null, null },
117886 .dst_constraints = .{ .bool, .any },
117887 .src_constraints = .{ .any_bool_vec, .any, .any },
117888 .patterns = &.{
117889 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword } }, .none, .none } },
117890 },
117891 .extra_temps = .{
117892 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
117893 .unused,
117894 .unused,
117895 .unused,
117896 .unused,
117897 .unused,
117898 .unused,
117899 .unused,
117900 .unused,
117901 .unused,
117902 .unused,
117903 },
117904 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117905 .clobbers = .{ .eflags = true },
117906 .each = .{ .once = &.{
117907 .{ ._, .vp_b, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
117908 .{ ._, .vp_, .@"test", .src0x, .tmp0x, ._, ._ },
117909 } },
117910 }, .{
117911 .required_features = .{ .sse4_1, null, null, null },
117912 .dst_constraints = .{ .bool, .any },
117913 .src_constraints = .{ .any_bool_vec, .any, .any },
117914 .patterns = &.{
117915 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword } }, .none, .none } },
117916 },
117917 .extra_temps = .{
117918 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
117919 .unused,
117920 .unused,
117921 .unused,
117922 .unused,
117923 .unused,
117924 .unused,
117925 .unused,
117926 .unused,
117927 .unused,
117928 .unused,
117929 },
117930 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117931 .clobbers = .{ .eflags = true },
117932 .each = .{ .once = &.{
117933 .{ ._, .p_b, .cmpeq, .tmp0x, .tmp0x, ._, ._ },
117934 .{ ._, .p_, .@"test", .src0x, .tmp0x, ._, ._ },
117935 } },
117936 }, .{
117937 .required_features = .{ .avx, null, null, null },
117938 .dst_constraints = .{ .bool, .any },
117939 .src_constraints = .{ .any_bool_vec, .any, .any },
117940 .patterns = &.{
117941 .{ .src = .{ .{ .reg_mask = .{ .size = .xword } }, .none, .none } },
117942 },
117943 .extra_temps = .{
117944 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117945 .{ .type = .vector_16_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117946 .unused,
117947 .unused,
117948 .unused,
117949 .unused,
117950 .unused,
117951 .unused,
117952 .unused,
117953 .unused,
117954 .unused,
117955 },
117956 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117957 .clobbers = .{ .eflags = true },
117958 .each = .{ .once = &.{
117959 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117960 .{ ._, .vp_, .@"test", .src0x, .lea(.tmp0x), ._, ._ },
117961 } },
117962 }, .{
117963 .required_features = .{ .sse4_1, null, null, null },
117964 .dst_constraints = .{ .bool, .any },
117965 .src_constraints = .{ .any_bool_vec, .any, .any },
117966 .patterns = &.{
117967 .{ .src = .{ .{ .reg_mask = .{ .size = .xword } }, .none, .none } },
117968 },
117969 .extra_temps = .{
117970 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117971 .{ .type = .vector_16_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117972 .unused,
117973 .unused,
117974 .unused,
117975 .unused,
117976 .unused,
117977 .unused,
117978 .unused,
117979 .unused,
117980 .unused,
117981 },
117982 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117983 .clobbers = .{ .eflags = true },
117984 .each = .{ .once = &.{
117985 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117986 .{ ._, .p_, .@"test", .src0x, .lea(.tmp0x), ._, ._ },
117987 } },
117988 }, .{
117989 .required_features = .{ .avx2, null, null, null },
117990 .dst_constraints = .{ .bool, .any },
117991 .src_constraints = .{ .any_bool_vec, .any, .any },
117992 .patterns = &.{
117993 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword, .is = .uninverted } }, .none, .none } },
117994 },
117995 .dst_temps = .{ .{ .cc = .nz }, .unused },
117996 .clobbers = .{ .eflags = true },
117997 .each = .{ .once = &.{
117998 .{ ._, .vp_, .@"test", .src0y, .src0y, ._, ._ },
117999 } },
118000 }, .{
118001 .required_features = .{ .avx, null, null, null },
118002 .dst_constraints = .{ .bool, .any },
118003 .src_constraints = .{ .any_bool_vec, .any, .any },
118004 .patterns = &.{
118005 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword, .is = .uninverted } }, .none, .none } },
118006 },
118007 .dst_temps = .{ .{ .cc = .nz }, .unused },
118008 .clobbers = .{ .eflags = true },
118009 .each = .{ .once = &.{
118010 .{ ._, .v_ps, .@"test", .src0y, .src0y, ._, ._ },
118011 } },
118012 }, .{
118013 .required_features = .{ .avx2, null, null, null },
118014 .dst_constraints = .{ .bool, .any },
118015 .src_constraints = .{ .any_bool_vec, .any, .any },
118016 .patterns = &.{
118017 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword } }, .none, .none } },
118018 },
118019 .extra_temps = .{
118020 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
118021 .unused,
118022 .unused,
118023 .unused,
118024 .unused,
118025 .unused,
118026 .unused,
118027 .unused,
118028 .unused,
118029 .unused,
118030 .unused,
118031 },
118032 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
118033 .clobbers = .{ .eflags = true },
118034 .each = .{ .once = &.{
118035 .{ ._, .vp_b, .cmpeq, .tmp0y, .tmp0y, .tmp0y, ._ },
118036 .{ ._, .vp_, .@"test", .src0y, .tmp0y, ._, ._ },
118037 } },
118038 }, .{
118039 .required_features = .{ .avx, null, null, null },
118040 .dst_constraints = .{ .bool, .any },
118041 .src_constraints = .{ .any_bool_vec, .any, .any },
118042 .patterns = &.{
118043 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword } }, .none, .none } },
118044 },
118045 .extra_temps = .{
118046 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
118047 .unused,
118048 .unused,
118049 .unused,
118050 .unused,
118051 .unused,
118052 .unused,
118053 .unused,
118054 .unused,
118055 .unused,
118056 .unused,
118057 },
118058 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
118059 .clobbers = .{ .eflags = true },
118060 .each = .{ .once = &.{
118061 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.true) },
118062 .{ ._, .v_ps, .@"test", .src0y, .tmp0y, ._, ._ },
118063 } },
118064 }, .{
118065 .required_features = .{ .avx, null, null, null },
118066 .dst_constraints = .{ .bool, .any },
118067 .src_constraints = .{ .any_bool_vec, .any, .any },
118068 .patterns = &.{
118069 .{ .src = .{ .{ .reg_mask = .{ .size = .yword } }, .none, .none } },
118070 },
118071 .extra_temps = .{
118072 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
118073 .{ .type = .vector_32_u8, .kind = .{ .ptest_mask_mem = .src0 } },
118074 .unused,
118075 .unused,
118076 .unused,
118077 .unused,
118078 .unused,
118079 .unused,
118080 .unused,
118081 .unused,
118082 .unused,
118083 },
118084 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
118085 .clobbers = .{ .eflags = true },
118086 .each = .{ .once = &.{
118087 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
118088 .{ ._, .vp_, .@"test", .src0y, .lea(.tmp0y), ._, ._ },
118089 } },
118090 }, .{
118091 .dst_constraints = .{ .bool, .any },
118092 .src_constraints = .{ .{ .exact_bool_vec = 8 }, .any, .any },
118093 .patterns = &.{
118094 .{ .src = .{ .mem, .none, .none } },
118095 },
118096 .dst_temps = .{ .{ .cc = .ne }, .unused },
118097 .clobbers = .{ .eflags = true },
118098 .each = .{ .once = &.{
118099 .{ ._, ._, .cmp, .src0b, .si(0), ._, ._ },
118100 } },
118101 }, .{
118102 .dst_constraints = .{ .bool, .any },
118103 .src_constraints = .{ .{ .exact_bool_vec = 8 }, .any, .any },
118104 .patterns = &.{
118105 .{ .src = .{ .to_gpr, .none, .none } },
118106 },
118107 .dst_temps = .{ .{ .cc = .nz }, .unused },
118108 .clobbers = .{ .eflags = true },
118109 .each = .{ .once = &.{
118110 .{ ._, ._, .@"test", .src0b, .src0b, ._, ._ },
118111 } },
118112 }, .{
118113 .dst_constraints = .{ .bool, .any },
118114 .src_constraints = .{ .{ .bool_vec = .byte }, .any, .any },
118115 .patterns = &.{
118116 .{ .src = .{ .mem, .none, .none } },
118117 .{ .src = .{ .to_gpr, .none, .none } },
118118 },
118119 .dst_temps = .{ .{ .cc = .nz }, .unused },
118120 .clobbers = .{ .eflags = true },
118121 .each = .{ .once = &.{
118122 .{ ._, ._, .@"test", .src0b, .ua(.src0, .add_umax), ._, ._ },
118123 } },
118124 }, .{
118125 .dst_constraints = .{ .bool, .any },
118126 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
118127 .patterns = &.{
118128 .{ .src = .{ .mem, .none, .none } },
118129 },
118130 .dst_temps = .{ .{ .cc = .ne }, .unused },
118131 .clobbers = .{ .eflags = true },
118132 .each = .{ .once = &.{
118133 .{ ._, ._, .cmp, .src0w, .si(0), ._, ._ },
118134 } },
118135 }, .{
118136 .dst_constraints = .{ .bool, .any },
118137 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
118138 .patterns = &.{
118139 .{ .src = .{ .to_gpr, .none, .none } },
118140 },
118141 .dst_temps = .{ .{ .cc = .nz }, .unused },
118142 .clobbers = .{ .eflags = true },
118143 .each = .{ .once = &.{
118144 .{ ._, ._, .@"test", .src0w, .src0w, ._, ._ },
118145 } },
118146 }, .{
118147 .dst_constraints = .{ .bool, .any },
118148 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
118149 .patterns = &.{
118150 .{ .src = .{ .mem, .none, .none } },
118151 .{ .src = .{ .to_gpr, .none, .none } },
118152 },
118153 .dst_temps = .{ .{ .cc = .nz }, .unused },
118154 .clobbers = .{ .eflags = true },
118155 .each = .{ .once = &.{
118156 .{ ._, ._, .@"test", .src0w, .ua(.src0, .add_umax), ._, ._ },
118157 } },
118158 }, .{
118159 .dst_constraints = .{ .bool, .any },
118160 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
118161 .patterns = &.{
118162 .{ .src = .{ .mem, .none, .none } },
118163 },
118164 .dst_temps = .{ .{ .cc = .ne }, .unused },
118165 .clobbers = .{ .eflags = true },
118166 .each = .{ .once = &.{
118167 .{ ._, ._, .cmp, .src0d, .si(0), ._, ._ },
118168 } },
118169 }, .{
118170 .dst_constraints = .{ .bool, .any },
118171 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
118172 .patterns = &.{
118173 .{ .src = .{ .to_gpr, .none, .none } },
118174 },
118175 .dst_temps = .{ .{ .cc = .nz }, .unused },
118176 .clobbers = .{ .eflags = true },
118177 .each = .{ .once = &.{
118178 .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ },
118179 } },
118180 }, .{
118181 .dst_constraints = .{ .bool, .any },
118182 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
118183 .patterns = &.{
118184 .{ .src = .{ .mem, .none, .none } },
118185 .{ .src = .{ .to_gpr, .none, .none } },
118186 },
118187 .dst_temps = .{ .{ .cc = .nz }, .unused },
118188 .clobbers = .{ .eflags = true },
118189 .each = .{ .once = &.{
118190 .{ ._, ._, .@"test", .src0d, .ua(.src0, .add_umax), ._, ._ },
118191 } },
118192 }, .{
118193 .required_features = .{ .@"64bit", null, null, null },
118194 .dst_constraints = .{ .bool, .any },
118195 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118196 .patterns = &.{
118197 .{ .src = .{ .mem, .none, .none } },
118198 },
118199 .dst_temps = .{ .{ .cc = .ne }, .unused },
118200 .clobbers = .{ .eflags = true },
118201 .each = .{ .once = &.{
118202 .{ ._, ._, .cmp, .src0q, .si(0), ._, ._ },
118203 } },
118204 }, .{
118205 .required_features = .{ .@"64bit", null, null, null },
118206 .dst_constraints = .{ .bool, .any },
118207 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118208 .patterns = &.{
118209 .{ .src = .{ .to_gpr, .none, .none } },
118210 },
118211 .dst_temps = .{ .{ .cc = .nz }, .unused },
118212 .clobbers = .{ .eflags = true },
118213 .each = .{ .once = &.{
118214 .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ },
118215 } },
118216 }, .{
118217 .required_features = .{ .@"64bit", null, null, null },
118218 .dst_constraints = .{ .bool, .any },
118219 .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any },
118220 .patterns = &.{
118221 .{ .src = .{ .mem, .none, .none } },
118222 .{ .src = .{ .to_gpr, .none, .none } },
118223 },
118224 .extra_temps = .{
118225 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118226 .unused,
118227 .unused,
118228 .unused,
118229 .unused,
118230 .unused,
118231 .unused,
118232 .unused,
118233 .unused,
118234 .unused,
118235 .unused,
118236 },
118237 .dst_temps = .{ .{ .cc = .nz }, .unused },
118238 .clobbers = .{ .eflags = true },
118239 .each = .{ .once = &.{
118240 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
118241 .{ ._, ._, .@"test", .src0q, .tmp0q, ._, ._ },
118242 } },
118243 }, .{
118244 .required_features = .{ .@"64bit", null, null, null },
118245 .dst_constraints = .{ .bool, .any },
118246 .src_constraints = .{ .{ .exact_remainder_bool_vec = .{ .of = .qword, .is = 64 } }, .any, .any },
118247 .patterns = &.{
118248 .{ .src = .{ .to_mem, .none, .none } },
118249 },
118250 .extra_temps = .{
118251 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118252 .unused,
118253 .unused,
118254 .unused,
118255 .unused,
118256 .unused,
118257 .unused,
118258 .unused,
118259 .unused,
118260 .unused,
118261 .unused,
118262 },
118263 .dst_temps = .{ .{ .cc = .nc }, .unused },
118264 .clobbers = .{ .eflags = true },
118265 .each = .{ .once = &.{
118266 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8), ._, ._ },
118267 .{ .@"1:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ },
118268 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
118269 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
118270 .{ ._, ._nb, .j, .@"1b", ._, ._, ._ },
118271 } },
118272 }, .{
118273 .required_features = .{ .@"64bit", null, null, null },
118274 .dst_constraints = .{ .bool, .any },
118275 .src_constraints = .{ .{ .remainder_bool_vec = .{ .of = .qword, .is = .qword } }, .any, .any },
118276 .patterns = &.{
118277 .{ .src = .{ .to_mem, .none, .none } },
118278 },
118279 .extra_temps = .{
118280 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118281 .unused,
118282 .unused,
118283 .unused,
118284 .unused,
118285 .unused,
118286 .unused,
118287 .unused,
118288 .unused,
118289 .unused,
118290 .unused,
118291 },
118292 .dst_temps = .{ .{ .cc = .nc }, .unused },
118293 .clobbers = .{ .eflags = true },
118294 .each = .{ .once = &.{
118295 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
118296 .{ ._, ._, .@"test", .mema(.src0q, .add_bit_size_div_8_down_8), .tmp0q, ._, ._ },
118297 .{ ._, ._nz, .j, .@"0f", ._, ._, ._ },
118298 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8_down_8), ._, ._ },
118299 .{ .@"1:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ },
118300 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
118301 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
118302 .{ ._, ._nb, .j, .@"1b", ._, ._, ._ },
118303 } },
118304 } },
118305 .xor => [_]Select.Case{ .{
118306 .dst_constraints = .{ .bool, .any },
118307 .src_constraints = .{ .{ .bool_vec = .byte }, .any, .any },
118308 .patterns = &.{
118309 .{ .src = .{ .mem, .none, .none } },
118310 },
118311 .dst_temps = .{ .{ .cc = .po }, .unused },
118312 .clobbers = .{ .eflags = true },
118313 .each = .{ .once = &.{
118314 .{ ._, ._, .@"test", .src0b, .ua(.src0, .add_umax), ._, ._ },
118315 } },
118316 }, .{
118317 .dst_constraints = .{ .bool, .any },
118318 .src_constraints = .{ .{ .exact_bool_vec = 8 }, .any, .any },
118319 .patterns = &.{
118320 .{ .src = .{ .to_gpr, .none, .none } },
118321 },
118322 .dst_temps = .{ .{ .cc = .po }, .unused },
118323 .clobbers = .{ .eflags = true },
118324 .each = .{ .once = &.{
118325 .{ ._, ._, .@"test", .src0b, .src0b, ._, ._ },
118326 } },
118327 }, .{
118328 .dst_constraints = .{ .bool, .any },
118329 .src_constraints = .{ .{ .bool_vec = .byte }, .any, .any },
118330 .patterns = &.{
118331 .{ .src = .{ .to_gpr, .none, .none } },
118332 },
118333 .dst_temps = .{ .{ .cc = .po }, .unused },
118334 .clobbers = .{ .eflags = true },
118335 .each = .{ .once = &.{
118336 .{ ._, ._, .@"test", .src0b, .ua(.src0, .add_umax), ._, ._ },
118337 } },
118338 }, .{
118339 .required_features = .{ .popcnt, null, null, null },
118340 .dst_constraints = .{ .bool, .any },
118341 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
118342 .patterns = &.{
118343 .{ .src = .{ .mem, .none, .none } },
118344 },
118345 .extra_temps = .{
118346 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
118347 .unused,
118348 .unused,
118349 .unused,
118350 .unused,
118351 .unused,
118352 .unused,
118353 .unused,
118354 .unused,
118355 .unused,
118356 .unused,
118357 },
118358 .dst_temps = .{ .{ .cc = .nz }, .unused },
118359 .clobbers = .{ .eflags = true },
118360 .each = .{ .once = &.{
118361 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
118362 .{ ._, ._, .popcnt, .tmp0w, .src0w, ._, ._ },
118363 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118364 } },
118365 }, .{
118366 .required_features = .{ .popcnt, null, null, null },
118367 .dst_constraints = .{ .bool, .any },
118368 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
118369 .patterns = &.{
118370 .{ .src = .{ .to_mut_gpr, .none, .none } },
118371 },
118372 .dst_temps = .{ .{ .cc = .nz }, .unused },
118373 .clobbers = .{ .eflags = true },
118374 .each = .{ .once = &.{
118375 .{ ._, ._, .popcnt, .src0w, .src0w, ._, ._ },
118376 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
118377 } },
118378 }, .{
118379 .dst_constraints = .{ .bool, .any },
118380 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
118381 .patterns = &.{
118382 .{ .src = .{ .to_gpr, .none, .none } },
118383 },
118384 .extra_temps = .{
118385 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
118386 .unused,
118387 .unused,
118388 .unused,
118389 .unused,
118390 .unused,
118391 .unused,
118392 .unused,
118393 .unused,
118394 .unused,
118395 .unused,
118396 },
118397 .dst_temps = .{ .{ .cc = .po }, .unused },
118398 .clobbers = .{ .eflags = true },
118399 .each = .{ .once = &.{
118400 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
118401 .{ ._, ._r, .sh, .tmp0d, .ui(8), ._, ._ },
118402 .{ ._, ._, .xor, .tmp0b, .src0b, ._, ._ },
118403 } },
118404 }, .{
118405 .required_features = .{ .popcnt, .fast_imm16, null, null },
118406 .dst_constraints = .{ .bool, .any },
118407 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
118408 .patterns = &.{
118409 .{ .src = .{ .to_mut_gpr, .none, .none } },
118410 },
118411 .dst_temps = .{ .{ .cc = .nz }, .unused },
118412 .clobbers = .{ .eflags = true },
118413 .each = .{ .once = &.{
118414 .{ ._, ._, .@"and", .src0w, .ua(.src0, .add_umax), ._, ._ },
118415 .{ ._, ._, .popcnt, .src0w, .src0w, ._, ._ },
118416 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
118417 } },
118418 }, .{
118419 .required_features = .{ .popcnt, null, null, null },
118420 .dst_constraints = .{ .bool, .any },
118421 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
118422 .patterns = &.{
118423 .{ .src = .{ .to_mut_gpr, .none, .none } },
118424 },
118425 .dst_temps = .{ .{ .cc = .nz }, .unused },
118426 .clobbers = .{ .eflags = true },
118427 .each = .{ .once = &.{
118428 .{ ._, ._, .@"and", .src0d, .ua(.src0, .add_umax), ._, ._ },
118429 .{ ._, ._, .popcnt, .src0d, .src0d, ._, ._ },
118430 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
118431 } },
118432 }, .{
118433 .dst_constraints = .{ .bool, .any },
118434 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
118435 .patterns = &.{
118436 .{ .src = .{ .to_gpr, .none, .none } },
118437 },
118438 .extra_temps = .{
118439 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
118440 .unused,
118441 .unused,
118442 .unused,
118443 .unused,
118444 .unused,
118445 .unused,
118446 .unused,
118447 .unused,
118448 .unused,
118449 .unused,
118450 },
118451 .dst_temps = .{ .{ .cc = .po }, .unused },
118452 .clobbers = .{ .eflags = true },
118453 .each = .{ .once = &.{
118454 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
118455 .{ ._, ._r, .sh, .tmp0d, .ui(8), ._, ._ },
118456 .{ ._, ._, .@"and", .tmp0b, .ua(.src0b, .add_umax), ._, ._ },
118457 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118458 } },
118459 }, .{
118460 .required_features = .{ .popcnt, .false_deps_popcnt, null, null },
118461 .dst_constraints = .{ .bool, .any },
118462 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
118463 .patterns = &.{
118464 .{ .src = .{ .mem, .none, .none } },
118465 },
118466 .extra_temps = .{
118467 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
118468 .unused,
118469 .unused,
118470 .unused,
118471 .unused,
118472 .unused,
118473 .unused,
118474 .unused,
118475 .unused,
118476 .unused,
118477 .unused,
118478 },
118479 .dst_temps = .{ .{ .cc = .nz }, .unused },
118480 .clobbers = .{ .eflags = true },
118481 .each = .{ .once = &.{
118482 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
118483 .{ ._, ._, .popcnt, .tmp0d, .src0d, ._, ._ },
118484 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118485 } },
118486 }, .{
118487 .required_features = .{ .popcnt, .false_deps_popcnt, null, null },
118488 .dst_constraints = .{ .bool, .any },
118489 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
118490 .patterns = &.{
118491 .{ .src = .{ .to_mut_gpr, .none, .none } },
118492 },
118493 .dst_temps = .{ .{ .cc = .nz }, .unused },
118494 .clobbers = .{ .eflags = true },
118495 .each = .{ .once = &.{
118496 .{ ._, ._, .popcnt, .src0d, .src0d, ._, ._ },
118497 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
118498 } },
118499 }, .{
118500 .required_features = .{ .popcnt, null, null, null },
118501 .dst_constraints = .{ .bool, .any },
118502 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
118503 .patterns = &.{
118504 .{ .src = .{ .mem, .none, .none } },
118505 .{ .src = .{ .to_gpr, .none, .none } },
118506 },
118507 .extra_temps = .{
118508 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118509 .unused,
118510 .unused,
118511 .unused,
118512 .unused,
118513 .unused,
118514 .unused,
118515 .unused,
118516 .unused,
118517 .unused,
118518 .unused,
118519 },
118520 .dst_temps = .{ .{ .cc = .nz }, .unused },
118521 .clobbers = .{ .eflags = true },
118522 .each = .{ .once = &.{
118523 .{ ._, ._, .popcnt, .tmp0d, .src0d, ._, ._ },
118524 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118525 } },
118526 }, .{
118527 .dst_constraints = .{ .bool, .any },
118528 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
118529 .patterns = &.{
118530 .{ .src = .{ .to_gpr, .none, .none } },
118531 },
118532 .extra_temps = .{
118533 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118534 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118535 .unused,
118536 .unused,
118537 .unused,
118538 .unused,
118539 .unused,
118540 .unused,
118541 .unused,
118542 .unused,
118543 .unused,
118544 },
118545 .dst_temps = .{ .{ .cc = .po }, .unused },
118546 .clobbers = .{ .eflags = true },
118547 .each = .{ .once = &.{
118548 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
118549 .{ ._, ._r, .sh, .tmp0d, .ui(16), ._, ._ },
118550 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118551 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118552 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118553 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118554 } },
118555 }, .{
118556 .required_features = .{ .popcnt, null, null, null },
118557 .dst_constraints = .{ .bool, .any },
118558 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
118559 .patterns = &.{
118560 .{ .src = .{ .to_mut_gpr, .none, .none } },
118561 },
118562 .dst_temps = .{ .{ .cc = .nz }, .unused },
118563 .clobbers = .{ .eflags = true },
118564 .each = .{ .once = &.{
118565 .{ ._, ._, .@"and", .src0d, .ua(.src0, .add_umax), ._, ._ },
118566 .{ ._, ._, .popcnt, .src0d, .src0d, ._, ._ },
118567 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
118568 } },
118569 }, .{
118570 .required_features = .{ .fast_imm16, null, null, null },
118571 .dst_constraints = .{ .bool, .any },
118572 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
118573 .patterns = &.{
118574 .{ .src = .{ .to_gpr, .none, .none } },
118575 },
118576 .extra_temps = .{
118577 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118578 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118579 .unused,
118580 .unused,
118581 .unused,
118582 .unused,
118583 .unused,
118584 .unused,
118585 .unused,
118586 .unused,
118587 .unused,
118588 },
118589 .dst_temps = .{ .{ .cc = .po }, .unused },
118590 .clobbers = .{ .eflags = true },
118591 .each = .{ .once = &.{
118592 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
118593 .{ ._, ._r, .sh, .tmp0d, .ui(16), ._, ._ },
118594 .{ ._, ._, .@"and", .tmp0d, .ua(.src0w, .add_umax), ._, ._ },
118595 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118596 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118597 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118598 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118599 } },
118600 }, .{
118601 .dst_constraints = .{ .bool, .any },
118602 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
118603 .patterns = &.{
118604 .{ .src = .{ .to_gpr, .none, .none } },
118605 },
118606 .extra_temps = .{
118607 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118608 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118609 .unused,
118610 .unused,
118611 .unused,
118612 .unused,
118613 .unused,
118614 .unused,
118615 .unused,
118616 .unused,
118617 .unused,
118618 },
118619 .dst_temps = .{ .{ .cc = .po }, .unused },
118620 .clobbers = .{ .eflags = true },
118621 .each = .{ .once = &.{
118622 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
118623 .{ ._, ._r, .sh, .tmp0d, .ui(16), ._, ._ },
118624 .{ ._, ._, .@"and", .tmp0d, .ua(.src0w, .add_umax), ._, ._ },
118625 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118626 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118627 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118628 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118629 } },
118630 }, .{
118631 .required_features = .{ .@"64bit", .popcnt, .false_deps_popcnt, null },
118632 .dst_constraints = .{ .bool, .any },
118633 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118634 .patterns = &.{
118635 .{ .src = .{ .mem, .none, .none } },
118636 },
118637 .extra_temps = .{
118638 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118639 .unused,
118640 .unused,
118641 .unused,
118642 .unused,
118643 .unused,
118644 .unused,
118645 .unused,
118646 .unused,
118647 .unused,
118648 .unused,
118649 },
118650 .dst_temps = .{ .{ .cc = .nz }, .unused },
118651 .clobbers = .{ .eflags = true },
118652 .each = .{ .once = &.{
118653 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
118654 .{ ._, ._, .popcnt, .tmp0q, .src0q, ._, ._ },
118655 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118656 } },
118657 }, .{
118658 .required_features = .{ .@"64bit", .popcnt, .false_deps_popcnt, null },
118659 .dst_constraints = .{ .bool, .any },
118660 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118661 .patterns = &.{
118662 .{ .src = .{ .to_mut_gpr, .none, .none } },
118663 },
118664 .dst_temps = .{ .{ .cc = .nz }, .unused },
118665 .clobbers = .{ .eflags = true },
118666 .each = .{ .once = &.{
118667 .{ ._, ._, .popcnt, .src0q, .src0q, ._, ._ },
118668 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
118669 } },
118670 }, .{
118671 .required_features = .{ .@"64bit", .popcnt, null, null },
118672 .dst_constraints = .{ .bool, .any },
118673 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118674 .patterns = &.{
118675 .{ .src = .{ .mem, .none, .none } },
118676 .{ .src = .{ .to_gpr, .none, .none } },
118677 },
118678 .extra_temps = .{
118679 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118680 .unused,
118681 .unused,
118682 .unused,
118683 .unused,
118684 .unused,
118685 .unused,
118686 .unused,
118687 .unused,
118688 .unused,
118689 .unused,
118690 },
118691 .dst_temps = .{ .{ .cc = .nz }, .unused },
118692 .clobbers = .{ .eflags = true },
118693 .each = .{ .once = &.{
118694 .{ ._, ._, .popcnt, .tmp0q, .src0q, ._, ._ },
118695 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118696 } },
118697 }, .{
118698 .dst_constraints = .{ .bool, .any },
118699 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118700 .patterns = &.{
118701 .{ .src = .{ .to_gpr, .none, .none } },
118702 },
118703 .extra_temps = .{
118704 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118705 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118706 .unused,
118707 .unused,
118708 .unused,
118709 .unused,
118710 .unused,
118711 .unused,
118712 .unused,
118713 .unused,
118714 .unused,
118715 },
118716 .dst_temps = .{ .{ .cc = .po }, .unused },
118717 .clobbers = .{ .eflags = true },
118718 .each = .{ .once = &.{
118719 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
118720 .{ ._, ._r, .sh, .tmp0q, .ui(32), ._, ._ },
118721 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118722 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118723 .{ ._, ._r, .sh, .tmp1d, .ui(16), ._, ._ },
118724 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118725 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118726 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118727 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118728 } },
118729 }, .{
118730 .required_features = .{ .@"64bit", .popcnt, null, null },
118731 .dst_constraints = .{ .bool, .any },
118732 .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any },
118733 .patterns = &.{
118734 .{ .src = .{ .mem, .none, .none } },
118735 .{ .src = .{ .to_gpr, .none, .none } },
118736 },
118737 .extra_temps = .{
118738 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118739 .unused,
118740 .unused,
118741 .unused,
118742 .unused,
118743 .unused,
118744 .unused,
118745 .unused,
118746 .unused,
118747 .unused,
118748 .unused,
118749 },
118750 .dst_temps = .{ .{ .cc = .nz }, .unused },
118751 .clobbers = .{ .eflags = true },
118752 .each = .{ .once = &.{
118753 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
118754 .{ ._, ._, .@"and", .tmp0q, .src0q, ._, ._ },
118755 .{ ._, ._, .popcnt, .tmp0q, .tmp0q, ._, ._ },
118756 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118757 } },
118758 }, .{
118759 .dst_constraints = .{ .bool, .any },
118760 .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any },
118761 .patterns = &.{
118762 .{ .src = .{ .to_gpr, .none, .none } },
118763 },
118764 .extra_temps = .{
118765 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118766 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118767 .unused,
118768 .unused,
118769 .unused,
118770 .unused,
118771 .unused,
118772 .unused,
118773 .unused,
118774 .unused,
118775 .unused,
118776 },
118777 .dst_temps = .{ .{ .cc = .po }, .unused },
118778 .clobbers = .{ .eflags = true },
118779 .each = .{ .once = &.{
118780 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
118781 .{ ._, ._r, .sh, .tmp0q, .ui(32), ._, ._ },
118782 .{ ._, ._, .@"and", .tmp0d, .ua(.src0d, .add_umax), ._, ._ },
118783 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118784 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118785 .{ ._, ._r, .sh, .tmp1d, .ui(16), ._, ._ },
118786 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118787 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118788 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118789 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118790 } },
118791 }, .{
118792 .required_features = .{ .@"64bit", .popcnt, null, null },
118793 .dst_constraints = .{ .bool, .any },
118794 .src_constraints = .{ .{ .exact_remainder_bool_vec = .{ .of = .qword, .is = 64 } }, .any, .any },
118795 .patterns = &.{
118796 .{ .src = .{ .to_mem, .none, .none } },
118797 },
118798 .extra_temps = .{
118799 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118800 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118801 .unused,
118802 .unused,
118803 .unused,
118804 .unused,
118805 .unused,
118806 .unused,
118807 .unused,
118808 .unused,
118809 .unused,
118810 },
118811 .dst_temps = .{ .{ .cc = .nz }, .unused },
118812 .clobbers = .{ .eflags = true },
118813 .each = .{ .once = &.{
118814 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8), ._, ._ },
118815 .{ ._, ._, .xor, .tmp1q, .tmp1q, ._, ._ },
118816 .{ .@"0:", ._, .xor, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
118817 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
118818 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
118819 .{ ._, ._, .popcnt, .tmp1q, .tmp1q, ._, ._ },
118820 .{ ._, ._, .@"and", .tmp1b, .ui(1), ._, ._ },
118821 } },
118822 }, .{
118823 .required_features = .{ .@"64bit", null, null, null },
118824 .dst_constraints = .{ .bool, .any },
118825 .src_constraints = .{ .{ .exact_remainder_bool_vec = .{ .of = .qword, .is = 64 } }, .any, .any },
118826 .patterns = &.{
118827 .{ .src = .{ .to_mem, .none, .none } },
118828 },
118829 .extra_temps = .{
118830 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118831 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118832 .unused,
118833 .unused,
118834 .unused,
118835 .unused,
118836 .unused,
118837 .unused,
118838 .unused,
118839 .unused,
118840 .unused,
118841 },
118842 .dst_temps = .{ .{ .cc = .po }, .unused },
118843 .clobbers = .{ .eflags = true },
118844 .each = .{ .once = &.{
118845 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8), ._, ._ },
118846 .{ ._, ._, .xor, .tmp1q, .tmp1q, ._, ._ },
118847 .{ .@"0:", ._, .xor, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
118848 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
118849 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
118850 .{ ._, ._, .mov, .tmp0d, .tmp1d, ._, ._ },
118851 .{ ._, ._r, .sh, .tmp1q, .ui(32), ._, ._ },
118852 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118853 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118854 .{ ._, ._r, .sh, .tmp1d, .ui(16), ._, ._ },
118855 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118856 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118857 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118858 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118859 } },
118860 }, .{
118861 .required_features = .{ .@"64bit", .popcnt, null, null },
118862 .dst_constraints = .{ .bool, .any },
118863 .src_constraints = .{ .{ .remainder_bool_vec = .{ .of = .qword, .is = .qword } }, .any, .any },
118864 .patterns = &.{
118865 .{ .src = .{ .to_mem, .none, .none } },
118866 },
118867 .extra_temps = .{
118868 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118869 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118870 .unused,
118871 .unused,
118872 .unused,
118873 .unused,
118874 .unused,
118875 .unused,
118876 .unused,
118877 .unused,
118878 .unused,
118879 },
118880 .dst_temps = .{ .{ .cc = .nz }, .unused },
118881 .clobbers = .{ .eflags = true },
118882 .each = .{ .once = &.{
118883 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
118884 .{ ._, ._, .mov, .tmp1d, .sia(-8, .src0, .add_bit_size_div_8_down_8), ._, ._ },
118885 .{ ._, ._, .@"and", .tmp0q, .mema(.src0q, .add_bit_size_div_8_down_8), ._, ._ },
118886 .{ .@"0:", ._, .xor, .tmp0q, .memi(.src0q, .tmp1), ._, ._ },
118887 .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ },
118888 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
118889 .{ ._, ._, .popcnt, .tmp0q, .tmp0q, ._, ._ },
118890 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118891 } },
118892 }, .{
118893 .required_features = .{ .@"64bit", null, null, null },
118894 .dst_constraints = .{ .bool, .any },
118895 .src_constraints = .{ .{ .remainder_bool_vec = .{ .of = .qword, .is = .qword } }, .any, .any },
118896 .patterns = &.{
118897 .{ .src = .{ .to_mem, .none, .none } },
118898 },
118899 .extra_temps = .{
118900 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118901 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118902 .unused,
118903 .unused,
118904 .unused,
118905 .unused,
118906 .unused,
118907 .unused,
118908 .unused,
118909 .unused,
118910 .unused,
118911 },
118912 .dst_temps = .{ .{ .cc = .po }, .unused },
118913 .clobbers = .{ .eflags = true },
118914 .each = .{ .once = &.{
118915 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
118916 .{ ._, ._, .mov, .tmp1d, .sia(-8, .src0, .add_bit_size_div_8_down_8), ._, ._ },
118917 .{ ._, ._, .@"and", .tmp0q, .mema(.src0q, .add_bit_size_div_8_down_8), ._, ._ },
118918 .{ .@"0:", ._, .xor, .tmp0q, .memi(.src0q, .tmp1), ._, ._ },
118919 .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ },
118920 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
118921 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118922 .{ ._, ._r, .sh, .tmp0q, .ui(32), ._, ._ },
118923 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118924 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118925 .{ ._, ._r, .sh, .tmp1d, .ui(16), ._, ._ },
118926 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118927 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118928 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118929 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118930 } },
118931 } },
118932 } ++ [_]Select.Case{ .{
118933 .required_features = .{ .avx, null, null, null },
118934 .dst_constraints = .{ .{ .int = .byte }, .any },
118935 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
118936 .patterns = &.{
118937 .{ .src = .{ .to_sse, .none, .none } },
118938 },
118939 .extra_temps = .{
118940 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118941 .unused,
118942 .unused,
118943 .unused,
118944 .unused,
118945 .unused,
118946 .unused,
118947 .unused,
118948 .unused,
118949 .unused,
118950 .unused,
118951 },
118952 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118953 .each = .{ .once = &.{
118954 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
118955 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
118956 } },
118957 }, .{
118958 .required_features = .{ .sse2, null, null, null },
118959 .dst_constraints = .{ .{ .int = .byte }, .any },
118960 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
118961 .patterns = &.{
118962 .{ .src = .{ .to_mut_sse, .none, .none } },
118963 },
118964 .extra_temps = .{
118965 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118966 .unused,
118967 .unused,
118968 .unused,
118969 .unused,
118970 .unused,
118971 .unused,
118972 .unused,
118973 .unused,
118974 .unused,
118975 .unused,
118976 },
118977 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118978 .each = .{ .once = &.{
118979 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
118980 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
118981 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118982 } },
118983 }, .{
118984 .required_features = .{ .avx, null, null, null },
118985 .dst_constraints = .{ .{ .int = .byte }, .any },
118986 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
118987 .patterns = &.{
118988 .{ .src = .{ .to_sse, .none, .none } },
118989 },
118990 .extra_temps = .{
118991 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118992 .unused,
118993 .unused,
118994 .unused,
118995 .unused,
118996 .unused,
118997 .unused,
118998 .unused,
118999 .unused,
119000 .unused,
119001 .unused,
119002 },
119003 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119004 .each = .{ .once = &.{
119005 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
119006 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119007 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
119008 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119009 } },
119010 }, .{
119011 .required_features = .{ .sse2, null, null, null },
119012 .dst_constraints = .{ .{ .int = .byte }, .any },
119013 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
119014 .patterns = &.{
119015 .{ .src = .{ .to_mut_sse, .none, .none } },
119016 },
119017 .extra_temps = .{
119018 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119019 .unused,
119020 .unused,
119021 .unused,
119022 .unused,
119023 .unused,
119024 .unused,
119025 .unused,
119026 .unused,
119027 .unused,
119028 .unused,
119029 },
119030 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119031 .each = .{ .once = &.{
119032 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
119033 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119034 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
119035 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
119036 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119037 } },
119038 }, .{
119039 .required_features = .{ .avx, null, null, null },
119040 .dst_constraints = .{ .{ .int = .byte }, .any },
119041 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
119042 .patterns = &.{
119043 .{ .src = .{ .to_sse, .none, .none } },
119044 },
119045 .extra_temps = .{
119046 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119047 .unused,
119048 .unused,
119049 .unused,
119050 .unused,
119051 .unused,
119052 .unused,
119053 .unused,
119054 .unused,
119055 .unused,
119056 .unused,
119057 },
119058 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119059 .each = .{ .once = &.{
119060 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
119061 .{ ._, .vp_, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
119062 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
119063 .{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
119064 } },
119065 }, .{
119066 .required_features = .{ .sse2, null, null, null },
119067 .dst_constraints = .{ .{ .int = .byte }, .any },
119068 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
119069 .patterns = &.{
119070 .{ .src = .{ .to_mut_sse, .none, .none } },
119071 },
119072 .extra_temps = .{
119073 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119074 .unused,
119075 .unused,
119076 .unused,
119077 .unused,
119078 .unused,
119079 .unused,
119080 .unused,
119081 .unused,
119082 .unused,
119083 .unused,
119084 },
119085 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119086 .each = .{ .once = &.{
119087 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
119088 .{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
119089 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
119090 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119091 } },
119092 }, .{
119093 .required_features = .{ .avx, null, null, null },
119094 .dst_constraints = .{ .{ .int = .byte }, .any },
119095 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
119096 .patterns = &.{
119097 .{ .src = .{ .to_sse, .none, .none } },
119098 },
119099 .extra_temps = .{
119100 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119101 .unused,
119102 .unused,
119103 .unused,
119104 .unused,
119105 .unused,
119106 .unused,
119107 .unused,
119108 .unused,
119109 .unused,
119110 .unused,
119111 },
119112 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119113 .each = .{ .once = &.{
119114 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
119115 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119116 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
119117 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119118 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
119119 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119120 } },
119121 }, .{
119122 .required_features = .{ .sse2, null, null, null },
119123 .dst_constraints = .{ .{ .int = .byte }, .any },
119124 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
119125 .patterns = &.{
119126 .{ .src = .{ .to_mut_sse, .none, .none } },
119127 },
119128 .extra_temps = .{
119129 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119130 .unused,
119131 .unused,
119132 .unused,
119133 .unused,
119134 .unused,
119135 .unused,
119136 .unused,
119137 .unused,
119138 .unused,
119139 .unused,
119140 },
119141 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119142 .each = .{ .once = &.{
119143 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
119144 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119145 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
119146 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119147 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
119148 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
119149 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119150 } },
119151 }, .{
119152 .required_features = .{ .avx, null, null, null },
119153 .dst_constraints = .{ .{ .int = .byte }, .any },
119154 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
119155 .patterns = &.{
119156 .{ .src = .{ .to_sse, .none, .none } },
119157 },
119158 .extra_temps = .{
119159 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119160 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
119161 .ref = .src0,
119162 .invert = switch (mir_tag) {
119163 else => unreachable,
119164 .@"and" => true,
119165 .@"or", .xor => false,
119166 },
119167 } } },
119168 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119169 .unused,
119170 .unused,
119171 .unused,
119172 .unused,
119173 .unused,
119174 .unused,
119175 .unused,
119176 .unused,
119177 },
119178 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119179 .each = .{ .once = &.{
119180 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119181 .{ ._, .vp_, switch (mir_tag) {
119182 else => unreachable,
119183 .@"and" => .@"or",
119184 .@"or", .xor => .@"and",
119185 }, .dst0x, .src0x, .lea(.tmp0x), ._ },
119186 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119187 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119188 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119189 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119190 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119191 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119192 } },
119193 }, .{
119194 .required_features = .{ .sse2, null, null, null },
119195 .dst_constraints = .{ .{ .int = .byte }, .any },
119196 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
119197 .patterns = &.{
119198 .{ .src = .{ .to_mut_sse, .none, .none } },
119199 },
119200 .extra_temps = .{
119201 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119202 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
119203 .ref = .src0,
119204 .invert = switch (mir_tag) {
119205 else => unreachable,
119206 .@"and" => true,
119207 .@"or", .xor => false,
119208 },
119209 } } },
119210 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119211 .unused,
119212 .unused,
119213 .unused,
119214 .unused,
119215 .unused,
119216 .unused,
119217 .unused,
119218 .unused,
119219 },
119220 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119221 .each = .{ .once = &.{
119222 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119223 .{ ._, .p_, switch (mir_tag) {
119224 else => unreachable,
119225 .@"and" => .@"or",
119226 .@"or", .xor => .@"and",
119227 }, .dst0x, .lea(.tmp0x), ._, ._ },
119228 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119229 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119230 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119231 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119232 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
119233 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
119234 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119235 } },
119236 }, .{
119237 .required_features = .{ .avx, null, null, null },
119238 .dst_constraints = .{ .{ .int = .byte }, .any },
119239 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
119240 .patterns = &.{
119241 .{ .src = .{ .to_sse, .none, .none } },
119242 },
119243 .extra_temps = .{
119244 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119245 .unused,
119246 .unused,
119247 .unused,
119248 .unused,
119249 .unused,
119250 .unused,
119251 .unused,
119252 .unused,
119253 .unused,
119254 .unused,
119255 },
119256 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119257 .each = .{ .once = &.{
119258 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
119259 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119260 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
119261 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119262 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
119263 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119264 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
119265 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119266 } },
119267 }, .{
119268 .required_features = .{ .sse2, null, null, null },
119269 .dst_constraints = .{ .{ .int = .byte }, .any },
119270 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
119271 .patterns = &.{
119272 .{ .src = .{ .to_mut_sse, .none, .none } },
119273 },
119274 .extra_temps = .{
119275 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119276 .unused,
119277 .unused,
119278 .unused,
119279 .unused,
119280 .unused,
119281 .unused,
119282 .unused,
119283 .unused,
119284 .unused,
119285 .unused,
119286 },
119287 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119288 .each = .{ .once = &.{
119289 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
119290 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119291 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
119292 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119293 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
119294 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119295 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
119296 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
119297 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119298 } },
119299 }, .{
119300 .required_features = .{ .avx, null, null, null },
119301 .dst_constraints = .{ .{ .int = .byte }, .any },
119302 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
119303 .patterns = &.{
119304 .{ .src = .{ .to_sse, .none, .none } },
119305 },
119306 .extra_temps = .{
119307 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119308 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
119309 .ref = .src0,
119310 .invert = switch (mir_tag) {
119311 else => unreachable,
119312 .@"and" => true,
119313 .@"or", .xor => false,
119314 },
119315 } } },
119316 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119317 .unused,
119318 .unused,
119319 .unused,
119320 .unused,
119321 .unused,
119322 .unused,
119323 .unused,
119324 .unused,
119325 },
119326 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119327 .each = .{ .once = &.{
119328 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119329 .{ ._, .vp_, switch (mir_tag) {
119330 else => unreachable,
119331 .@"and" => .@"or",
119332 .@"or", .xor => .@"and",
119333 }, .dst0x, .src0x, .lea(.tmp0x), ._ },
119334 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119335 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119336 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119337 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119338 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119339 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119340 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119341 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119342 } },
119343 }, .{
119344 .required_features = .{ .sse2, null, null, null },
119345 .dst_constraints = .{ .{ .int = .byte }, .any },
119346 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
119347 .patterns = &.{
119348 .{ .src = .{ .to_mut_sse, .none, .none } },
119349 },
119350 .extra_temps = .{
119351 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119352 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
119353 .ref = .src0,
119354 .invert = switch (mir_tag) {
119355 else => unreachable,
119356 .@"and" => true,
119357 .@"or", .xor => false,
119358 },
119359 } } },
119360 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119361 .unused,
119362 .unused,
119363 .unused,
119364 .unused,
119365 .unused,
119366 .unused,
119367 .unused,
119368 .unused,
119369 },
119370 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119371 .each = .{ .once = &.{
119372 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119373 .{ ._, .p_, switch (mir_tag) {
119374 else => unreachable,
119375 .@"and" => .@"or",
119376 .@"or", .xor => .@"and",
119377 }, .dst0x, .lea(.tmp0x), ._, ._ },
119378 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119379 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119380 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119381 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119382 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119383 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119384 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
119385 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
119386 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119387 } },
119388 }, .{
119389 .required_features = .{ .avx2, null, null, null },
119390 .dst_constraints = .{ .{ .int = .byte }, .any },
119391 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119392 .patterns = &.{
119393 .{ .src = .{ .to_sse, .none, .none } },
119394 },
119395 .extra_temps = .{
119396 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119397 .unused,
119398 .unused,
119399 .unused,
119400 .unused,
119401 .unused,
119402 .unused,
119403 .unused,
119404 .unused,
119405 .unused,
119406 .unused,
119407 },
119408 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119409 .each = .{ .once = &.{
119410 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
119411 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119412 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
119413 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119414 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
119415 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119416 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
119417 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119418 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
119419 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119420 } },
119421 }, .{
119422 .required_features = .{ .avx, null, null, null },
119423 .dst_constraints = .{ .{ .int = .byte }, .any },
119424 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119425 .patterns = &.{
119426 .{ .src = .{ .to_sse, .none, .none } },
119427 },
119428 .extra_temps = .{
119429 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119430 .unused,
119431 .unused,
119432 .unused,
119433 .unused,
119434 .unused,
119435 .unused,
119436 .unused,
119437 .unused,
119438 .unused,
119439 .unused,
119440 },
119441 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119442 .each = .{ .once = &.{
119443 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
119444 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119445 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
119446 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119447 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
119448 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119449 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
119450 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119451 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
119452 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119453 } },
119454 }, .{
119455 .required_features = .{ .avx2, null, null, null },
119456 .dst_constraints = .{ .{ .int = .byte }, .any },
119457 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119458 .patterns = &.{
119459 .{ .src = .{ .to_sse, .none, .none } },
119460 },
119461 .extra_temps = .{
119462 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119463 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
119464 .ref = .src0,
119465 .invert = switch (mir_tag) {
119466 else => unreachable,
119467 .@"and" => true,
119468 .@"or", .xor => false,
119469 },
119470 } } },
119471 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119472 .unused,
119473 .unused,
119474 .unused,
119475 .unused,
119476 .unused,
119477 .unused,
119478 .unused,
119479 .unused,
119480 },
119481 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119482 .each = .{ .once = &.{
119483 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119484 .{ ._, .vp_, switch (mir_tag) {
119485 else => unreachable,
119486 .@"and" => .@"or",
119487 .@"or", .xor => .@"and",
119488 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
119489 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119490 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119491 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119492 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119493 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119494 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119495 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119496 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119497 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119498 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119499 } },
119500 }, .{
119501 .required_features = .{ .avx, null, null, null },
119502 .dst_constraints = .{ .{ .int = .byte }, .any },
119503 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119504 .patterns = &.{
119505 .{ .src = .{ .to_sse, .none, .none } },
119506 },
119507 .extra_temps = .{
119508 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119509 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
119510 .ref = .src0,
119511 .invert = switch (mir_tag) {
119512 else => unreachable,
119513 .@"and" => true,
119514 .@"or", .xor => false,
119515 },
119516 } } },
119517 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119518 .unused,
119519 .unused,
119520 .unused,
119521 .unused,
119522 .unused,
119523 .unused,
119524 .unused,
119525 .unused,
119526 },
119527 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119528 .each = .{ .once = &.{
119529 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119530 .{ ._, .v_ps, switch (mir_tag) {
119531 else => unreachable,
119532 .@"and" => .@"or",
119533 .@"or", .xor => .@"and",
119534 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
119535 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119536 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119537 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
119538 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119539 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
119540 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119541 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119542 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119543 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119544 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119545 } },
119546 }, .{
119547 .required_features = .{ .avx512f, null, null, null },
119548 .dst_constraints = .{ .{ .int = .byte }, .any },
119549 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
119550 .patterns = &.{
119551 .{ .src = .{ .to_mem, .none, .none } },
119552 },
119553 .extra_temps = .{
119554 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119555 .unused,
119556 .unused,
119557 .unused,
119558 .unused,
119559 .unused,
119560 .unused,
119561 .unused,
119562 .unused,
119563 .unused,
119564 .unused,
119565 },
119566 .dst_temps = .{ .{ .rc = .sse }, .unused },
119567 .each = .{ .once = &.{
119568 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
119569 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
119570 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
119571 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119572 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
119573 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119574 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
119575 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119576 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
119577 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119578 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
119579 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119580 } },
119581 }, .{
119582 .required_features = .{ .avx512f, null, null, null },
119583 .dst_constraints = .{ .{ .int = .byte }, .any },
119584 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
119585 .patterns = &.{
119586 .{ .src = .{ .to_mem, .none, .none } },
119587 },
119588 .extra_temps = .{
119589 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119590 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
119591 .ref = .src0,
119592 .invert = switch (mir_tag) {
119593 else => unreachable,
119594 .@"and" => true,
119595 .@"or", .xor => false,
119596 },
119597 } } },
119598 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
119599 .unused,
119600 .unused,
119601 .unused,
119602 .unused,
119603 .unused,
119604 .unused,
119605 .unused,
119606 .unused,
119607 },
119608 .dst_temps = .{ .{ .rc = .sse }, .unused },
119609 .each = .{ .once = &.{
119610 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119611 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
119612 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
119613 .{ ._, .vp_, switch (mir_tag) {
119614 else => unreachable,
119615 .@"and" => .@"or",
119616 .@"or", .xor => .@"and",
119617 }, .dst0y, .dst0y, .lea(.tmp0y), ._ },
119618 .{ ._, .vp_, switch (mir_tag) {
119619 else => unreachable,
119620 .@"and" => .@"or",
119621 .@"or", .xor => .@"and",
119622 }, .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
119623 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
119624 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119625 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119626 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119627 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119628 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119629 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119630 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119631 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119632 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119633 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119634 } },
119635 }, .{
119636 .required_features = .{ .avx2, null, null, null },
119637 .dst_constraints = .{ .{ .int = .byte }, .any },
119638 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119639 .patterns = &.{
119640 .{ .src = .{ .to_mem, .none, .none } },
119641 },
119642 .extra_temps = .{
119643 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119644 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119645 .unused,
119646 .unused,
119647 .unused,
119648 .unused,
119649 .unused,
119650 .unused,
119651 .unused,
119652 .unused,
119653 .unused,
119654 },
119655 .dst_temps = .{ .{ .rc = .sse }, .unused },
119656 .clobbers = .{ .eflags = true },
119657 .each = .{ .once = &.{
119658 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
119659 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
119660 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119661 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
119662 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119663 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
119664 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119665 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
119666 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119667 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
119668 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119669 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
119670 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119671 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
119672 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119673 } },
119674 }, .{
119675 .required_features = .{ .avx, null, null, null },
119676 .dst_constraints = .{ .{ .int = .byte }, .any },
119677 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119678 .patterns = &.{
119679 .{ .src = .{ .to_mem, .none, .none } },
119680 },
119681 .extra_temps = .{
119682 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119683 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119684 .unused,
119685 .unused,
119686 .unused,
119687 .unused,
119688 .unused,
119689 .unused,
119690 .unused,
119691 .unused,
119692 .unused,
119693 },
119694 .dst_temps = .{ .{ .rc = .sse }, .unused },
119695 .clobbers = .{ .eflags = true },
119696 .each = .{ .once = &.{
119697 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
119698 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
119699 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119700 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
119701 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119702 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
119703 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119704 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
119705 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119706 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
119707 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119708 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
119709 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119710 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
119711 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119712 } },
119713 }, .{
119714 .required_features = .{ .sse2, null, null, null },
119715 .dst_constraints = .{ .{ .int = .byte }, .any },
119716 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
119717 .patterns = &.{
119718 .{ .src = .{ .to_mem, .none, .none } },
119719 },
119720 .extra_temps = .{
119721 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119722 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119723 .unused,
119724 .unused,
119725 .unused,
119726 .unused,
119727 .unused,
119728 .unused,
119729 .unused,
119730 .unused,
119731 .unused,
119732 },
119733 .dst_temps = .{ .{ .rc = .sse }, .unused },
119734 .clobbers = .{ .eflags = true },
119735 .each = .{ .once = &.{
119736 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
119737 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
119738 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
119739 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
119740 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119741 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
119742 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
119743 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
119744 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
119745 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
119746 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
119747 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
119748 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
119749 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
119750 } },
119751 }, .{
119752 .required_features = .{ .avx512f, null, null, null },
119753 .dst_constraints = .{ .{ .int = .byte }, .any },
119754 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
119755 .patterns = &.{
119756 .{ .src = .{ .to_mem, .none, .none } },
119757 },
119758 .extra_temps = .{
119759 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119760 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
119761 .ref = .src0,
119762 .invert = switch (mir_tag) {
119763 else => unreachable,
119764 .@"and" => true,
119765 .@"or", .xor => false,
119766 },
119767 } } },
119768 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
119769 .unused,
119770 .unused,
119771 .unused,
119772 .unused,
119773 .unused,
119774 .unused,
119775 .unused,
119776 .unused,
119777 },
119778 .dst_temps = .{ .{ .rc = .sse }, .unused },
119779 .clobbers = .{ .eflags = true },
119780 .each = .{ .once = &.{
119781 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119782 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
119783 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
119784 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
119785 .{ ._, .vp_, switch (mir_tag) {
119786 else => unreachable,
119787 .@"and" => .@"or",
119788 .@"or", .xor => .@"and",
119789 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
119790 .{ ._, .vp_, switch (mir_tag) {
119791 else => unreachable,
119792 .@"and" => .@"or",
119793 .@"or", .xor => .@"and",
119794 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
119795 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
119796 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119797 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
119798 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119799 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
119800 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119801 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119802 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119803 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119804 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119805 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119806 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119807 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119808 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119809 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119810 } },
119811 }, .{
119812 .required_features = .{ .avx2, null, null, null },
119813 .dst_constraints = .{ .{ .int = .byte }, .any },
119814 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119815 .patterns = &.{
119816 .{ .src = .{ .to_mem, .none, .none } },
119817 },
119818 .extra_temps = .{
119819 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119820 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
119821 .ref = .src0,
119822 .invert = switch (mir_tag) {
119823 else => unreachable,
119824 .@"and" => true,
119825 .@"or", .xor => false,
119826 },
119827 } } },
119828 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119829 .unused,
119830 .unused,
119831 .unused,
119832 .unused,
119833 .unused,
119834 .unused,
119835 .unused,
119836 .unused,
119837 },
119838 .dst_temps = .{ .{ .rc = .sse }, .unused },
119839 .clobbers = .{ .eflags = true },
119840 .each = .{ .once = &.{
119841 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119842 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
119843 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
119844 .{ ._, .vp_, switch (mir_tag) {
119845 else => unreachable,
119846 .@"and" => .@"or",
119847 .@"or", .xor => .@"and",
119848 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
119849 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119850 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
119851 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119852 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119853 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119854 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119855 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119856 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119857 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119858 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119859 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119860 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119861 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119862 } },
119863 }, .{
119864 .required_features = .{ .avx, null, null, null },
119865 .dst_constraints = .{ .{ .int = .byte }, .any },
119866 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119867 .patterns = &.{
119868 .{ .src = .{ .to_mem, .none, .none } },
119869 },
119870 .extra_temps = .{
119871 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119872 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
119873 .ref = .src0,
119874 .invert = switch (mir_tag) {
119875 else => unreachable,
119876 .@"and" => true,
119877 .@"or", .xor => false,
119878 },
119879 } } },
119880 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119881 .unused,
119882 .unused,
119883 .unused,
119884 .unused,
119885 .unused,
119886 .unused,
119887 .unused,
119888 .unused,
119889 },
119890 .dst_temps = .{ .{ .rc = .sse }, .unused },
119891 .clobbers = .{ .eflags = true },
119892 .each = .{ .once = &.{
119893 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119894 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
119895 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
119896 .{ ._, .v_ps, switch (mir_tag) {
119897 else => unreachable,
119898 .@"and" => .@"or",
119899 .@"or", .xor => .@"and",
119900 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
119901 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119902 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
119903 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119904 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119905 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119906 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
119907 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119908 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
119909 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119910 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119911 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119912 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119913 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119914 } },
119915 }, .{
119916 .required_features = .{ .sse2, null, null, null },
119917 .dst_constraints = .{ .{ .int = .byte }, .any },
119918 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
119919 .patterns = &.{
119920 .{ .src = .{ .to_mem, .none, .none } },
119921 },
119922 .extra_temps = .{
119923 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119924 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
119925 .ref = .src0,
119926 .invert = switch (mir_tag) {
119927 else => unreachable,
119928 .@"and" => true,
119929 .@"or", .xor => false,
119930 },
119931 } } },
119932 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119933 .unused,
119934 .unused,
119935 .unused,
119936 .unused,
119937 .unused,
119938 .unused,
119939 .unused,
119940 .unused,
119941 },
119942 .dst_temps = .{ .{ .rc = .sse }, .unused },
119943 .clobbers = .{ .eflags = true },
119944 .each = .{ .once = &.{
119945 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119946 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
119947 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
119948 .{ ._, .p_, switch (mir_tag) {
119949 else => unreachable,
119950 .@"and" => .@"or",
119951 .@"or", .xor => .@"and",
119952 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
119953 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
119954 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
119955 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119956 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119957 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119958 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
119959 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119960 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
119961 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119962 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
119963 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
119964 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119965 } },
119966 }, .{
119967 .required_features = .{ .slow_incdec, null, null, null },
119968 .dst_constraints = .{ .{ .int = .byte }, .any },
119969 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
119970 .patterns = &.{
119971 .{ .src = .{ .to_mem, .none, .none } },
119972 },
119973 .extra_temps = .{
119974 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119975 .unused,
119976 .unused,
119977 .unused,
119978 .unused,
119979 .unused,
119980 .unused,
119981 .unused,
119982 .unused,
119983 .unused,
119984 .unused,
119985 },
119986 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
119987 .clobbers = .{ .eflags = true },
119988 .each = .{ .once = &.{
119989 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
119990 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
119991 .{ .@"0:", ._, mir_tag, .dst0b, .memi(.src0b, .tmp0), ._, ._ },
119992 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
119993 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119994 } },
119995 }, .{
119996 .dst_constraints = .{ .{ .int = .byte }, .any },
119997 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
119998 .patterns = &.{
119999 .{ .src = .{ .to_mem, .none, .none } },
120000 },
120001 .extra_temps = .{
120002 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120003 .unused,
120004 .unused,
120005 .unused,
120006 .unused,
120007 .unused,
120008 .unused,
120009 .unused,
120010 .unused,
120011 .unused,
120012 .unused,
120013 },
120014 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
120015 .clobbers = .{ .eflags = true },
120016 .each = .{ .once = &.{
120017 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
120018 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
120019 .{ .@"0:", ._, mir_tag, .dst0b, .memi(.src0b, .tmp0), ._, ._ },
120020 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
120021 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
120022 } },
120023 }, .{
120024 .required_features = .{ .avx, null, null, null },
120025 .dst_constraints = .{ .{ .int = .word }, .any },
120026 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
120027 .patterns = &.{
120028 .{ .src = .{ .to_sse, .none, .none } },
120029 },
120030 .extra_temps = .{
120031 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120032 .unused,
120033 .unused,
120034 .unused,
120035 .unused,
120036 .unused,
120037 .unused,
120038 .unused,
120039 .unused,
120040 .unused,
120041 .unused,
120042 },
120043 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120044 .each = .{ .once = &.{
120045 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
120046 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120047 } },
120048 }, .{
120049 .required_features = .{ .sse2, null, null, null },
120050 .dst_constraints = .{ .{ .int = .word }, .any },
120051 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
120052 .patterns = &.{
120053 .{ .src = .{ .to_mut_sse, .none, .none } },
120054 },
120055 .extra_temps = .{
120056 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120057 .unused,
120058 .unused,
120059 .unused,
120060 .unused,
120061 .unused,
120062 .unused,
120063 .unused,
120064 .unused,
120065 .unused,
120066 .unused,
120067 },
120068 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120069 .each = .{ .once = &.{
120070 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
120071 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120072 } },
120073 }, .{
120074 .required_features = .{ .avx, null, null, null },
120075 .dst_constraints = .{ .{ .int = .word }, .any },
120076 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
120077 .patterns = &.{
120078 .{ .src = .{ .to_sse, .none, .none } },
120079 },
120080 .extra_temps = .{
120081 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120082 .unused,
120083 .unused,
120084 .unused,
120085 .unused,
120086 .unused,
120087 .unused,
120088 .unused,
120089 .unused,
120090 .unused,
120091 .unused,
120092 },
120093 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120094 .each = .{ .once = &.{
120095 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
120096 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120097 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
120098 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120099 } },
120100 }, .{
120101 .required_features = .{ .sse2, null, null, null },
120102 .dst_constraints = .{ .{ .int = .word }, .any },
120103 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
120104 .patterns = &.{
120105 .{ .src = .{ .to_mut_sse, .none, .none } },
120106 },
120107 .extra_temps = .{
120108 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120109 .unused,
120110 .unused,
120111 .unused,
120112 .unused,
120113 .unused,
120114 .unused,
120115 .unused,
120116 .unused,
120117 .unused,
120118 .unused,
120119 },
120120 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120121 .each = .{ .once = &.{
120122 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
120123 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120124 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
120125 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120126 } },
120127 }, .{
120128 .required_features = .{ .avx, null, null, null },
120129 .dst_constraints = .{ .{ .int = .word }, .any },
120130 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
120131 .patterns = &.{
120132 .{ .src = .{ .to_sse, .none, .none } },
120133 },
120134 .extra_temps = .{
120135 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120136 .unused,
120137 .unused,
120138 .unused,
120139 .unused,
120140 .unused,
120141 .unused,
120142 .unused,
120143 .unused,
120144 .unused,
120145 .unused,
120146 },
120147 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120148 .each = .{ .once = &.{
120149 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
120150 .{ ._, .vp_, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
120151 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
120152 .{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
120153 } },
120154 }, .{
120155 .required_features = .{ .sse2, null, null, null },
120156 .dst_constraints = .{ .{ .int = .word }, .any },
120157 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
120158 .patterns = &.{
120159 .{ .src = .{ .to_mut_sse, .none, .none } },
120160 },
120161 .extra_temps = .{
120162 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120163 .unused,
120164 .unused,
120165 .unused,
120166 .unused,
120167 .unused,
120168 .unused,
120169 .unused,
120170 .unused,
120171 .unused,
120172 .unused,
120173 },
120174 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120175 .each = .{ .once = &.{
120176 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
120177 .{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
120178 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
120179 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120180 } },
120181 }, .{
120182 .required_features = .{ .avx, null, null, null },
120183 .dst_constraints = .{ .{ .int = .word }, .any },
120184 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
120185 .patterns = &.{
120186 .{ .src = .{ .to_sse, .none, .none } },
120187 },
120188 .extra_temps = .{
120189 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120190 .unused,
120191 .unused,
120192 .unused,
120193 .unused,
120194 .unused,
120195 .unused,
120196 .unused,
120197 .unused,
120198 .unused,
120199 .unused,
120200 },
120201 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120202 .each = .{ .once = &.{
120203 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
120204 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120205 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
120206 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120207 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
120208 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120209 } },
120210 }, .{
120211 .required_features = .{ .sse2, null, null, null },
120212 .dst_constraints = .{ .{ .int = .word }, .any },
120213 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
120214 .patterns = &.{
120215 .{ .src = .{ .to_mut_sse, .none, .none } },
120216 },
120217 .extra_temps = .{
120218 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120219 .unused,
120220 .unused,
120221 .unused,
120222 .unused,
120223 .unused,
120224 .unused,
120225 .unused,
120226 .unused,
120227 .unused,
120228 .unused,
120229 },
120230 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120231 .each = .{ .once = &.{
120232 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
120233 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120234 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
120235 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120236 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
120237 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120238 } },
120239 }, .{
120240 .required_features = .{ .avx, null, null, null },
120241 .dst_constraints = .{ .{ .int = .word }, .any },
120242 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
120243 .patterns = &.{
120244 .{ .src = .{ .to_sse, .none, .none } },
120245 },
120246 .extra_temps = .{
120247 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
120248 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
120249 .ref = .src0,
120250 .invert = switch (mir_tag) {
120251 else => unreachable,
120252 .@"and" => true,
120253 .@"or", .xor => false,
120254 },
120255 } } },
120256 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120257 .unused,
120258 .unused,
120259 .unused,
120260 .unused,
120261 .unused,
120262 .unused,
120263 .unused,
120264 .unused,
120265 },
120266 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120267 .each = .{ .once = &.{
120268 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120269 .{ ._, .vp_, switch (mir_tag) {
120270 else => unreachable,
120271 .@"and" => .@"or",
120272 .@"or", .xor => .@"and",
120273 }, .dst0x, .src0x, .lea(.tmp0x), ._ },
120274 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120275 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120276 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120277 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120278 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120279 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120280 } },
120281 }, .{
120282 .required_features = .{ .sse2, null, null, null },
120283 .dst_constraints = .{ .{ .int = .word }, .any },
120284 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
120285 .patterns = &.{
120286 .{ .src = .{ .to_mut_sse, .none, .none } },
120287 },
120288 .extra_temps = .{
120289 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
120290 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
120291 .ref = .src0,
120292 .invert = switch (mir_tag) {
120293 else => unreachable,
120294 .@"and" => true,
120295 .@"or", .xor => false,
120296 },
120297 } } },
120298 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120299 .unused,
120300 .unused,
120301 .unused,
120302 .unused,
120303 .unused,
120304 .unused,
120305 .unused,
120306 .unused,
120307 },
120308 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120309 .each = .{ .once = &.{
120310 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120311 .{ ._, .p_, switch (mir_tag) {
120312 else => unreachable,
120313 .@"and" => .@"or",
120314 .@"or", .xor => .@"and",
120315 }, .dst0x, .lea(.tmp0x), ._, ._ },
120316 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120317 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120318 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120319 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120320 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120321 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120322 } },
120323 }, .{
120324 .required_features = .{ .avx2, null, null, null },
120325 .dst_constraints = .{ .{ .int = .word }, .any },
120326 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120327 .patterns = &.{
120328 .{ .src = .{ .to_sse, .none, .none } },
120329 },
120330 .extra_temps = .{
120331 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120332 .unused,
120333 .unused,
120334 .unused,
120335 .unused,
120336 .unused,
120337 .unused,
120338 .unused,
120339 .unused,
120340 .unused,
120341 .unused,
120342 },
120343 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120344 .each = .{ .once = &.{
120345 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
120346 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120347 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
120348 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120349 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
120350 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120351 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
120352 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120353 } },
120354 }, .{
120355 .required_features = .{ .avx, null, null, null },
120356 .dst_constraints = .{ .{ .int = .word }, .any },
120357 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120358 .patterns = &.{
120359 .{ .src = .{ .to_sse, .none, .none } },
120360 },
120361 .extra_temps = .{
120362 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120363 .unused,
120364 .unused,
120365 .unused,
120366 .unused,
120367 .unused,
120368 .unused,
120369 .unused,
120370 .unused,
120371 .unused,
120372 .unused,
120373 },
120374 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120375 .each = .{ .once = &.{
120376 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
120377 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120378 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
120379 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120380 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
120381 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120382 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
120383 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120384 } },
120385 }, .{
120386 .required_features = .{ .avx2, null, null, null },
120387 .dst_constraints = .{ .{ .int = .word }, .any },
120388 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120389 .patterns = &.{
120390 .{ .src = .{ .to_sse, .none, .none } },
120391 },
120392 .extra_temps = .{
120393 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
120394 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120395 .ref = .src0,
120396 .invert = switch (mir_tag) {
120397 else => unreachable,
120398 .@"and" => true,
120399 .@"or", .xor => false,
120400 },
120401 } } },
120402 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120403 .unused,
120404 .unused,
120405 .unused,
120406 .unused,
120407 .unused,
120408 .unused,
120409 .unused,
120410 .unused,
120411 },
120412 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120413 .each = .{ .once = &.{
120414 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120415 .{ ._, .vp_, switch (mir_tag) {
120416 else => unreachable,
120417 .@"and" => .@"or",
120418 .@"or", .xor => .@"and",
120419 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
120420 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120421 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120422 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120423 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120424 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120425 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120426 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120427 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120428 } },
120429 }, .{
120430 .required_features = .{ .avx, null, null, null },
120431 .dst_constraints = .{ .{ .int = .word }, .any },
120432 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120433 .patterns = &.{
120434 .{ .src = .{ .to_sse, .none, .none } },
120435 },
120436 .extra_temps = .{
120437 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
120438 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120439 .ref = .src0,
120440 .invert = switch (mir_tag) {
120441 else => unreachable,
120442 .@"and" => true,
120443 .@"or", .xor => false,
120444 },
120445 } } },
120446 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120447 .unused,
120448 .unused,
120449 .unused,
120450 .unused,
120451 .unused,
120452 .unused,
120453 .unused,
120454 .unused,
120455 },
120456 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120457 .each = .{ .once = &.{
120458 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120459 .{ ._, .v_ps, switch (mir_tag) {
120460 else => unreachable,
120461 .@"and" => .@"or",
120462 .@"or", .xor => .@"and",
120463 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
120464 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120465 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120466 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
120467 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120468 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
120469 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120470 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120471 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120472 } },
120473 }, .{
120474 .required_features = .{ .avx512f, null, null, null },
120475 .dst_constraints = .{ .{ .int = .word }, .any },
120476 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
120477 .patterns = &.{
120478 .{ .src = .{ .to_mem, .none, .none } },
120479 },
120480 .extra_temps = .{
120481 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120482 .unused,
120483 .unused,
120484 .unused,
120485 .unused,
120486 .unused,
120487 .unused,
120488 .unused,
120489 .unused,
120490 .unused,
120491 .unused,
120492 },
120493 .dst_temps = .{ .{ .rc = .sse }, .unused },
120494 .each = .{ .once = &.{
120495 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
120496 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
120497 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
120498 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120499 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
120500 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120501 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
120502 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120503 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
120504 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120505 } },
120506 }, .{
120507 .required_features = .{ .avx512f, null, null, null },
120508 .dst_constraints = .{ .{ .int = .word }, .any },
120509 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
120510 .patterns = &.{
120511 .{ .src = .{ .to_mem, .none, .none } },
120512 },
120513 .extra_temps = .{
120514 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
120515 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
120516 .ref = .src0,
120517 .invert = switch (mir_tag) {
120518 else => unreachable,
120519 .@"and" => true,
120520 .@"or", .xor => false,
120521 },
120522 } } },
120523 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
120524 .unused,
120525 .unused,
120526 .unused,
120527 .unused,
120528 .unused,
120529 .unused,
120530 .unused,
120531 .unused,
120532 },
120533 .dst_temps = .{ .{ .rc = .sse }, .unused },
120534 .each = .{ .once = &.{
120535 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120536 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
120537 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
120538 .{ ._, .vp_, switch (mir_tag) {
120539 else => unreachable,
120540 .@"and" => .@"or",
120541 .@"or", .xor => .@"and",
120542 }, .dst0y, .dst0y, .lea(.tmp0y), ._ },
120543 .{ ._, .vp_, switch (mir_tag) {
120544 else => unreachable,
120545 .@"and" => .@"or",
120546 .@"or", .xor => .@"and",
120547 }, .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
120548 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
120549 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120550 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120551 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120552 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120553 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120554 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120555 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120556 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120557 } },
120558 }, .{
120559 .required_features = .{ .avx2, null, null, null },
120560 .dst_constraints = .{ .{ .int = .word }, .any },
120561 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120562 .patterns = &.{
120563 .{ .src = .{ .to_mem, .none, .none } },
120564 },
120565 .extra_temps = .{
120566 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120567 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120568 .unused,
120569 .unused,
120570 .unused,
120571 .unused,
120572 .unused,
120573 .unused,
120574 .unused,
120575 .unused,
120576 .unused,
120577 },
120578 .dst_temps = .{ .{ .rc = .sse }, .unused },
120579 .clobbers = .{ .eflags = true },
120580 .each = .{ .once = &.{
120581 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
120582 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
120583 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120584 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120585 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120586 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
120587 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120588 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
120589 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120590 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
120591 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120592 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
120593 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120594 } },
120595 }, .{
120596 .required_features = .{ .avx, null, null, null },
120597 .dst_constraints = .{ .{ .int = .word }, .any },
120598 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120599 .patterns = &.{
120600 .{ .src = .{ .to_mem, .none, .none } },
120601 },
120602 .extra_temps = .{
120603 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120604 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120605 .unused,
120606 .unused,
120607 .unused,
120608 .unused,
120609 .unused,
120610 .unused,
120611 .unused,
120612 .unused,
120613 .unused,
120614 },
120615 .dst_temps = .{ .{ .rc = .sse }, .unused },
120616 .clobbers = .{ .eflags = true },
120617 .each = .{ .once = &.{
120618 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
120619 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
120620 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120621 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120622 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120623 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
120624 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120625 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
120626 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120627 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
120628 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120629 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
120630 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120631 } },
120632 }, .{
120633 .required_features = .{ .sse2, null, null, null },
120634 .dst_constraints = .{ .{ .int = .word }, .any },
120635 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
120636 .patterns = &.{
120637 .{ .src = .{ .to_mem, .none, .none } },
120638 },
120639 .extra_temps = .{
120640 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120641 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120642 .unused,
120643 .unused,
120644 .unused,
120645 .unused,
120646 .unused,
120647 .unused,
120648 .unused,
120649 .unused,
120650 .unused,
120651 },
120652 .dst_temps = .{ .{ .rc = .sse }, .unused },
120653 .clobbers = .{ .eflags = true },
120654 .each = .{ .once = &.{
120655 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
120656 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
120657 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
120658 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
120659 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120660 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
120661 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
120662 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
120663 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
120664 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
120665 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
120666 } },
120667 }, .{
120668 .required_features = .{ .avx512f, null, null, null },
120669 .dst_constraints = .{ .{ .int = .word }, .any },
120670 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
120671 .patterns = &.{
120672 .{ .src = .{ .to_mem, .none, .none } },
120673 },
120674 .extra_temps = .{
120675 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120676 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
120677 .ref = .src0,
120678 .invert = switch (mir_tag) {
120679 else => unreachable,
120680 .@"and" => true,
120681 .@"or", .xor => false,
120682 },
120683 } } },
120684 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
120685 .unused,
120686 .unused,
120687 .unused,
120688 .unused,
120689 .unused,
120690 .unused,
120691 .unused,
120692 .unused,
120693 },
120694 .dst_temps = .{ .{ .rc = .sse }, .unused },
120695 .clobbers = .{ .eflags = true },
120696 .each = .{ .once = &.{
120697 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120698 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
120699 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
120700 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
120701 .{ ._, .vp_, switch (mir_tag) {
120702 else => unreachable,
120703 .@"and" => .@"or",
120704 .@"or", .xor => .@"and",
120705 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
120706 .{ ._, .vp_, switch (mir_tag) {
120707 else => unreachable,
120708 .@"and" => .@"or",
120709 .@"or", .xor => .@"and",
120710 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
120711 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
120712 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120713 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
120714 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120715 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
120716 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120717 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120718 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120719 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120720 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120721 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120722 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120723 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120724 } },
120725 }, .{
120726 .required_features = .{ .avx2, null, null, null },
120727 .dst_constraints = .{ .{ .int = .word }, .any },
120728 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120729 .patterns = &.{
120730 .{ .src = .{ .to_mem, .none, .none } },
120731 },
120732 .extra_temps = .{
120733 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120734 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120735 .ref = .src0,
120736 .invert = switch (mir_tag) {
120737 else => unreachable,
120738 .@"and" => true,
120739 .@"or", .xor => false,
120740 },
120741 } } },
120742 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120743 .unused,
120744 .unused,
120745 .unused,
120746 .unused,
120747 .unused,
120748 .unused,
120749 .unused,
120750 .unused,
120751 },
120752 .dst_temps = .{ .{ .rc = .sse }, .unused },
120753 .clobbers = .{ .eflags = true },
120754 .each = .{ .once = &.{
120755 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120756 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
120757 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
120758 .{ ._, .vp_, switch (mir_tag) {
120759 else => unreachable,
120760 .@"and" => .@"or",
120761 .@"or", .xor => .@"and",
120762 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
120763 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120764 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120765 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120766 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120767 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120768 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120769 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120770 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120771 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120772 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120773 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120774 } },
120775 }, .{
120776 .required_features = .{ .avx, null, null, null },
120777 .dst_constraints = .{ .{ .int = .word }, .any },
120778 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120779 .patterns = &.{
120780 .{ .src = .{ .to_mem, .none, .none } },
120781 },
120782 .extra_temps = .{
120783 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120784 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120785 .ref = .src0,
120786 .invert = switch (mir_tag) {
120787 else => unreachable,
120788 .@"and" => true,
120789 .@"or", .xor => false,
120790 },
120791 } } },
120792 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120793 .unused,
120794 .unused,
120795 .unused,
120796 .unused,
120797 .unused,
120798 .unused,
120799 .unused,
120800 .unused,
120801 },
120802 .dst_temps = .{ .{ .rc = .sse }, .unused },
120803 .clobbers = .{ .eflags = true },
120804 .each = .{ .once = &.{
120805 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120806 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
120807 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
120808 .{ ._, .v_ps, switch (mir_tag) {
120809 else => unreachable,
120810 .@"and" => .@"or",
120811 .@"or", .xor => .@"and",
120812 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
120813 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120814 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120815 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120816 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120817 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120818 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
120819 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120820 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
120821 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120822 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120823 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120824 } },
120825 }, .{
120826 .required_features = .{ .sse2, null, null, null },
120827 .dst_constraints = .{ .{ .int = .word }, .any },
120828 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
120829 .patterns = &.{
120830 .{ .src = .{ .to_mem, .none, .none } },
120831 },
120832 .extra_temps = .{
120833 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120834 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
120835 .ref = .src0,
120836 .invert = switch (mir_tag) {
120837 else => unreachable,
120838 .@"and" => true,
120839 .@"or", .xor => false,
120840 },
120841 } } },
120842 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120843 .unused,
120844 .unused,
120845 .unused,
120846 .unused,
120847 .unused,
120848 .unused,
120849 .unused,
120850 .unused,
120851 },
120852 .dst_temps = .{ .{ .rc = .sse }, .unused },
120853 .clobbers = .{ .eflags = true },
120854 .each = .{ .once = &.{
120855 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120856 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
120857 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
120858 .{ ._, .p_, switch (mir_tag) {
120859 else => unreachable,
120860 .@"and" => .@"or",
120861 .@"or", .xor => .@"and",
120862 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
120863 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
120864 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
120865 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120866 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120867 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120868 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
120869 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120870 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
120871 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120872 } },
120873 }, .{
120874 .dst_constraints = .{ .{ .int = .word }, .any },
120875 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any },
120876 .patterns = &.{
120877 .{ .src = .{ .to_mem, .none, .none } },
120878 },
120879 .extra_temps = .{
120880 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120881 .unused,
120882 .unused,
120883 .unused,
120884 .unused,
120885 .unused,
120886 .unused,
120887 .unused,
120888 .unused,
120889 .unused,
120890 .unused,
120891 },
120892 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
120893 .clobbers = .{ .eflags = true },
120894 .each = .{ .once = &.{
120895 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
120896 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
120897 .{ .@"0:", ._, mir_tag, .dst0w, .memi(.src0w, .tmp0), ._, ._ },
120898 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
120899 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120900 } },
120901 }, .{
120902 .required_features = .{ .avx, null, null, null },
120903 .dst_constraints = .{ .{ .int = .dword }, .any },
120904 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
120905 .patterns = &.{
120906 .{ .src = .{ .to_sse, .none, .none } },
120907 },
120908 .extra_temps = .{
120909 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120910 .unused,
120911 .unused,
120912 .unused,
120913 .unused,
120914 .unused,
120915 .unused,
120916 .unused,
120917 .unused,
120918 .unused,
120919 .unused,
120920 },
120921 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120922 .each = .{ .once = &.{
120923 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
120924 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120925 } },
120926 }, .{
120927 .required_features = .{ .sse2, null, null, null },
120928 .dst_constraints = .{ .{ .int = .dword }, .any },
120929 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
120930 .patterns = &.{
120931 .{ .src = .{ .to_mut_sse, .none, .none } },
120932 },
120933 .extra_temps = .{
120934 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120935 .unused,
120936 .unused,
120937 .unused,
120938 .unused,
120939 .unused,
120940 .unused,
120941 .unused,
120942 .unused,
120943 .unused,
120944 .unused,
120945 },
120946 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120947 .each = .{ .once = &.{
120948 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
120949 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120950 } },
120951 }, .{
120952 .required_features = .{ .avx, null, null, null },
120953 .dst_constraints = .{ .{ .int = .dword }, .any },
120954 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
120955 .patterns = &.{
120956 .{ .src = .{ .to_sse, .none, .none } },
120957 },
120958 .extra_temps = .{
120959 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120960 .unused,
120961 .unused,
120962 .unused,
120963 .unused,
120964 .unused,
120965 .unused,
120966 .unused,
120967 .unused,
120968 .unused,
120969 .unused,
120970 },
120971 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120972 .each = .{ .once = &.{
120973 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
120974 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120975 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
120976 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120977 } },
120978 }, .{
120979 .required_features = .{ .sse2, null, null, null },
120980 .dst_constraints = .{ .{ .int = .dword }, .any },
120981 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
120982 .patterns = &.{
120983 .{ .src = .{ .to_mut_sse, .none, .none } },
120984 },
120985 .extra_temps = .{
120986 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120987 .unused,
120988 .unused,
120989 .unused,
120990 .unused,
120991 .unused,
120992 .unused,
120993 .unused,
120994 .unused,
120995 .unused,
120996 .unused,
120997 },
120998 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120999 .each = .{ .once = &.{
121000 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
121001 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
121002 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
121003 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
121004 } },
121005 }, .{
121006 .required_features = .{ .avx, null, null, null },
121007 .dst_constraints = .{ .{ .int = .dword }, .any },
121008 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
121009 .patterns = &.{
121010 .{ .src = .{ .to_sse, .none, .none } },
121011 },
121012 .extra_temps = .{
121013 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121014 .unused,
121015 .unused,
121016 .unused,
121017 .unused,
121018 .unused,
121019 .unused,
121020 .unused,
121021 .unused,
121022 .unused,
121023 .unused,
121024 },
121025 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121026 .each = .{ .once = &.{
121027 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
121028 .{ ._, .vp_, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
121029 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
121030 .{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
121031 } },
121032 }, .{
121033 .required_features = .{ .sse2, null, null, null },
121034 .dst_constraints = .{ .{ .int = .dword }, .any },
121035 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
121036 .patterns = &.{
121037 .{ .src = .{ .to_sse, .none, .none } },
121038 },
121039 .extra_temps = .{
121040 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121041 .unused,
121042 .unused,
121043 .unused,
121044 .unused,
121045 .unused,
121046 .unused,
121047 .unused,
121048 .unused,
121049 .unused,
121050 .unused,
121051 },
121052 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121053 .each = .{ .once = &.{
121054 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
121055 .{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
121056 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
121057 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
121058 } },
121059 }, .{
121060 .required_features = .{ .avx2, null, null, null },
121061 .dst_constraints = .{ .{ .int = .dword }, .any },
121062 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
121063 .patterns = &.{
121064 .{ .src = .{ .to_sse, .none, .none } },
121065 },
121066 .extra_temps = .{
121067 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121068 .unused,
121069 .unused,
121070 .unused,
121071 .unused,
121072 .unused,
121073 .unused,
121074 .unused,
121075 .unused,
121076 .unused,
121077 .unused,
121078 },
121079 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121080 .each = .{ .once = &.{
121081 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121082 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121083 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
121084 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121085 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
121086 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121087 } },
121088 }, .{
121089 .required_features = .{ .avx, null, null, null },
121090 .dst_constraints = .{ .{ .int = .dword }, .any },
121091 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
121092 .patterns = &.{
121093 .{ .src = .{ .to_sse, .none, .none } },
121094 },
121095 .extra_temps = .{
121096 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121097 .unused,
121098 .unused,
121099 .unused,
121100 .unused,
121101 .unused,
121102 .unused,
121103 .unused,
121104 .unused,
121105 .unused,
121106 .unused,
121107 },
121108 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121109 .each = .{ .once = &.{
121110 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121111 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121112 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
121113 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121114 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
121115 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121116 } },
121117 }, .{
121118 .required_features = .{ .avx2, null, null, null },
121119 .dst_constraints = .{ .{ .int = .dword }, .any },
121120 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
121121 .patterns = &.{
121122 .{ .src = .{ .to_sse, .none, .none } },
121123 },
121124 .extra_temps = .{
121125 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
121126 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
121127 .ref = .src0,
121128 .invert = switch (mir_tag) {
121129 else => unreachable,
121130 .@"and" => true,
121131 .@"or", .xor => false,
121132 },
121133 } } },
121134 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121135 .unused,
121136 .unused,
121137 .unused,
121138 .unused,
121139 .unused,
121140 .unused,
121141 .unused,
121142 .unused,
121143 },
121144 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121145 .each = .{ .once = &.{
121146 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121147 .{ ._, .vp_, switch (mir_tag) {
121148 else => unreachable,
121149 .@"and" => .@"or",
121150 .@"or", .xor => .@"and",
121151 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
121152 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121153 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121154 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121155 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121156 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121157 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121158 } },
121159 }, .{
121160 .required_features = .{ .avx, null, null, null },
121161 .dst_constraints = .{ .{ .int = .dword }, .any },
121162 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
121163 .patterns = &.{
121164 .{ .src = .{ .to_sse, .none, .none } },
121165 },
121166 .extra_temps = .{
121167 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
121168 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
121169 .ref = .src0,
121170 .invert = switch (mir_tag) {
121171 else => unreachable,
121172 .@"and" => true,
121173 .@"or", .xor => false,
121174 },
121175 } } },
121176 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121177 .unused,
121178 .unused,
121179 .unused,
121180 .unused,
121181 .unused,
121182 .unused,
121183 .unused,
121184 .unused,
121185 },
121186 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121187 .each = .{ .once = &.{
121188 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121189 .{ ._, .v_ps, switch (mir_tag) {
121190 else => unreachable,
121191 .@"and" => .@"or",
121192 .@"or", .xor => .@"and",
121193 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
121194 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121195 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121196 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
121197 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121198 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
121199 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121200 } },
121201 }, .{
121202 .required_features = .{ .avx512f, null, null, null },
121203 .dst_constraints = .{ .{ .int = .dword }, .any },
121204 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
121205 .patterns = &.{
121206 .{ .src = .{ .to_mem, .none, .none } },
121207 },
121208 .extra_temps = .{
121209 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121210 .unused,
121211 .unused,
121212 .unused,
121213 .unused,
121214 .unused,
121215 .unused,
121216 .unused,
121217 .unused,
121218 .unused,
121219 .unused,
121220 },
121221 .dst_temps = .{ .{ .rc = .sse }, .unused },
121222 .each = .{ .once = &.{
121223 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
121224 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
121225 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
121226 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121227 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
121228 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121229 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
121230 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121231 } },
121232 }, .{
121233 .required_features = .{ .avx512f, null, null, null },
121234 .dst_constraints = .{ .{ .int = .dword }, .any },
121235 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
121236 .patterns = &.{
121237 .{ .src = .{ .to_mem, .none, .none } },
121238 },
121239 .extra_temps = .{
121240 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
121241 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
121242 .ref = .src0,
121243 .invert = switch (mir_tag) {
121244 else => unreachable,
121245 .@"and" => true,
121246 .@"or", .xor => false,
121247 },
121248 } } },
121249 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
121250 .unused,
121251 .unused,
121252 .unused,
121253 .unused,
121254 .unused,
121255 .unused,
121256 .unused,
121257 .unused,
121258 },
121259 .dst_temps = .{ .{ .rc = .sse }, .unused },
121260 .each = .{ .once = &.{
121261 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121262 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
121263 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
121264 .{ ._, .vp_, switch (mir_tag) {
121265 else => unreachable,
121266 .@"and" => .@"or",
121267 .@"or", .xor => .@"and",
121268 }, .dst0y, .dst0y, .lea(.tmp0y), ._ },
121269 .{ ._, .vp_, switch (mir_tag) {
121270 else => unreachable,
121271 .@"and" => .@"or",
121272 .@"or", .xor => .@"and",
121273 }, .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
121274 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
121275 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121276 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121277 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121278 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121279 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121280 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121281 } },
121282 }, .{
121283 .required_features = .{ .avx2, null, null, null },
121284 .dst_constraints = .{ .{ .int = .dword }, .any },
121285 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
121286 .patterns = &.{
121287 .{ .src = .{ .to_mem, .none, .none } },
121288 },
121289 .extra_temps = .{
121290 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121291 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121292 .unused,
121293 .unused,
121294 .unused,
121295 .unused,
121296 .unused,
121297 .unused,
121298 .unused,
121299 .unused,
121300 .unused,
121301 },
121302 .dst_temps = .{ .{ .rc = .sse }, .unused },
121303 .clobbers = .{ .eflags = true },
121304 .each = .{ .once = &.{
121305 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
121306 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
121307 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121308 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121309 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121310 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
121311 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121312 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
121313 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121314 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
121315 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121316 } },
121317 }, .{
121318 .required_features = .{ .avx, null, null, null },
121319 .dst_constraints = .{ .{ .int = .dword }, .any },
121320 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
121321 .patterns = &.{
121322 .{ .src = .{ .to_mem, .none, .none } },
121323 },
121324 .extra_temps = .{
121325 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121326 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121327 .unused,
121328 .unused,
121329 .unused,
121330 .unused,
121331 .unused,
121332 .unused,
121333 .unused,
121334 .unused,
121335 .unused,
121336 },
121337 .dst_temps = .{ .{ .rc = .sse }, .unused },
121338 .clobbers = .{ .eflags = true },
121339 .each = .{ .once = &.{
121340 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
121341 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
121342 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121343 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121344 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121345 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
121346 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121347 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
121348 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121349 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
121350 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121351 } },
121352 }, .{
121353 .required_features = .{ .sse2, null, null, null },
121354 .dst_constraints = .{ .{ .int = .dword }, .any },
121355 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
121356 .patterns = &.{
121357 .{ .src = .{ .to_mem, .none, .none } },
121358 },
121359 .extra_temps = .{
121360 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121361 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121362 .unused,
121363 .unused,
121364 .unused,
121365 .unused,
121366 .unused,
121367 .unused,
121368 .unused,
121369 .unused,
121370 .unused,
121371 },
121372 .dst_temps = .{ .{ .rc = .sse }, .unused },
121373 .clobbers = .{ .eflags = true },
121374 .each = .{ .once = &.{
121375 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
121376 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
121377 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
121378 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
121379 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121380 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
121381 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
121382 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
121383 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
121384 } },
121385 }, .{
121386 .required_features = .{ .avx512f, null, null, null },
121387 .dst_constraints = .{ .{ .int = .dword }, .any },
121388 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
121389 .patterns = &.{
121390 .{ .src = .{ .to_mem, .none, .none } },
121391 },
121392 .extra_temps = .{
121393 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121394 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
121395 .ref = .src0,
121396 .invert = switch (mir_tag) {
121397 else => unreachable,
121398 .@"and" => true,
121399 .@"or", .xor => false,
121400 },
121401 } } },
121402 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
121403 .unused,
121404 .unused,
121405 .unused,
121406 .unused,
121407 .unused,
121408 .unused,
121409 .unused,
121410 .unused,
121411 },
121412 .dst_temps = .{ .{ .rc = .sse }, .unused },
121413 .clobbers = .{ .eflags = true },
121414 .each = .{ .once = &.{
121415 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121416 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
121417 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
121418 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
121419 .{ ._, .vp_, switch (mir_tag) {
121420 else => unreachable,
121421 .@"and" => .@"or",
121422 .@"or", .xor => .@"and",
121423 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
121424 .{ ._, .vp_, switch (mir_tag) {
121425 else => unreachable,
121426 .@"and" => .@"or",
121427 .@"or", .xor => .@"and",
121428 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
121429 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
121430 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121431 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
121432 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121433 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
121434 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121435 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121436 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121437 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121438 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121439 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121440 } },
121441 }, .{
121442 .required_features = .{ .avx2, null, null, null },
121443 .dst_constraints = .{ .{ .int = .dword }, .any },
121444 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
121445 .patterns = &.{
121446 .{ .src = .{ .to_mem, .none, .none } },
121447 },
121448 .extra_temps = .{
121449 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121450 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
121451 .ref = .src0,
121452 .invert = switch (mir_tag) {
121453 else => unreachable,
121454 .@"and" => true,
121455 .@"or", .xor => false,
121456 },
121457 } } },
121458 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121459 .unused,
121460 .unused,
121461 .unused,
121462 .unused,
121463 .unused,
121464 .unused,
121465 .unused,
121466 .unused,
121467 },
121468 .dst_temps = .{ .{ .rc = .sse }, .unused },
121469 .clobbers = .{ .eflags = true },
121470 .each = .{ .once = &.{
121471 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121472 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
121473 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
121474 .{ ._, .vp_, switch (mir_tag) {
121475 else => unreachable,
121476 .@"and" => .@"or",
121477 .@"or", .xor => .@"and",
121478 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
121479 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121480 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121481 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121482 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121483 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121484 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121485 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121486 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121487 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121488 } },
121489 }, .{
121490 .required_features = .{ .avx, null, null, null },
121491 .dst_constraints = .{ .{ .int = .dword }, .any },
121492 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
121493 .patterns = &.{
121494 .{ .src = .{ .to_mem, .none, .none } },
121495 },
121496 .extra_temps = .{
121497 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121498 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
121499 .ref = .src0,
121500 .invert = switch (mir_tag) {
121501 else => unreachable,
121502 .@"and" => true,
121503 .@"or", .xor => false,
121504 },
121505 } } },
121506 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121507 .unused,
121508 .unused,
121509 .unused,
121510 .unused,
121511 .unused,
121512 .unused,
121513 .unused,
121514 .unused,
121515 },
121516 .dst_temps = .{ .{ .rc = .sse }, .unused },
121517 .clobbers = .{ .eflags = true },
121518 .each = .{ .once = &.{
121519 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121520 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
121521 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
121522 .{ ._, .v_ps, switch (mir_tag) {
121523 else => unreachable,
121524 .@"and" => .@"or",
121525 .@"or", .xor => .@"and",
121526 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
121527 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121528 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121529 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121530 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121531 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121532 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
121533 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121534 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
121535 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121536 } },
121537 }, .{
121538 .required_features = .{ .sse2, null, null, null },
121539 .dst_constraints = .{ .{ .int = .dword }, .any },
121540 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
121541 .patterns = &.{
121542 .{ .src = .{ .to_mem, .none, .none } },
121543 },
121544 .extra_temps = .{
121545 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121546 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
121547 .ref = .src0,
121548 .invert = switch (mir_tag) {
121549 else => unreachable,
121550 .@"and" => true,
121551 .@"or", .xor => false,
121552 },
121553 } } },
121554 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121555 .unused,
121556 .unused,
121557 .unused,
121558 .unused,
121559 .unused,
121560 .unused,
121561 .unused,
121562 .unused,
121563 },
121564 .dst_temps = .{ .{ .rc = .sse }, .unused },
121565 .clobbers = .{ .eflags = true },
121566 .each = .{ .once = &.{
121567 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121568 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
121569 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
121570 .{ ._, .p_, switch (mir_tag) {
121571 else => unreachable,
121572 .@"and" => .@"or",
121573 .@"or", .xor => .@"and",
121574 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
121575 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
121576 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
121577 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121578 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121579 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
121580 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121581 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
121582 } },
121583 }, .{
121584 .dst_constraints = .{ .{ .int = .dword }, .any },
121585 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any },
121586 .patterns = &.{
121587 .{ .src = .{ .to_mem, .none, .none } },
121588 },
121589 .extra_temps = .{
121590 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121591 .unused,
121592 .unused,
121593 .unused,
121594 .unused,
121595 .unused,
121596 .unused,
121597 .unused,
121598 .unused,
121599 .unused,
121600 .unused,
121601 },
121602 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
121603 .clobbers = .{ .eflags = true },
121604 .each = .{ .once = &.{
121605 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
121606 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
121607 .{ .@"0:", ._, mir_tag, .dst0d, .memi(.src0d, .tmp0), ._, ._ },
121608 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
121609 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121610 } },
121611 }, .{
121612 .required_features = .{ .avx, null, null, null },
121613 .dst_constraints = .{ .{ .int = .qword }, .any },
121614 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
121615 .patterns = &.{
121616 .{ .src = .{ .to_sse, .none, .none } },
121617 },
121618 .extra_temps = .{
121619 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121620 .unused,
121621 .unused,
121622 .unused,
121623 .unused,
121624 .unused,
121625 .unused,
121626 .unused,
121627 .unused,
121628 .unused,
121629 .unused,
121630 },
121631 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121632 .each = .{ .once = &.{
121633 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
121634 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121635 } },
121636 }, .{
121637 .required_features = .{ .sse2, null, null, null },
121638 .dst_constraints = .{ .{ .int = .qword }, .any },
121639 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
121640 .patterns = &.{
121641 .{ .src = .{ .to_mut_sse, .none, .none } },
121642 },
121643 .extra_temps = .{
121644 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121645 .unused,
121646 .unused,
121647 .unused,
121648 .unused,
121649 .unused,
121650 .unused,
121651 .unused,
121652 .unused,
121653 .unused,
121654 .unused,
121655 },
121656 .dst_temps = .{ .{ .ref = .src0 }, .unused },
121657 .each = .{ .once = &.{
121658 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
121659 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
121660 } },
121661 }, .{
121662 .required_features = .{ .avx2, null, null, null },
121663 .dst_constraints = .{ .{ .int = .qword }, .any },
121664 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121665 .patterns = &.{
121666 .{ .src = .{ .to_sse, .none, .none } },
121667 },
121668 .extra_temps = .{
121669 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121670 .unused,
121671 .unused,
121672 .unused,
121673 .unused,
121674 .unused,
121675 .unused,
121676 .unused,
121677 .unused,
121678 .unused,
121679 .unused,
121680 },
121681 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121682 .each = .{ .once = &.{
121683 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121684 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121685 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
121686 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121687 } },
121688 }, .{
121689 .required_features = .{ .avx, null, null, null },
121690 .dst_constraints = .{ .{ .int = .qword }, .any },
121691 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121692 .patterns = &.{
121693 .{ .src = .{ .to_sse, .none, .none } },
121694 },
121695 .extra_temps = .{
121696 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121697 .unused,
121698 .unused,
121699 .unused,
121700 .unused,
121701 .unused,
121702 .unused,
121703 .unused,
121704 .unused,
121705 .unused,
121706 .unused,
121707 },
121708 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121709 .each = .{ .once = &.{
121710 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121711 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121712 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
121713 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121714 } },
121715 }, .{
121716 .required_features = .{ .avx2, null, null, null },
121717 .dst_constraints = .{ .{ .int = .qword }, .any },
121718 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121719 .patterns = &.{
121720 .{ .src = .{ .to_sse, .none, .none } },
121721 },
121722 .extra_temps = .{
121723 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121724 .unused,
121725 .unused,
121726 .unused,
121727 .unused,
121728 .unused,
121729 .unused,
121730 .unused,
121731 .unused,
121732 .unused,
121733 .unused,
121734 },
121735 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121736 .each = .{ .once = &.{
121737 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121738 .{ ._, .vp_, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
121739 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
121740 .{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
121741 } },
121742 }, .{
121743 .required_features = .{ .avx, null, null, null },
121744 .dst_constraints = .{ .{ .int = .qword }, .any },
121745 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121746 .patterns = &.{
121747 .{ .src = .{ .to_sse, .none, .none } },
121748 },
121749 .extra_temps = .{
121750 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121751 .unused,
121752 .unused,
121753 .unused,
121754 .unused,
121755 .unused,
121756 .unused,
121757 .unused,
121758 .unused,
121759 .unused,
121760 .unused,
121761 },
121762 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121763 .each = .{ .once = &.{
121764 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121765 .{ ._, .v_ps, mir_tag, .tmp0x, .src0x, .tmp0x, ._ },
121766 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
121767 .{ ._, .v_ps, mir_tag, .dst0x, .tmp0x, .dst0x, ._ },
121768 } },
121769 }, .{
121770 .required_features = .{ .avx512f, null, null, null },
121771 .dst_constraints = .{ .{ .int = .qword }, .any },
121772 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
121773 .patterns = &.{
121774 .{ .src = .{ .to_mem, .none, .none } },
121775 },
121776 .extra_temps = .{
121777 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121778 .unused,
121779 .unused,
121780 .unused,
121781 .unused,
121782 .unused,
121783 .unused,
121784 .unused,
121785 .unused,
121786 .unused,
121787 .unused,
121788 },
121789 .dst_temps = .{ .{ .rc = .sse }, .unused },
121790 .each = .{ .once = &.{
121791 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
121792 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
121793 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
121794 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121795 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
121796 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121797 } },
121798 }, .{
121799 .required_features = .{ .avx512f, null, null, null },
121800 .dst_constraints = .{ .{ .int = .qword }, .any },
121801 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
121802 .patterns = &.{
121803 .{ .src = .{ .to_mem, .none, .none } },
121804 },
121805 .extra_temps = .{
121806 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
121807 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
121808 .ref = .src0,
121809 .invert = switch (mir_tag) {
121810 else => unreachable,
121811 .@"and" => true,
121812 .@"or", .xor => false,
121813 },
121814 } } },
121815 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
121816 .unused,
121817 .unused,
121818 .unused,
121819 .unused,
121820 .unused,
121821 .unused,
121822 .unused,
121823 .unused,
121824 },
121825 .dst_temps = .{ .{ .rc = .sse }, .unused },
121826 .each = .{ .once = &.{
121827 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121828 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
121829 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
121830 .{ ._, .vp_, switch (mir_tag) {
121831 else => unreachable,
121832 .@"and" => .@"or",
121833 .@"or", .xor => .@"and",
121834 }, .dst0y, .dst0y, .lea(.tmp0y), ._ },
121835 .{ ._, .vp_, switch (mir_tag) {
121836 else => unreachable,
121837 .@"and" => .@"or",
121838 .@"or", .xor => .@"and",
121839 }, .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
121840 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
121841 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121842 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121843 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121844 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121845 } },
121846 }, .{
121847 .required_features = .{ .avx2, null, null, null },
121848 .dst_constraints = .{ .{ .int = .qword }, .any },
121849 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121850 .patterns = &.{
121851 .{ .src = .{ .to_mem, .none, .none } },
121852 },
121853 .extra_temps = .{
121854 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121855 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121856 .unused,
121857 .unused,
121858 .unused,
121859 .unused,
121860 .unused,
121861 .unused,
121862 .unused,
121863 .unused,
121864 .unused,
121865 },
121866 .dst_temps = .{ .{ .rc = .sse }, .unused },
121867 .clobbers = .{ .eflags = true },
121868 .each = .{ .once = &.{
121869 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
121870 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
121871 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121872 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121873 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121874 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
121875 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121876 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
121877 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121878 } },
121879 }, .{
121880 .required_features = .{ .avx, null, null, null },
121881 .dst_constraints = .{ .{ .int = .qword }, .any },
121882 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121883 .patterns = &.{
121884 .{ .src = .{ .to_mem, .none, .none } },
121885 },
121886 .extra_temps = .{
121887 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121888 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121889 .unused,
121890 .unused,
121891 .unused,
121892 .unused,
121893 .unused,
121894 .unused,
121895 .unused,
121896 .unused,
121897 .unused,
121898 },
121899 .dst_temps = .{ .{ .rc = .sse }, .unused },
121900 .clobbers = .{ .eflags = true },
121901 .each = .{ .once = &.{
121902 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
121903 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
121904 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121905 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121906 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121907 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
121908 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121909 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
121910 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121911 } },
121912 }, .{
121913 .required_features = .{ .sse2, null, null, null },
121914 .dst_constraints = .{ .{ .int = .qword }, .any },
121915 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
121916 .patterns = &.{
121917 .{ .src = .{ .to_mem, .none, .none } },
121918 },
121919 .extra_temps = .{
121920 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121921 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121922 .unused,
121923 .unused,
121924 .unused,
121925 .unused,
121926 .unused,
121927 .unused,
121928 .unused,
121929 .unused,
121930 .unused,
121931 },
121932 .dst_temps = .{ .{ .rc = .sse }, .unused },
121933 .clobbers = .{ .eflags = true },
121934 .each = .{ .once = &.{
121935 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
121936 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
121937 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
121938 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
121939 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121940 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
121941 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
121942 } },
121943 }, .{
121944 .required_features = .{ .avx512f, null, null, null },
121945 .dst_constraints = .{ .{ .int = .qword }, .any },
121946 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
121947 .patterns = &.{
121948 .{ .src = .{ .to_mem, .none, .none } },
121949 },
121950 .extra_temps = .{
121951 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121952 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
121953 .ref = .src0,
121954 .invert = switch (mir_tag) {
121955 else => unreachable,
121956 .@"and" => true,
121957 .@"or", .xor => false,
121958 },
121959 } } },
121960 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
121961 .unused,
121962 .unused,
121963 .unused,
121964 .unused,
121965 .unused,
121966 .unused,
121967 .unused,
121968 .unused,
121969 },
121970 .dst_temps = .{ .{ .rc = .sse }, .unused },
121971 .clobbers = .{ .eflags = true },
121972 .each = .{ .once = &.{
121973 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121974 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
121975 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
121976 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
121977 .{ ._, .vp_, switch (mir_tag) {
121978 else => unreachable,
121979 .@"and" => .@"or",
121980 .@"or", .xor => .@"and",
121981 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
121982 .{ ._, .vp_, switch (mir_tag) {
121983 else => unreachable,
121984 .@"and" => .@"or",
121985 .@"or", .xor => .@"and",
121986 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
121987 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
121988 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121989 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
121990 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121991 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
121992 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121993 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121994 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
121995 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121996 } },
121997 }, .{
121998 .required_features = .{ .avx2, null, null, null },
121999 .dst_constraints = .{ .{ .int = .qword }, .any },
122000 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
122001 .patterns = &.{
122002 .{ .src = .{ .to_mem, .none, .none } },
122003 },
122004 .extra_temps = .{
122005 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122006 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
122007 .ref = .src0,
122008 .invert = switch (mir_tag) {
122009 else => unreachable,
122010 .@"and" => true,
122011 .@"or", .xor => false,
122012 },
122013 } } },
122014 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
122015 .unused,
122016 .unused,
122017 .unused,
122018 .unused,
122019 .unused,
122020 .unused,
122021 .unused,
122022 .unused,
122023 },
122024 .dst_temps = .{ .{ .rc = .sse }, .unused },
122025 .clobbers = .{ .eflags = true },
122026 .each = .{ .once = &.{
122027 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122028 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
122029 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
122030 .{ ._, .vp_, switch (mir_tag) {
122031 else => unreachable,
122032 .@"and" => .@"or",
122033 .@"or", .xor => .@"and",
122034 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
122035 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122036 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122037 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122038 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
122039 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
122040 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
122041 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
122042 } },
122043 }, .{
122044 .required_features = .{ .avx, null, null, null },
122045 .dst_constraints = .{ .{ .int = .qword }, .any },
122046 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
122047 .patterns = &.{
122048 .{ .src = .{ .to_mem, .none, .none } },
122049 },
122050 .extra_temps = .{
122051 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122052 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
122053 .ref = .src0,
122054 .invert = switch (mir_tag) {
122055 else => unreachable,
122056 .@"and" => true,
122057 .@"or", .xor => false,
122058 },
122059 } } },
122060 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
122061 .unused,
122062 .unused,
122063 .unused,
122064 .unused,
122065 .unused,
122066 .unused,
122067 .unused,
122068 .unused,
122069 },
122070 .dst_temps = .{ .{ .rc = .sse }, .unused },
122071 .clobbers = .{ .eflags = true },
122072 .each = .{ .once = &.{
122073 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122074 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
122075 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
122076 .{ ._, .v_ps, switch (mir_tag) {
122077 else => unreachable,
122078 .@"and" => .@"or",
122079 .@"or", .xor => .@"and",
122080 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
122081 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122082 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122083 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122084 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
122085 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
122086 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
122087 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
122088 } },
122089 }, .{
122090 .required_features = .{ .sse2, null, null, null },
122091 .dst_constraints = .{ .{ .int = .qword }, .any },
122092 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
122093 .patterns = &.{
122094 .{ .src = .{ .to_mem, .none, .none } },
122095 },
122096 .extra_temps = .{
122097 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122098 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
122099 .ref = .src0,
122100 .invert = switch (mir_tag) {
122101 else => unreachable,
122102 .@"and" => true,
122103 .@"or", .xor => false,
122104 },
122105 } } },
122106 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
122107 .unused,
122108 .unused,
122109 .unused,
122110 .unused,
122111 .unused,
122112 .unused,
122113 .unused,
122114 .unused,
122115 },
122116 .dst_temps = .{ .{ .rc = .sse }, .unused },
122117 .clobbers = .{ .eflags = true },
122118 .each = .{ .once = &.{
122119 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122120 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
122121 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
122122 .{ ._, .p_, switch (mir_tag) {
122123 else => unreachable,
122124 .@"and" => .@"or",
122125 .@"or", .xor => .@"and",
122126 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
122127 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
122128 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122129 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122130 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
122131 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
122132 } },
122133 }, .{
122134 .required_features = .{ .@"64bit", null, null, null },
122135 .dst_constraints = .{ .{ .int = .qword }, .any },
122136 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any },
122137 .patterns = &.{
122138 .{ .src = .{ .to_mem, .none, .none } },
122139 },
122140 .extra_temps = .{
122141 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122142 .unused,
122143 .unused,
122144 .unused,
122145 .unused,
122146 .unused,
122147 .unused,
122148 .unused,
122149 .unused,
122150 .unused,
122151 .unused,
122152 },
122153 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
122154 .clobbers = .{ .eflags = true },
122155 .each = .{ .once = &.{
122156 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
122157 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
122158 .{ .@"0:", ._, mir_tag, .dst0q, .memi(.src0q, .tmp0), ._, ._ },
122159 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
122160 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122161 } },
122162 }, .{
122163 .required_features = .{ .avx2, null, null, null },
122164 .dst_constraints = .{ .{ .int = .xword }, .any },
122165 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
122166 .patterns = &.{
122167 .{ .src = .{ .to_sse, .none, .none } },
122168 },
122169 .extra_temps = .{
122170 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
122171 .unused,
122172 .unused,
122173 .unused,
122174 .unused,
122175 .unused,
122176 .unused,
122177 .unused,
122178 .unused,
122179 .unused,
122180 .unused,
122181 },
122182 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122183 .each = .{ .once = &.{
122184 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
122185 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
122186 } },
122187 }, .{
122188 .required_features = .{ .avx, null, null, null },
122189 .dst_constraints = .{ .{ .int = .xword }, .any },
122190 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
122191 .patterns = &.{
122192 .{ .src = .{ .to_sse, .none, .none } },
122193 },
122194 .extra_temps = .{
122195 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
122196 .unused,
122197 .unused,
122198 .unused,
122199 .unused,
122200 .unused,
122201 .unused,
122202 .unused,
122203 .unused,
122204 .unused,
122205 .unused,
122206 },
122207 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122208 .each = .{ .once = &.{
122209 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
122210 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
122211 } },
122212 }, .{
122213 .required_features = .{ .avx512f, null, null, null },
122214 .dst_constraints = .{ .{ .int = .xword }, .any },
122215 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .xword } }, .any, .any },
122216 .patterns = &.{
122217 .{ .src = .{ .to_mem, .none, .none } },
122218 },
122219 .extra_temps = .{
122220 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
122221 .unused,
122222 .unused,
122223 .unused,
122224 .unused,
122225 .unused,
122226 .unused,
122227 .unused,
122228 .unused,
122229 .unused,
122230 .unused,
122231 },
122232 .dst_temps = .{ .{ .rc = .sse }, .unused },
122233 .each = .{ .once = &.{
122234 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
122235 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
122236 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
122237 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
122238 } },
122239 }, .{
122240 .required_features = .{ .avx512f, null, null, null },
122241 .dst_constraints = .{ .{ .int = .xword }, .any },
122242 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .xword } }, .any, .any },
122243 .patterns = &.{
122244 .{ .src = .{ .to_mem, .none, .none } },
122245 },
122246 .extra_temps = .{
122247 .{ .type = .vector_2_u128, .kind = .{ .rc = .sse } },
122248 .unused,
122249 .unused,
122250 .unused,
122251 .unused,
122252 .unused,
122253 .unused,
122254 .unused,
122255 .unused,
122256 .unused,
122257 .unused,
122258 },
122259 .dst_temps = .{ .{ .rc = .sse }, .unused },
122260 .each = .{ .once = &.{
122261 .{ ._, .v_dqa, .mov, .tmp0y, .mem(.src0y), ._, ._ },
122262 .{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .memd(.src0x, 32), ._ },
122263 .{ ._, .v_i128, .extract, .tmp0x, .tmp0y, .ui(1), ._ },
122264 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
122265 } },
122266 }, .{
122267 .required_features = .{ .avx2, null, null, null },
122268 .dst_constraints = .{ .{ .int = .xword }, .any },
122269 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
122270 .patterns = &.{
122271 .{ .src = .{ .to_mem, .none, .none } },
122272 },
122273 .extra_temps = .{
122274 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122275 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
122276 .unused,
122277 .unused,
122278 .unused,
122279 .unused,
122280 .unused,
122281 .unused,
122282 .unused,
122283 .unused,
122284 .unused,
122285 },
122286 .dst_temps = .{ .{ .rc = .sse }, .unused },
122287 .clobbers = .{ .eflags = true },
122288 .each = .{ .once = &.{
122289 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
122290 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
122291 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122292 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122293 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122294 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
122295 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
122296 } },
122297 }, .{
122298 .required_features = .{ .avx, null, null, null },
122299 .dst_constraints = .{ .{ .int = .xword }, .any },
122300 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
122301 .patterns = &.{
122302 .{ .src = .{ .to_mem, .none, .none } },
122303 },
122304 .extra_temps = .{
122305 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122306 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
122307 .unused,
122308 .unused,
122309 .unused,
122310 .unused,
122311 .unused,
122312 .unused,
122313 .unused,
122314 .unused,
122315 .unused,
122316 },
122317 .dst_temps = .{ .{ .rc = .sse }, .unused },
122318 .clobbers = .{ .eflags = true },
122319 .each = .{ .once = &.{
122320 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
122321 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
122322 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122323 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122324 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122325 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
122326 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
122327 } },
122328 }, .{
122329 .required_features = .{ .sse2, null, null, null },
122330 .dst_constraints = .{ .{ .int = .xword }, .any },
122331 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any },
122332 .patterns = &.{
122333 .{ .src = .{ .to_mem, .none, .none } },
122334 },
122335 .extra_temps = .{
122336 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122337 .unused,
122338 .unused,
122339 .unused,
122340 .unused,
122341 .unused,
122342 .unused,
122343 .unused,
122344 .unused,
122345 .unused,
122346 .unused,
122347 },
122348 .dst_temps = .{ .{ .rc = .sse }, .unused },
122349 .clobbers = .{ .eflags = true },
122350 .each = .{ .once = &.{
122351 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
122352 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
122353 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
122354 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122355 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122356 } },
122357 }, .{
122358 .required_features = .{ .avx512f, null, null, null },
122359 .dst_constraints = .{ .{ .int = .xword }, .any },
122360 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .xword } }, .any, .any },
122361 .patterns = &.{
122362 .{ .src = .{ .to_mem, .none, .none } },
122363 },
122364 .extra_temps = .{
122365 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122366 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
122367 .ref = .src0,
122368 .invert = switch (mir_tag) {
122369 else => unreachable,
122370 .@"and" => true,
122371 .@"or", .xor => false,
122372 },
122373 } } },
122374 .{ .type = .vector_2_u128, .kind = .{ .rc = .sse } },
122375 .unused,
122376 .unused,
122377 .unused,
122378 .unused,
122379 .unused,
122380 .unused,
122381 .unused,
122382 .unused,
122383 },
122384 .dst_temps = .{ .{ .rc = .sse }, .unused },
122385 .clobbers = .{ .eflags = true },
122386 .each = .{ .once = &.{
122387 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122388 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
122389 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
122390 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
122391 .{ ._, .vp_, switch (mir_tag) {
122392 else => unreachable,
122393 .@"and" => .@"or",
122394 .@"or", .xor => .@"and",
122395 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
122396 .{ ._, .vp_, switch (mir_tag) {
122397 else => unreachable,
122398 .@"and" => .@"or",
122399 .@"or", .xor => .@"and",
122400 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
122401 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
122402 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122403 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
122404 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122405 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
122406 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
122407 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
122408 } },
122409 }, .{
122410 .required_features = .{ .avx2, null, null, null },
122411 .dst_constraints = .{ .{ .int = .xword }, .any },
122412 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
122413 .patterns = &.{
122414 .{ .src = .{ .to_mem, .none, .none } },
122415 },
122416 .extra_temps = .{
122417 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122418 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
122419 .ref = .src0,
122420 .invert = switch (mir_tag) {
122421 else => unreachable,
122422 .@"and" => true,
122423 .@"or", .xor => false,
122424 },
122425 } } },
122426 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
122427 .unused,
122428 .unused,
122429 .unused,
122430 .unused,
122431 .unused,
122432 .unused,
122433 .unused,
122434 .unused,
122435 },
122436 .dst_temps = .{ .{ .rc = .sse }, .unused },
122437 .clobbers = .{ .eflags = true },
122438 .each = .{ .once = &.{
122439 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122440 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
122441 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
122442 .{ ._, .vp_, switch (mir_tag) {
122443 else => unreachable,
122444 .@"and" => .@"or",
122445 .@"or", .xor => .@"and",
122446 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
122447 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122448 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122449 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122450 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
122451 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
122452 } },
122453 }, .{
122454 .required_features = .{ .avx, null, null, null },
122455 .dst_constraints = .{ .{ .int = .xword }, .any },
122456 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
122457 .patterns = &.{
122458 .{ .src = .{ .to_mem, .none, .none } },
122459 },
122460 .extra_temps = .{
122461 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122462 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
122463 .ref = .src0,
122464 .invert = switch (mir_tag) {
122465 else => unreachable,
122466 .@"and" => true,
122467 .@"or", .xor => false,
122468 },
122469 } } },
122470 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
122471 .unused,
122472 .unused,
122473 .unused,
122474 .unused,
122475 .unused,
122476 .unused,
122477 .unused,
122478 .unused,
122479 },
122480 .dst_temps = .{ .{ .rc = .sse }, .unused },
122481 .clobbers = .{ .eflags = true },
122482 .each = .{ .once = &.{
122483 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122484 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
122485 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
122486 .{ ._, .v_ps, switch (mir_tag) {
122487 else => unreachable,
122488 .@"and" => .@"or",
122489 .@"or", .xor => .@"and",
122490 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
122491 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122492 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122493 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122494 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
122495 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
122496 } },
122497 }, .{
122498 .required_features = .{ .sse2, null, null, null },
122499 .dst_constraints = .{ .{ .int = .xword }, .any },
122500 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any },
122501 .patterns = &.{
122502 .{ .src = .{ .to_mem, .none, .none } },
122503 },
122504 .extra_temps = .{
122505 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122506 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
122507 .ref = .src0,
122508 .invert = switch (mir_tag) {
122509 else => unreachable,
122510 .@"and" => true,
122511 .@"or", .xor => false,
122512 },
122513 } } },
122514 .unused,
122515 .unused,
122516 .unused,
122517 .unused,
122518 .unused,
122519 .unused,
122520 .unused,
122521 .unused,
122522 .unused,
122523 },
122524 .dst_temps = .{ .{ .rc = .sse }, .unused },
122525 .clobbers = .{ .eflags = true },
122526 .each = .{ .once = &.{
122527 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122528 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
122529 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
122530 .{ ._, .p_, switch (mir_tag) {
122531 else => unreachable,
122532 .@"and" => .@"or",
122533 .@"or", .xor => .@"and",
122534 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
122535 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
122536 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122537 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122538 } },
122539 }, .{
122540 .required_features = .{ .avx512f, null, null, null },
122541 .dst_constraints = .{ .{ .int = .yword }, .any },
122542 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .yword } }, .any, .any },
122543 .patterns = &.{
122544 .{ .src = .{ .to_mem, .none, .none } },
122545 },
122546 .dst_temps = .{ .{ .rc = .sse }, .unused },
122547 .each = .{ .once = &.{
122548 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
122549 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
122550 } },
122551 }, .{
122552 .required_features = .{ .avx2, null, null, null },
122553 .dst_constraints = .{ .{ .int = .yword }, .any },
122554 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
122555 .patterns = &.{
122556 .{ .src = .{ .to_mem, .none, .none } },
122557 },
122558 .extra_temps = .{
122559 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122560 .unused,
122561 .unused,
122562 .unused,
122563 .unused,
122564 .unused,
122565 .unused,
122566 .unused,
122567 .unused,
122568 .unused,
122569 .unused,
122570 },
122571 .dst_temps = .{ .{ .rc = .sse }, .unused },
122572 .clobbers = .{ .eflags = true },
122573 .each = .{ .once = &.{
122574 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
122575 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
122576 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122577 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122578 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122579 } },
122580 }, .{
122581 .required_features = .{ .avx, null, null, null },
122582 .dst_constraints = .{ .{ .int = .yword }, .any },
122583 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
122584 .patterns = &.{
122585 .{ .src = .{ .to_mem, .none, .none } },
122586 },
122587 .extra_temps = .{
122588 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122589 .unused,
122590 .unused,
122591 .unused,
122592 .unused,
122593 .unused,
122594 .unused,
122595 .unused,
122596 .unused,
122597 .unused,
122598 .unused,
122599 },
122600 .dst_temps = .{ .{ .rc = .sse }, .unused },
122601 .clobbers = .{ .eflags = true },
122602 .each = .{ .once = &.{
122603 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
122604 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
122605 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122606 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122607 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122608 } },
122609 }, .{
122610 .required_features = .{ .avx512f, null, null, null },
122611 .dst_constraints = .{ .{ .int = .yword }, .any },
122612 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .yword } }, .any, .any },
122613 .patterns = &.{
122614 .{ .src = .{ .to_mem, .none, .none } },
122615 },
122616 .extra_temps = .{
122617 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122618 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
122619 .ref = .src0,
122620 .invert = switch (mir_tag) {
122621 else => unreachable,
122622 .@"and" => true,
122623 .@"or", .xor => false,
122624 },
122625 } } },
122626 .{ .type = .vector_1_u256, .kind = .{ .rc = .sse } },
122627 .unused,
122628 .unused,
122629 .unused,
122630 .unused,
122631 .unused,
122632 .unused,
122633 .unused,
122634 .unused,
122635 },
122636 .dst_temps = .{ .{ .rc = .sse }, .unused },
122637 .clobbers = .{ .eflags = true },
122638 .each = .{ .once = &.{
122639 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122640 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
122641 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
122642 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
122643 .{ ._, .vp_, switch (mir_tag) {
122644 else => unreachable,
122645 .@"and" => .@"or",
122646 .@"or", .xor => .@"and",
122647 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
122648 .{ ._, .vp_, switch (mir_tag) {
122649 else => unreachable,
122650 .@"and" => .@"or",
122651 .@"or", .xor => .@"and",
122652 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
122653 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
122654 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122655 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
122656 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122657 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
122658 } },
122659 }, .{
122660 .required_features = .{ .avx2, null, null, null },
122661 .dst_constraints = .{ .{ .int = .yword }, .any },
122662 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
122663 .patterns = &.{
122664 .{ .src = .{ .to_mem, .none, .none } },
122665 },
122666 .extra_temps = .{
122667 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122668 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
122669 .ref = .src0,
122670 .invert = switch (mir_tag) {
122671 else => unreachable,
122672 .@"and" => true,
122673 .@"or", .xor => false,
122674 },
122675 } } },
122676 .unused,
122677 .unused,
122678 .unused,
122679 .unused,
122680 .unused,
122681 .unused,
122682 .unused,
122683 .unused,
122684 .unused,
122685 },
122686 .dst_temps = .{ .{ .rc = .sse }, .unused },
122687 .clobbers = .{ .eflags = true },
122688 .each = .{ .once = &.{
122689 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122690 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
122691 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
122692 .{ ._, .vp_, switch (mir_tag) {
122693 else => unreachable,
122694 .@"and" => .@"or",
122695 .@"or", .xor => .@"and",
122696 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
122697 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122698 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122699 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122700 } },
122701 }, .{
122702 .required_features = .{ .avx, null, null, null },
122703 .dst_constraints = .{ .{ .int = .yword }, .any },
122704 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
122705 .patterns = &.{
122706 .{ .src = .{ .to_mem, .none, .none } },
122707 },
122708 .extra_temps = .{
122709 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122710 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
122711 .ref = .src0,
122712 .invert = switch (mir_tag) {
122713 else => unreachable,
122714 .@"and" => true,
122715 .@"or", .xor => false,
122716 },
122717 } } },
122718 .unused,
122719 .unused,
122720 .unused,
122721 .unused,
122722 .unused,
122723 .unused,
122724 .unused,
122725 .unused,
122726 .unused,
122727 },
122728 .dst_temps = .{ .{ .rc = .sse }, .unused },
122729 .clobbers = .{ .eflags = true },
122730 .each = .{ .once = &.{
122731 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122732 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
122733 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
122734 .{ ._, .v_ps, switch (mir_tag) {
122735 else => unreachable,
122736 .@"and" => .@"or",
122737 .@"or", .xor => .@"and",
122738 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
122739 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122740 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122741 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122742 } },
122743 }, .{
122744 .required_features = .{ .@"64bit", null, null, null },
122745 .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
122746 .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },
122747 .patterns = &.{
122748 .{ .src = .{ .to_mem, .none, .none } },
122749 },
122750 .extra_temps = .{
122751 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122752 .{ .type = .u32, .kind = .{ .reg = .rsi } },
122753 .{ .type = .usize, .kind = .{ .reg = .rdi } },
122754 .{ .type = .u64, .kind = .{ .reg = .rcx } },
122755 .unused,
122756 .unused,
122757 .unused,
122758 .unused,
122759 .unused,
122760 .unused,
122761 .unused,
122762 },
122763 .dst_temps = .{ .mem, .unused },
122764 .clobbers = .{ .eflags = true },
122765 .each = .{ .once = &.{
122766 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
122767 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
122768 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
122769 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_size_div_8), ._, ._ },
122770 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
122771 .{ .@"0:", ._, .mov, .tmp1d, .sia(-8, .dst0, .add_size), ._, ._ },
122772 .{ ._, ._, .lea, .tmp2q, .memi(.src0, .tmp0), ._, ._ },
122773 .{ .@"1:", ._, .mov, .tmp3q, .leai(.tmp2q, .tmp1), ._, ._ },
122774 .{ ._, ._, mir_tag, .memi(.dst0q, .tmp1), .tmp3q, ._, ._ },
122775 .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ },
122776 .{ ._, ._nb, .j, .@"1b", ._, ._, ._ },
122777 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
122778 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122779 } },
122780 } },
122781 },
122782 .Min => comptime &.{ .{
122783 .required_features = .{ .avx, null, null, null },
122784 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
122785 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
122786 .patterns = &.{
122787 .{ .src = .{ .to_sse, .none, .none } },
122788 },
122789 .extra_temps = .{
122790 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
122791 .unused,
122792 .unused,
122793 .unused,
122794 .unused,
122795 .unused,
122796 .unused,
122797 .unused,
122798 .unused,
122799 .unused,
122800 .unused,
122801 },
122802 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122803 .each = .{ .once = &.{
122804 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
122805 .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
122806 } },
122807 }, .{
122808 .required_features = .{ .sse4_1, null, null, null },
122809 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
122810 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
122811 .patterns = &.{
122812 .{ .src = .{ .to_mut_sse, .none, .none } },
122813 },
122814 .extra_temps = .{
122815 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
122816 .unused,
122817 .unused,
122818 .unused,
122819 .unused,
122820 .unused,
122821 .unused,
122822 .unused,
122823 .unused,
122824 .unused,
122825 .unused,
122826 },
122827 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122828 .each = .{ .once = &.{
122829 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
122830 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
122831 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
122832 } },
122833 }, .{
122834 .required_features = .{ .sse2, null, null, null },
122835 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
122836 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
122837 .patterns = &.{
122838 .{ .src = .{ .to_mut_sse, .none, .none } },
122839 },
122840 .extra_temps = .{
122841 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
122842 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
122843 .unused,
122844 .unused,
122845 .unused,
122846 .unused,
122847 .unused,
122848 .unused,
122849 .unused,
122850 .unused,
122851 .unused,
122852 },
122853 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122854 .each = .{ .once = &.{
122855 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
122856 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
122857 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
122858 .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
122859 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
122860 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
122861 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
122862 } },
122863 }, .{
122864 .required_features = .{ .avx, null, null, null },
122865 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
122866 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any },
122867 .patterns = &.{
122868 .{ .src = .{ .to_sse, .none, .none } },
122869 },
122870 .extra_temps = .{
122871 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
122872 .unused,
122873 .unused,
122874 .unused,
122875 .unused,
122876 .unused,
122877 .unused,
122878 .unused,
122879 .unused,
122880 .unused,
122881 .unused,
122882 },
122883 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122884 .each = .{ .once = &.{
122885 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
122886 .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
122887 } },
122888 }, .{
122889 .required_features = .{ .sse2, null, null, null },
122890 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
122891 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any },
122892 .patterns = &.{
122893 .{ .src = .{ .to_mut_sse, .none, .none } },
122894 },
122895 .extra_temps = .{
122896 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
122897 .unused,
122898 .unused,
122899 .unused,
122900 .unused,
122901 .unused,
122902 .unused,
122903 .unused,
122904 .unused,
122905 .unused,
122906 .unused,
122907 },
122908 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122909 .each = .{ .once = &.{
122910 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
122911 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
122912 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
122913 } },
122914 }, .{
122915 .required_features = .{ .avx, null, null, null },
122916 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
122917 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
122918 .patterns = &.{
122919 .{ .src = .{ .to_sse, .none, .none } },
122920 },
122921 .extra_temps = .{
122922 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
122923 .unused,
122924 .unused,
122925 .unused,
122926 .unused,
122927 .unused,
122928 .unused,
122929 .unused,
122930 .unused,
122931 .unused,
122932 .unused,
122933 },
122934 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122935 .each = .{ .once = &.{
122936 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
122937 .{ ._, .vp_b, .mins, .tmp0x, .src0x, .tmp0x, ._ },
122938 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
122939 .{ ._, .vp_b, .mins, .dst0x, .tmp0x, .dst0x, ._ },
122940 } },
122941 }, .{
122942 .required_features = .{ .sse4_1, null, null, null },
122943 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
122944 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
122945 .patterns = &.{
122946 .{ .src = .{ .to_mut_sse, .none, .none } },
122947 },
122948 .extra_temps = .{
122949 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
122950 .unused,
122951 .unused,
122952 .unused,
122953 .unused,
122954 .unused,
122955 .unused,
122956 .unused,
122957 .unused,
122958 .unused,
122959 .unused,
122960 },
122961 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122962 .each = .{ .once = &.{
122963 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
122964 .{ ._, .p_b, .mins, .tmp0x, .src0x, ._, ._ },
122965 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
122966 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
122967 } },
122968 }, .{
122969 .required_features = .{ .sse2, null, null, null },
122970 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
122971 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
122972 .patterns = &.{
122973 .{ .src = .{ .to_mut_sse, .none, .none } },
122974 },
122975 .extra_temps = .{
122976 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
122977 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
122978 .unused,
122979 .unused,
122980 .unused,
122981 .unused,
122982 .unused,
122983 .unused,
122984 .unused,
122985 .unused,
122986 .unused,
122987 },
122988 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122989 .each = .{ .once = &.{
122990 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
122991 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
122992 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
122993 .{ ._, .p_, .@"and", .tmp0x, .tmp1x, ._, ._ },
122994 .{ ._, .p_, .andn, .tmp1x, .src0x, ._, ._ },
122995 .{ ._, .p_, .@"or", .tmp0x, .tmp1x, ._, ._ },
122996 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
122997 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
122998 .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
122999 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123000 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123001 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123002 } },
123003 }, .{
123004 .required_features = .{ .avx, null, null, null },
123005 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123006 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
123007 .patterns = &.{
123008 .{ .src = .{ .to_sse, .none, .none } },
123009 },
123010 .extra_temps = .{
123011 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123012 .unused,
123013 .unused,
123014 .unused,
123015 .unused,
123016 .unused,
123017 .unused,
123018 .unused,
123019 .unused,
123020 .unused,
123021 .unused,
123022 },
123023 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123024 .each = .{ .once = &.{
123025 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
123026 .{ ._, .vp_b, .minu, .tmp0x, .src0x, .tmp0x, ._ },
123027 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
123028 .{ ._, .vp_b, .minu, .dst0x, .tmp0x, .dst0x, ._ },
123029 } },
123030 }, .{
123031 .required_features = .{ .sse2, null, null, null },
123032 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123033 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
123034 .patterns = &.{
123035 .{ .src = .{ .to_mut_sse, .none, .none } },
123036 },
123037 .extra_temps = .{
123038 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123039 .unused,
123040 .unused,
123041 .unused,
123042 .unused,
123043 .unused,
123044 .unused,
123045 .unused,
123046 .unused,
123047 .unused,
123048 .unused,
123049 },
123050 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123051 .each = .{ .once = &.{
123052 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
123053 .{ ._, .p_b, .minu, .tmp0x, .src0x, ._, ._ },
123054 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
123055 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123056 } },
123057 }, .{
123058 .required_features = .{ .avx, null, null, null },
123059 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123060 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
123061 .patterns = &.{
123062 .{ .src = .{ .to_sse, .none, .none } },
123063 },
123064 .extra_temps = .{
123065 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123066 .unused,
123067 .unused,
123068 .unused,
123069 .unused,
123070 .unused,
123071 .unused,
123072 .unused,
123073 .unused,
123074 .unused,
123075 .unused,
123076 },
123077 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123078 .each = .{ .once = &.{
123079 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
123080 .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
123081 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
123082 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
123083 } },
123084 }, .{
123085 .required_features = .{ .sse4_1, null, null, null },
123086 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123087 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
123088 .patterns = &.{
123089 .{ .src = .{ .to_mut_sse, .none, .none } },
123090 },
123091 .extra_temps = .{
123092 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123093 .unused,
123094 .unused,
123095 .unused,
123096 .unused,
123097 .unused,
123098 .unused,
123099 .unused,
123100 .unused,
123101 .unused,
123102 .unused,
123103 },
123104 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123105 .each = .{ .once = &.{
123106 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
123107 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123108 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123109 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123110 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123111 } },
123112 }, .{
123113 .required_features = .{ .sse2, null, null, null },
123114 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123115 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
123116 .patterns = &.{
123117 .{ .src = .{ .to_mut_sse, .none, .none } },
123118 },
123119 .extra_temps = .{
123120 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123121 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123122 .unused,
123123 .unused,
123124 .unused,
123125 .unused,
123126 .unused,
123127 .unused,
123128 .unused,
123129 .unused,
123130 .unused,
123131 },
123132 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123133 .each = .{ .once = &.{
123134 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
123135 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123136 .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
123137 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123138 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123139 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123140 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123141 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123142 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123143 .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
123144 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123145 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123146 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123147 } },
123148 }, .{
123149 .required_features = .{ .avx, null, null, null },
123150 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123151 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
123152 .patterns = &.{
123153 .{ .src = .{ .to_sse, .none, .none } },
123154 },
123155 .extra_temps = .{
123156 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123157 .unused,
123158 .unused,
123159 .unused,
123160 .unused,
123161 .unused,
123162 .unused,
123163 .unused,
123164 .unused,
123165 .unused,
123166 .unused,
123167 },
123168 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123169 .each = .{ .once = &.{
123170 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
123171 .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
123172 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
123173 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
123174 } },
123175 }, .{
123176 .required_features = .{ .sse2, null, null, null },
123177 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123178 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
123179 .patterns = &.{
123180 .{ .src = .{ .to_mut_sse, .none, .none } },
123181 },
123182 .extra_temps = .{
123183 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123184 .unused,
123185 .unused,
123186 .unused,
123187 .unused,
123188 .unused,
123189 .unused,
123190 .unused,
123191 .unused,
123192 .unused,
123193 .unused,
123194 },
123195 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123196 .each = .{ .once = &.{
123197 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
123198 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123199 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123200 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123201 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123202 } },
123203 }, .{
123204 .required_features = .{ .avx, null, null, null },
123205 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123206 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123207 .patterns = &.{
123208 .{ .src = .{ .to_sse, .none, .none } },
123209 },
123210 .extra_temps = .{
123211 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123212 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
123213 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
123214 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123215 .unused,
123216 .unused,
123217 .unused,
123218 .unused,
123219 .unused,
123220 .unused,
123221 .unused,
123222 },
123223 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123224 .each = .{ .once = &.{
123225 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123226 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
123227 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
123228 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
123229 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123230 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123231 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
123232 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123233 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
123234 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123235 } },
123236 }, .{
123237 .required_features = .{ .sse4_1, null, null, null },
123238 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123239 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123240 .patterns = &.{
123241 .{ .src = .{ .to_mut_sse, .none, .none } },
123242 },
123243 .extra_temps = .{
123244 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123245 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
123246 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
123247 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123248 .unused,
123249 .unused,
123250 .unused,
123251 .unused,
123252 .unused,
123253 .unused,
123254 .unused,
123255 },
123256 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123257 .each = .{ .once = &.{
123258 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123259 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
123260 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
123261 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
123262 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123263 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
123264 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
123265 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
123266 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
123267 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
123268 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
123269 } },
123270 }, .{
123271 .required_features = .{ .sse2, null, null, null },
123272 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123273 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123274 .patterns = &.{
123275 .{ .src = .{ .to_mut_sse, .none, .none } },
123276 },
123277 .extra_temps = .{
123278 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123279 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
123280 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
123281 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123282 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123283 .unused,
123284 .unused,
123285 .unused,
123286 .unused,
123287 .unused,
123288 .unused,
123289 },
123290 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123291 .each = .{ .once = &.{
123292 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123293 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
123294 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
123295 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
123296 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123297 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
123298 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
123299 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
123300 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
123301 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
123302 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
123303 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
123304 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
123305 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
123306 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
123307 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
123308 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
123309 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
123310 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
123311 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
123312 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
123313 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
123314 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
123315 } },
123316 }, .{
123317 .required_features = .{ .avx, null, null, null },
123318 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123319 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123320 .patterns = &.{
123321 .{ .src = .{ .to_sse, .none, .none } },
123322 },
123323 .extra_temps = .{
123324 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123325 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
123326 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123327 .unused,
123328 .unused,
123329 .unused,
123330 .unused,
123331 .unused,
123332 .unused,
123333 .unused,
123334 .unused,
123335 },
123336 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123337 .each = .{ .once = &.{
123338 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123339 .{ ._, .vp_, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
123340 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
123341 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
123342 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
123343 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
123344 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
123345 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
123346 } },
123347 }, .{
123348 .required_features = .{ .sse2, null, null, null },
123349 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123350 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123351 .patterns = &.{
123352 .{ .src = .{ .to_mut_sse, .none, .none } },
123353 },
123354 .extra_temps = .{
123355 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123356 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
123357 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123358 .unused,
123359 .unused,
123360 .unused,
123361 .unused,
123362 .unused,
123363 .unused,
123364 .unused,
123365 .unused,
123366 },
123367 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123368 .each = .{ .once = &.{
123369 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123370 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
123371 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
123372 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
123373 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
123374 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
123375 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
123376 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
123377 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
123378 } },
123379 }, .{
123380 .required_features = .{ .avx, null, null, null },
123381 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123382 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123383 .patterns = &.{
123384 .{ .src = .{ .to_sse, .none, .none } },
123385 },
123386 .extra_temps = .{
123387 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123388 .unused,
123389 .unused,
123390 .unused,
123391 .unused,
123392 .unused,
123393 .unused,
123394 .unused,
123395 .unused,
123396 .unused,
123397 .unused,
123398 },
123399 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123400 .each = .{ .once = &.{
123401 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
123402 .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
123403 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123404 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
123405 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
123406 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
123407 } },
123408 }, .{
123409 .required_features = .{ .sse4_1, null, null, null },
123410 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123411 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123412 .patterns = &.{
123413 .{ .src = .{ .to_mut_sse, .none, .none } },
123414 },
123415 .extra_temps = .{
123416 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123417 .unused,
123418 .unused,
123419 .unused,
123420 .unused,
123421 .unused,
123422 .unused,
123423 .unused,
123424 .unused,
123425 .unused,
123426 .unused,
123427 },
123428 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123429 .each = .{ .once = &.{
123430 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
123431 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123432 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123433 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123434 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123435 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123436 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123437 } },
123438 }, .{
123439 .required_features = .{ .sse2, null, null, null },
123440 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123441 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123442 .patterns = &.{
123443 .{ .src = .{ .to_mut_sse, .none, .none } },
123444 },
123445 .extra_temps = .{
123446 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123447 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123448 .unused,
123449 .unused,
123450 .unused,
123451 .unused,
123452 .unused,
123453 .unused,
123454 .unused,
123455 .unused,
123456 .unused,
123457 },
123458 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123459 .each = .{ .once = &.{
123460 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
123461 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123462 .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
123463 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123464 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123465 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123466 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123467 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123468 .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
123469 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123470 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123471 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123472 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123473 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123474 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123475 .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
123476 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123477 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123478 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123479 } },
123480 }, .{
123481 .required_features = .{ .avx, null, null, null },
123482 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123483 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123484 .patterns = &.{
123485 .{ .src = .{ .to_sse, .none, .none } },
123486 },
123487 .extra_temps = .{
123488 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123489 .unused,
123490 .unused,
123491 .unused,
123492 .unused,
123493 .unused,
123494 .unused,
123495 .unused,
123496 .unused,
123497 .unused,
123498 .unused,
123499 },
123500 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123501 .each = .{ .once = &.{
123502 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
123503 .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
123504 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123505 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
123506 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
123507 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
123508 } },
123509 }, .{
123510 .required_features = .{ .sse2, null, null, null },
123511 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123512 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
123513 .patterns = &.{
123514 .{ .src = .{ .to_mut_sse, .none, .none } },
123515 },
123516 .extra_temps = .{
123517 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123518 .unused,
123519 .unused,
123520 .unused,
123521 .unused,
123522 .unused,
123523 .unused,
123524 .unused,
123525 .unused,
123526 .unused,
123527 .unused,
123528 },
123529 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123530 .each = .{ .once = &.{
123531 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
123532 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123533 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123534 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123535 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123536 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123537 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123538 } },
123539 }, .{
123540 .required_features = .{ .avx, null, null, null },
123541 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123542 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123543 .patterns = &.{
123544 .{ .src = .{ .to_sse, .none, .none } },
123545 },
123546 .extra_temps = .{
123547 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123548 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
123549 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
123550 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123551 .unused,
123552 .unused,
123553 .unused,
123554 .unused,
123555 .unused,
123556 .unused,
123557 .unused,
123558 },
123559 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123560 .each = .{ .once = &.{
123561 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123562 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
123563 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
123564 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
123565 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123566 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123567 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123568 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123569 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
123570 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123571 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
123572 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123573 } },
123574 }, .{
123575 .required_features = .{ .sse4_1, null, null, null },
123576 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123577 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123578 .patterns = &.{
123579 .{ .src = .{ .to_mut_sse, .none, .none } },
123580 },
123581 .extra_temps = .{
123582 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123583 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
123584 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
123585 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123586 .unused,
123587 .unused,
123588 .unused,
123589 .unused,
123590 .unused,
123591 .unused,
123592 .unused,
123593 },
123594 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123595 .each = .{ .once = &.{
123596 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123597 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
123598 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
123599 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
123600 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123601 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
123602 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123603 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
123604 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
123605 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
123606 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
123607 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
123608 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
123609 } },
123610 }, .{
123611 .required_features = .{ .sse2, null, null, null },
123612 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123613 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123614 .patterns = &.{
123615 .{ .src = .{ .to_mut_sse, .none, .none } },
123616 },
123617 .extra_temps = .{
123618 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123619 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
123620 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
123621 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123622 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123623 .unused,
123624 .unused,
123625 .unused,
123626 .unused,
123627 .unused,
123628 .unused,
123629 },
123630 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123631 .each = .{ .once = &.{
123632 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123633 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
123634 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
123635 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
123636 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123637 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
123638 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
123639 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
123640 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
123641 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
123642 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123643 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
123644 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
123645 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
123646 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
123647 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
123648 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
123649 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
123650 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
123651 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
123652 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
123653 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
123654 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
123655 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
123656 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
123657 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
123658 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
123659 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
123660 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
123661 } },
123662 }, .{
123663 .required_features = .{ .avx, null, null, null },
123664 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123665 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123666 .patterns = &.{
123667 .{ .src = .{ .to_sse, .none, .none } },
123668 },
123669 .extra_temps = .{
123670 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123671 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
123672 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123673 .unused,
123674 .unused,
123675 .unused,
123676 .unused,
123677 .unused,
123678 .unused,
123679 .unused,
123680 .unused,
123681 },
123682 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123683 .each = .{ .once = &.{
123684 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123685 .{ ._, .vp_, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
123686 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
123687 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
123688 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
123689 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
123690 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
123691 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
123692 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
123693 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
123694 } },
123695 }, .{
123696 .required_features = .{ .sse2, null, null, null },
123697 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123698 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123699 .patterns = &.{
123700 .{ .src = .{ .to_mut_sse, .none, .none } },
123701 },
123702 .extra_temps = .{
123703 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123704 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
123705 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123706 .unused,
123707 .unused,
123708 .unused,
123709 .unused,
123710 .unused,
123711 .unused,
123712 .unused,
123713 .unused,
123714 },
123715 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123716 .each = .{ .once = &.{
123717 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123718 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
123719 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
123720 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
123721 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
123722 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
123723 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
123724 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
123725 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
123726 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
123727 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
123728 } },
123729 }, .{
123730 .required_features = .{ .avx, null, null, null },
123731 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123732 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123733 .patterns = &.{
123734 .{ .src = .{ .to_sse, .none, .none } },
123735 },
123736 .extra_temps = .{
123737 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123738 .unused,
123739 .unused,
123740 .unused,
123741 .unused,
123742 .unused,
123743 .unused,
123744 .unused,
123745 .unused,
123746 .unused,
123747 .unused,
123748 },
123749 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123750 .each = .{ .once = &.{
123751 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
123752 .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
123753 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
123754 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
123755 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123756 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
123757 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
123758 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
123759 } },
123760 }, .{
123761 .required_features = .{ .sse4_1, null, null, null },
123762 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123763 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123764 .patterns = &.{
123765 .{ .src = .{ .to_mut_sse, .none, .none } },
123766 },
123767 .extra_temps = .{
123768 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123769 .unused,
123770 .unused,
123771 .unused,
123772 .unused,
123773 .unused,
123774 .unused,
123775 .unused,
123776 .unused,
123777 .unused,
123778 .unused,
123779 },
123780 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123781 .each = .{ .once = &.{
123782 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
123783 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123784 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
123785 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123786 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123787 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123788 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123789 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123790 .{ ._, .p_b, .mins, .dst0x, .tmp0x, ._, ._ },
123791 } },
123792 }, .{
123793 .required_features = .{ .sse2, null, null, null },
123794 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123795 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123796 .patterns = &.{
123797 .{ .src = .{ .to_mut_sse, .none, .none } },
123798 },
123799 .extra_temps = .{
123800 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123801 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123802 .unused,
123803 .unused,
123804 .unused,
123805 .unused,
123806 .unused,
123807 .unused,
123808 .unused,
123809 .unused,
123810 .unused,
123811 },
123812 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123813 .each = .{ .once = &.{
123814 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
123815 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123816 .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
123817 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123818 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123819 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123820 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
123821 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123822 .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
123823 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123824 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123825 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123826 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123827 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123828 .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
123829 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123830 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123831 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123832 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123833 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123834 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
123835 .{ ._, .p_b, .cmpgt, .tmp1x, .dst0x, ._, ._ },
123836 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
123837 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
123838 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
123839 } },
123840 }, .{
123841 .required_features = .{ .avx, null, null, null },
123842 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123843 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123844 .patterns = &.{
123845 .{ .src = .{ .to_sse, .none, .none } },
123846 },
123847 .extra_temps = .{
123848 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123849 .unused,
123850 .unused,
123851 .unused,
123852 .unused,
123853 .unused,
123854 .unused,
123855 .unused,
123856 .unused,
123857 .unused,
123858 .unused,
123859 },
123860 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123861 .each = .{ .once = &.{
123862 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
123863 .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
123864 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
123865 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
123866 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123867 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
123868 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
123869 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
123870 } },
123871 }, .{
123872 .required_features = .{ .sse2, null, null, null },
123873 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123874 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
123875 .patterns = &.{
123876 .{ .src = .{ .to_mut_sse, .none, .none } },
123877 },
123878 .extra_temps = .{
123879 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123880 .unused,
123881 .unused,
123882 .unused,
123883 .unused,
123884 .unused,
123885 .unused,
123886 .unused,
123887 .unused,
123888 .unused,
123889 .unused,
123890 },
123891 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123892 .each = .{ .once = &.{
123893 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
123894 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123895 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
123896 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123897 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
123898 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123899 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
123900 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
123901 .{ ._, .p_b, .minu, .dst0x, .tmp0x, ._, ._ },
123902 } },
123903 }, .{
123904 .required_features = .{ .avx2, null, null, null },
123905 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123906 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
123907 .patterns = &.{
123908 .{ .src = .{ .to_sse, .none, .none } },
123909 },
123910 .extra_temps = .{
123911 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123912 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
123913 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
123914 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123915 .unused,
123916 .unused,
123917 .unused,
123918 .unused,
123919 .unused,
123920 .unused,
123921 .unused,
123922 },
123923 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123924 .each = .{ .once = &.{
123925 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123926 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
123927 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
123928 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
123929 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
123930 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123931 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123932 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123933 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123934 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123935 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
123936 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123937 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
123938 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123939 } },
123940 }, .{
123941 .required_features = .{ .avx, null, null, null },
123942 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
123943 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
123944 .patterns = &.{
123945 .{ .src = .{ .to_sse, .none, .none } },
123946 },
123947 .extra_temps = .{
123948 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123949 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
123950 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
123951 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
123952 .unused,
123953 .unused,
123954 .unused,
123955 .unused,
123956 .unused,
123957 .unused,
123958 .unused,
123959 },
123960 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123961 .each = .{ .once = &.{
123962 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
123963 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
123964 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
123965 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
123966 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
123967 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123968 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123969 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123970 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
123971 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123972 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
123973 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123974 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
123975 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
123976 } },
123977 }, .{
123978 .required_features = .{ .avx2, null, null, null },
123979 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
123980 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
123981 .patterns = &.{
123982 .{ .src = .{ .to_sse, .none, .none } },
123983 },
123984 .extra_temps = .{
123985 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
123986 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
123987 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
123988 .unused,
123989 .unused,
123990 .unused,
123991 .unused,
123992 .unused,
123993 .unused,
123994 .unused,
123995 .unused,
123996 },
123997 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123998 .each = .{ .once = &.{
123999 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124000 .{ ._, .vp_, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
124001 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
124002 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124003 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124004 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124005 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124006 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124007 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
124008 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124009 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
124010 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124011 } },
124012 }, .{
124013 .required_features = .{ .avx, null, null, null },
124014 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124015 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124016 .patterns = &.{
124017 .{ .src = .{ .to_sse, .none, .none } },
124018 },
124019 .extra_temps = .{
124020 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
124021 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
124022 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124023 .unused,
124024 .unused,
124025 .unused,
124026 .unused,
124027 .unused,
124028 .unused,
124029 .unused,
124030 .unused,
124031 },
124032 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
124033 .each = .{ .once = &.{
124034 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124035 .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
124036 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
124037 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124038 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124039 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124040 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124041 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124042 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
124043 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124044 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
124045 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124046 } },
124047 }, .{
124048 .required_features = .{ .avx2, null, null, null },
124049 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124050 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124051 .patterns = &.{
124052 .{ .src = .{ .to_sse, .none, .none } },
124053 },
124054 .extra_temps = .{
124055 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124056 .unused,
124057 .unused,
124058 .unused,
124059 .unused,
124060 .unused,
124061 .unused,
124062 .unused,
124063 .unused,
124064 .unused,
124065 .unused,
124066 },
124067 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
124068 .each = .{ .once = &.{
124069 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
124070 .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
124071 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124072 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124073 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124074 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124075 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
124076 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124077 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
124078 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124079 } },
124080 }, .{
124081 .required_features = .{ .avx, null, null, null },
124082 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124083 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124084 .patterns = &.{
124085 .{ .src = .{ .to_sse, .none, .none } },
124086 },
124087 .extra_temps = .{
124088 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124089 .unused,
124090 .unused,
124091 .unused,
124092 .unused,
124093 .unused,
124094 .unused,
124095 .unused,
124096 .unused,
124097 .unused,
124098 .unused,
124099 },
124100 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
124101 .each = .{ .once = &.{
124102 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
124103 .{ ._, .vp_b, .mins, .dst0x, .src0x, .tmp0x, ._ },
124104 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124105 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124106 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124107 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124108 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
124109 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124110 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
124111 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124112 } },
124113 }, .{
124114 .required_features = .{ .avx2, null, null, null },
124115 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124116 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124117 .patterns = &.{
124118 .{ .src = .{ .to_sse, .none, .none } },
124119 },
124120 .extra_temps = .{
124121 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124122 .unused,
124123 .unused,
124124 .unused,
124125 .unused,
124126 .unused,
124127 .unused,
124128 .unused,
124129 .unused,
124130 .unused,
124131 .unused,
124132 },
124133 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
124134 .each = .{ .once = &.{
124135 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
124136 .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
124137 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124138 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124139 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124140 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124141 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
124142 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124143 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
124144 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124145 } },
124146 }, .{
124147 .required_features = .{ .avx, null, null, null },
124148 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124149 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124150 .patterns = &.{
124151 .{ .src = .{ .to_sse, .none, .none } },
124152 },
124153 .extra_temps = .{
124154 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124155 .unused,
124156 .unused,
124157 .unused,
124158 .unused,
124159 .unused,
124160 .unused,
124161 .unused,
124162 .unused,
124163 .unused,
124164 .unused,
124165 },
124166 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
124167 .each = .{ .once = &.{
124168 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
124169 .{ ._, .vp_b, .minu, .dst0x, .src0x, .tmp0x, ._ },
124170 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124171 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124172 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124173 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124174 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
124175 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124176 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
124177 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124178 } },
124179 }, .{
124180 .required_features = .{ .avx512f, null, null, null },
124181 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124182 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
124183 .patterns = &.{
124184 .{ .src = .{ .to_mem, .none, .none } },
124185 },
124186 .extra_temps = .{
124187 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
124188 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
124189 .{ .type = .vector_64_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
124190 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
124191 .unused,
124192 .unused,
124193 .unused,
124194 .unused,
124195 .unused,
124196 .unused,
124197 .unused,
124198 },
124199 .dst_temps = .{ .{ .rc = .sse }, .unused },
124200 .each = .{ .once = &.{
124201 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124202 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
124203 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
124204 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
124205 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
124206 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
124207 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
124208 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
124209 .{ ._, .vp_b, .mins, .dst0y, .dst0y, .tmp3y, ._ },
124210 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
124211 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124212 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124213 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124214 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124215 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124216 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
124217 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124218 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
124219 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124220 } },
124221 }, .{
124222 .required_features = .{ .avx512f, null, null, null },
124223 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124224 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
124225 .patterns = &.{
124226 .{ .src = .{ .to_mem, .none, .none } },
124227 },
124228 .extra_temps = .{
124229 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
124230 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
124231 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
124232 .unused,
124233 .unused,
124234 .unused,
124235 .unused,
124236 .unused,
124237 .unused,
124238 .unused,
124239 .unused,
124240 },
124241 .dst_temps = .{ .{ .rc = .sse }, .unused },
124242 .each = .{ .once = &.{
124243 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124244 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
124245 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
124246 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .mem(.src0y), ._ },
124247 .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
124248 .{ ._, .vp_b, .minu, .dst0y, .dst0y, .tmp2y, ._ },
124249 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
124250 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124251 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124252 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124253 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124254 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124255 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
124256 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124257 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
124258 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124259 } },
124260 }, .{
124261 .required_features = .{ .avx512f, null, null, null },
124262 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124263 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
124264 .patterns = &.{
124265 .{ .src = .{ .to_mem, .none, .none } },
124266 },
124267 .extra_temps = .{
124268 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124269 .unused,
124270 .unused,
124271 .unused,
124272 .unused,
124273 .unused,
124274 .unused,
124275 .unused,
124276 .unused,
124277 .unused,
124278 .unused,
124279 },
124280 .dst_temps = .{ .{ .rc = .sse }, .unused },
124281 .each = .{ .once = &.{
124282 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
124283 .{ ._, .vp_b, .mins, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
124284 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
124285 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124286 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124287 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124288 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124289 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124290 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
124291 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124292 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
124293 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp0x, ._ },
124294 } },
124295 }, .{
124296 .required_features = .{ .avx512f, null, null, null },
124297 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124298 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
124299 .patterns = &.{
124300 .{ .src = .{ .to_mem, .none, .none } },
124301 },
124302 .extra_temps = .{
124303 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124304 .unused,
124305 .unused,
124306 .unused,
124307 .unused,
124308 .unused,
124309 .unused,
124310 .unused,
124311 .unused,
124312 .unused,
124313 .unused,
124314 },
124315 .dst_temps = .{ .{ .rc = .sse }, .unused },
124316 .each = .{ .once = &.{
124317 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
124318 .{ ._, .vp_b, .minu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
124319 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
124320 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124321 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124322 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124323 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
124324 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124325 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
124326 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124327 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
124328 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp0x, ._ },
124329 } },
124330 }, .{
124331 .required_features = .{ .avx2, null, null, null },
124332 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124333 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124334 .patterns = &.{
124335 .{ .src = .{ .to_mem, .none, .none } },
124336 },
124337 .extra_temps = .{
124338 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124339 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124340 .unused,
124341 .unused,
124342 .unused,
124343 .unused,
124344 .unused,
124345 .unused,
124346 .unused,
124347 .unused,
124348 .unused,
124349 },
124350 .dst_temps = .{ .{ .rc = .sse }, .unused },
124351 .clobbers = .{ .eflags = true },
124352 .each = .{ .once = &.{
124353 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
124354 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
124355 .{ .@"0:", .vp_b, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
124356 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
124357 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124358 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
124359 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124360 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124361 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124362 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124363 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124364 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
124365 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124366 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
124367 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124368 } },
124369 }, .{
124370 .required_features = .{ .avx, null, null, null },
124371 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124372 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
124373 .patterns = &.{
124374 .{ .src = .{ .to_mem, .none, .none } },
124375 },
124376 .extra_temps = .{
124377 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124378 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124379 .unused,
124380 .unused,
124381 .unused,
124382 .unused,
124383 .unused,
124384 .unused,
124385 .unused,
124386 .unused,
124387 .unused,
124388 },
124389 .dst_temps = .{ .{ .rc = .sse }, .unused },
124390 .clobbers = .{ .eflags = true },
124391 .each = .{ .once = &.{
124392 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
124393 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
124394 .{ .@"0:", .vp_b, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
124395 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124396 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124397 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124398 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124399 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124400 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124401 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
124402 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124403 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
124404 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp1x, ._ },
124405 } },
124406 }, .{
124407 .required_features = .{ .sse4_1, null, null, null },
124408 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124409 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
124410 .patterns = &.{
124411 .{ .src = .{ .to_mem, .none, .none } },
124412 },
124413 .extra_temps = .{
124414 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124415 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124416 .unused,
124417 .unused,
124418 .unused,
124419 .unused,
124420 .unused,
124421 .unused,
124422 .unused,
124423 .unused,
124424 .unused,
124425 },
124426 .dst_temps = .{ .{ .rc = .sse }, .unused },
124427 .clobbers = .{ .eflags = true },
124428 .each = .{ .once = &.{
124429 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
124430 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
124431 .{ .@"0:", .p_b, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
124432 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124433 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124434 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124435 .{ ._, .p_b, .mins, .dst0x, .tmp1x, ._, ._ },
124436 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124437 .{ ._, .p_b, .mins, .dst0x, .tmp1x, ._, ._ },
124438 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
124439 .{ ._, .p_b, .mins, .dst0x, .tmp1x, ._, ._ },
124440 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
124441 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
124442 .{ ._, .p_b, .mins, .dst0x, .tmp1x, ._, ._ },
124443 } },
124444 }, .{
124445 .required_features = .{ .sse2, null, null, null },
124446 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124447 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
124448 .patterns = &.{
124449 .{ .src = .{ .to_mem, .none, .none } },
124450 },
124451 .extra_temps = .{
124452 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124453 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124454 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124455 .unused,
124456 .unused,
124457 .unused,
124458 .unused,
124459 .unused,
124460 .unused,
124461 .unused,
124462 .unused,
124463 },
124464 .dst_temps = .{ .{ .rc = .sse }, .unused },
124465 .clobbers = .{ .eflags = true },
124466 .each = .{ .once = &.{
124467 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
124468 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
124469 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
124470 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
124471 .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
124472 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
124473 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
124474 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
124475 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124476 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124477 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124478 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
124479 .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
124480 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
124481 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
124482 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
124483 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124484 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
124485 .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
124486 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
124487 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
124488 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
124489 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
124490 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
124491 .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
124492 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
124493 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
124494 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
124495 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
124496 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
124497 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
124498 .{ ._, .p_b, .cmpgt, .tmp2x, .dst0x, ._, ._ },
124499 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
124500 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
124501 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
124502 } },
124503 }, .{
124504 .required_features = .{ .avx2, null, null, null },
124505 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124506 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124507 .patterns = &.{
124508 .{ .src = .{ .to_mem, .none, .none } },
124509 },
124510 .extra_temps = .{
124511 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124512 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124513 .unused,
124514 .unused,
124515 .unused,
124516 .unused,
124517 .unused,
124518 .unused,
124519 .unused,
124520 .unused,
124521 .unused,
124522 },
124523 .dst_temps = .{ .{ .rc = .sse }, .unused },
124524 .clobbers = .{ .eflags = true },
124525 .each = .{ .once = &.{
124526 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
124527 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
124528 .{ .@"0:", .vp_b, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
124529 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
124530 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124531 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
124532 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124533 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124534 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124535 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124536 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124537 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
124538 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124539 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
124540 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124541 } },
124542 }, .{
124543 .required_features = .{ .avx, null, null, null },
124544 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124545 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
124546 .patterns = &.{
124547 .{ .src = .{ .to_mem, .none, .none } },
124548 },
124549 .extra_temps = .{
124550 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124551 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124552 .unused,
124553 .unused,
124554 .unused,
124555 .unused,
124556 .unused,
124557 .unused,
124558 .unused,
124559 .unused,
124560 .unused,
124561 },
124562 .dst_temps = .{ .{ .rc = .sse }, .unused },
124563 .clobbers = .{ .eflags = true },
124564 .each = .{ .once = &.{
124565 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
124566 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
124567 .{ .@"0:", .vp_b, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
124568 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124569 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124570 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124571 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124572 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124573 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124574 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
124575 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124576 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
124577 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp1x, ._ },
124578 } },
124579 }, .{
124580 .required_features = .{ .sse2, null, null, null },
124581 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124582 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
124583 .patterns = &.{
124584 .{ .src = .{ .to_mem, .none, .none } },
124585 },
124586 .extra_temps = .{
124587 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124588 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124589 .unused,
124590 .unused,
124591 .unused,
124592 .unused,
124593 .unused,
124594 .unused,
124595 .unused,
124596 .unused,
124597 .unused,
124598 },
124599 .dst_temps = .{ .{ .rc = .sse }, .unused },
124600 .clobbers = .{ .eflags = true },
124601 .each = .{ .once = &.{
124602 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
124603 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
124604 .{ .@"0:", .p_b, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
124605 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124606 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124607 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124608 .{ ._, .p_b, .minu, .dst0x, .tmp1x, ._, ._ },
124609 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
124610 .{ ._, .p_b, .minu, .dst0x, .tmp1x, ._, ._ },
124611 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
124612 .{ ._, .p_b, .minu, .dst0x, .tmp1x, ._, ._ },
124613 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
124614 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
124615 .{ ._, .p_b, .minu, .dst0x, .tmp1x, ._, ._ },
124616 } },
124617 }, .{
124618 .required_features = .{ .avx512f, null, null, null },
124619 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124620 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
124621 .patterns = &.{
124622 .{ .src = .{ .to_mem, .none, .none } },
124623 },
124624 .extra_temps = .{
124625 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124626 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
124627 .{ .type = .vector_64_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
124628 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
124629 .unused,
124630 .unused,
124631 .unused,
124632 .unused,
124633 .unused,
124634 .unused,
124635 .unused,
124636 },
124637 .dst_temps = .{ .{ .rc = .sse }, .unused },
124638 .clobbers = .{ .eflags = true },
124639 .each = .{ .once = &.{
124640 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124641 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
124642 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
124643 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
124644 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
124645 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
124646 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
124647 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
124648 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
124649 .{ .@"0:", .vp_b, .mins, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
124650 .{ ._, .vp_b, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
124651 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
124652 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124653 .{ ._, .vp_b, .mins, .dst0y, .dst0y, .tmp3y, ._ },
124654 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
124655 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124656 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124657 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124658 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124659 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124660 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
124661 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124662 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
124663 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124664 } },
124665 }, .{
124666 .required_features = .{ .avx2, null, null, null },
124667 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124668 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124669 .patterns = &.{
124670 .{ .src = .{ .to_mem, .none, .none } },
124671 },
124672 .extra_temps = .{
124673 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124674 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
124675 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
124676 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124677 .unused,
124678 .unused,
124679 .unused,
124680 .unused,
124681 .unused,
124682 .unused,
124683 .unused,
124684 },
124685 .dst_temps = .{ .{ .rc = .sse }, .unused },
124686 .clobbers = .{ .eflags = true },
124687 .each = .{ .once = &.{
124688 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124689 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
124690 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
124691 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
124692 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
124693 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
124694 .{ .@"0:", .vp_b, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
124695 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
124696 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124697 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
124698 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124699 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124700 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124701 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124702 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124703 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
124704 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124705 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
124706 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124707 } },
124708 }, .{
124709 .required_features = .{ .avx, null, null, null },
124710 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124711 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124712 .patterns = &.{
124713 .{ .src = .{ .to_mem, .none, .none } },
124714 },
124715 .extra_temps = .{
124716 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124717 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
124718 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
124719 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124720 .unused,
124721 .unused,
124722 .unused,
124723 .unused,
124724 .unused,
124725 .unused,
124726 .unused,
124727 },
124728 .dst_temps = .{ .{ .rc = .sse }, .unused },
124729 .clobbers = .{ .eflags = true },
124730 .each = .{ .once = &.{
124731 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124732 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
124733 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
124734 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
124735 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
124736 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
124737 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
124738 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124739 .{ .@"0:", .vp_b, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
124740 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124741 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124742 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124743 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124744 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124745 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124746 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
124747 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124748 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
124749 .{ ._, .vp_b, .mins, .dst0x, .dst0x, .tmp3x, ._ },
124750 } },
124751 }, .{
124752 .required_features = .{ .sse4_1, null, null, null },
124753 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124754 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
124755 .patterns = &.{
124756 .{ .src = .{ .to_mem, .none, .none } },
124757 },
124758 .extra_temps = .{
124759 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124760 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
124761 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
124762 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124763 .unused,
124764 .unused,
124765 .unused,
124766 .unused,
124767 .unused,
124768 .unused,
124769 .unused,
124770 },
124771 .dst_temps = .{ .{ .rc = .sse }, .unused },
124772 .clobbers = .{ .eflags = true },
124773 .each = .{ .once = &.{
124774 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124775 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
124776 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
124777 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
124778 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
124779 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
124780 .{ .@"0:", .p_b, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
124781 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124782 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124783 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124784 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
124785 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124786 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
124787 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
124788 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
124789 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
124790 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
124791 .{ ._, .p_b, .mins, .dst0x, .tmp3x, ._, ._ },
124792 } },
124793 }, .{
124794 .required_features = .{ .sse2, null, null, null },
124795 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
124796 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
124797 .patterns = &.{
124798 .{ .src = .{ .to_mem, .none, .none } },
124799 },
124800 .extra_temps = .{
124801 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124802 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
124803 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
124804 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124805 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
124806 .unused,
124807 .unused,
124808 .unused,
124809 .unused,
124810 .unused,
124811 .unused,
124812 },
124813 .dst_temps = .{ .{ .rc = .sse }, .unused },
124814 .clobbers = .{ .eflags = true },
124815 .each = .{ .once = &.{
124816 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124817 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
124818 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
124819 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
124820 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
124821 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
124822 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
124823 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
124824 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
124825 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
124826 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
124827 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
124828 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124829 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124830 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124831 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
124832 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
124833 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
124834 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
124835 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
124836 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
124837 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
124838 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
124839 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
124840 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
124841 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
124842 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
124843 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
124844 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
124845 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
124846 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
124847 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
124848 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
124849 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
124850 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
124851 .{ ._, .p_b, .cmpgt, .tmp4x, .dst0x, ._, ._ },
124852 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
124853 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
124854 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
124855 } },
124856 }, .{
124857 .required_features = .{ .avx512f, null, null, null },
124858 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124859 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
124860 .patterns = &.{
124861 .{ .src = .{ .to_mem, .none, .none } },
124862 },
124863 .extra_temps = .{
124864 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124865 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
124866 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
124867 .unused,
124868 .unused,
124869 .unused,
124870 .unused,
124871 .unused,
124872 .unused,
124873 .unused,
124874 .unused,
124875 },
124876 .dst_temps = .{ .{ .rc = .sse }, .unused },
124877 .clobbers = .{ .eflags = true },
124878 .each = .{ .once = &.{
124879 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124880 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
124881 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
124882 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
124883 .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
124884 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
124885 .{ .@"0:", .vp_b, .minu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
124886 .{ ._, .vp_b, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
124887 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
124888 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124889 .{ ._, .vp_b, .minu, .dst0y, .dst0y, .tmp2y, ._ },
124890 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
124891 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124892 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124893 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124894 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124895 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124896 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
124897 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124898 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
124899 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124900 } },
124901 }, .{
124902 .required_features = .{ .avx2, null, null, null },
124903 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124904 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124905 .patterns = &.{
124906 .{ .src = .{ .to_mem, .none, .none } },
124907 },
124908 .extra_temps = .{
124909 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124910 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
124911 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124912 .unused,
124913 .unused,
124914 .unused,
124915 .unused,
124916 .unused,
124917 .unused,
124918 .unused,
124919 .unused,
124920 },
124921 .dst_temps = .{ .{ .rc = .sse }, .unused },
124922 .clobbers = .{ .eflags = true },
124923 .each = .{ .once = &.{
124924 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124925 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
124926 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
124927 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
124928 .{ .@"0:", .vp_b, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
124929 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
124930 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124931 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
124932 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124933 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124934 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124935 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124936 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124937 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
124938 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124939 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
124940 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124941 } },
124942 }, .{
124943 .required_features = .{ .avx, null, null, null },
124944 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124945 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
124946 .patterns = &.{
124947 .{ .src = .{ .to_mem, .none, .none } },
124948 },
124949 .extra_temps = .{
124950 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124951 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
124952 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124953 .unused,
124954 .unused,
124955 .unused,
124956 .unused,
124957 .unused,
124958 .unused,
124959 .unused,
124960 .unused,
124961 },
124962 .dst_temps = .{ .{ .rc = .sse }, .unused },
124963 .clobbers = .{ .eflags = true },
124964 .each = .{ .once = &.{
124965 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
124966 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
124967 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
124968 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
124969 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
124970 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124971 .{ .@"0:", .vp_b, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
124972 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
124973 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
124974 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124975 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124976 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
124977 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124978 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
124979 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124980 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
124981 .{ ._, .vp_b, .minu, .dst0x, .dst0x, .tmp2x, ._ },
124982 } },
124983 }, .{
124984 .required_features = .{ .sse2, null, null, null },
124985 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
124986 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
124987 .patterns = &.{
124988 .{ .src = .{ .to_mem, .none, .none } },
124989 },
124990 .extra_temps = .{
124991 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
124992 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
124993 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
124994 .unused,
124995 .unused,
124996 .unused,
124997 .unused,
124998 .unused,
124999 .unused,
125000 .unused,
125001 .unused,
125002 },
125003 .dst_temps = .{ .{ .rc = .sse }, .unused },
125004 .clobbers = .{ .eflags = true },
125005 .each = .{ .once = &.{
125006 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125007 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
125008 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
125009 .{ ._, .p_, .@"or", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
125010 .{ .@"0:", .p_b, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
125011 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
125012 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
125013 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
125014 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
125015 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
125016 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
125017 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
125018 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
125019 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
125020 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
125021 .{ ._, .p_b, .minu, .dst0x, .tmp2x, ._, ._ },
125022 } },
125023 }, .{
125024 .required_features = .{ .cmov, .slow_incdec, null, null },
125025 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
125026 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
125027 .patterns = &.{
125028 .{ .src = .{ .to_mem, .none, .none } },
125029 },
125030 .extra_temps = .{
125031 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
125032 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
125033 .unused,
125034 .unused,
125035 .unused,
125036 .unused,
125037 .unused,
125038 .unused,
125039 .unused,
125040 .unused,
125041 .unused,
125042 },
125043 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
125044 .clobbers = .{ .eflags = true },
125045 .each = .{ .once = &.{
125046 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
125047 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125048 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125049 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125050 .{ ._, ._nl, .cmov, .dst0d, .tmp1d, ._, ._ },
125051 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
125052 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
125053 } },
125054 }, .{
125055 .required_features = .{ .cmov, null, null, null },
125056 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
125057 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
125058 .patterns = &.{
125059 .{ .src = .{ .to_mem, .none, .none } },
125060 },
125061 .extra_temps = .{
125062 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
125063 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
125064 .unused,
125065 .unused,
125066 .unused,
125067 .unused,
125068 .unused,
125069 .unused,
125070 .unused,
125071 .unused,
125072 .unused,
125073 },
125074 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
125075 .clobbers = .{ .eflags = true },
125076 .each = .{ .once = &.{
125077 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
125078 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125079 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125080 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125081 .{ ._, ._nl, .cmov, .dst0d, .tmp1d, ._, ._ },
125082 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
125083 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
125084 } },
125085 }, .{
125086 .required_features = .{ .slow_incdec, null, null, null },
125087 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
125088 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
125089 .patterns = &.{
125090 .{ .src = .{ .to_mem, .none, .none } },
125091 },
125092 .extra_temps = .{
125093 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
125094 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
125095 .unused,
125096 .unused,
125097 .unused,
125098 .unused,
125099 .unused,
125100 .unused,
125101 .unused,
125102 .unused,
125103 .unused,
125104 },
125105 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
125106 .clobbers = .{ .eflags = true },
125107 .each = .{ .once = &.{
125108 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
125109 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125110 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125111 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125112 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
125113 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
125114 .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
125115 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
125116 } },
125117 }, .{
125118 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
125119 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
125120 .patterns = &.{
125121 .{ .src = .{ .to_mem, .none, .none } },
125122 },
125123 .extra_temps = .{
125124 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
125125 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
125126 .unused,
125127 .unused,
125128 .unused,
125129 .unused,
125130 .unused,
125131 .unused,
125132 .unused,
125133 .unused,
125134 .unused,
125135 },
125136 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
125137 .clobbers = .{ .eflags = true },
125138 .each = .{ .once = &.{
125139 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
125140 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125141 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125142 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125143 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
125144 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
125145 .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
125146 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
125147 } },
125148 }, .{
125149 .required_features = .{ .cmov, .slow_incdec, null, null },
125150 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
125151 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
125152 .patterns = &.{
125153 .{ .src = .{ .to_mem, .none, .none } },
125154 },
125155 .extra_temps = .{
125156 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
125157 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
125158 .unused,
125159 .unused,
125160 .unused,
125161 .unused,
125162 .unused,
125163 .unused,
125164 .unused,
125165 .unused,
125166 .unused,
125167 },
125168 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
125169 .clobbers = .{ .eflags = true },
125170 .each = .{ .once = &.{
125171 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
125172 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125173 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125174 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125175 .{ ._, ._nb, .cmov, .dst0d, .tmp1d, ._, ._ },
125176 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
125177 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
125178 } },
125179 }, .{
125180 .required_features = .{ .cmov, null, null, null },
125181 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
125182 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
125183 .patterns = &.{
125184 .{ .src = .{ .to_mem, .none, .none } },
125185 },
125186 .extra_temps = .{
125187 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
125188 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
125189 .unused,
125190 .unused,
125191 .unused,
125192 .unused,
125193 .unused,
125194 .unused,
125195 .unused,
125196 .unused,
125197 .unused,
125198 },
125199 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
125200 .clobbers = .{ .eflags = true },
125201 .each = .{ .once = &.{
125202 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
125203 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125204 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125205 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125206 .{ ._, ._nb, .cmov, .dst0d, .tmp1d, ._, ._ },
125207 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
125208 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
125209 } },
125210 }, .{
125211 .required_features = .{ .slow_incdec, null, null, null },
125212 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
125213 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
125214 .patterns = &.{
125215 .{ .src = .{ .to_mem, .none, .none } },
125216 },
125217 .extra_temps = .{
125218 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
125219 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
125220 .unused,
125221 .unused,
125222 .unused,
125223 .unused,
125224 .unused,
125225 .unused,
125226 .unused,
125227 .unused,
125228 .unused,
125229 },
125230 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
125231 .clobbers = .{ .eflags = true },
125232 .each = .{ .once = &.{
125233 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
125234 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125235 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125236 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125237 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
125238 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
125239 .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
125240 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
125241 } },
125242 }, .{
125243 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
125244 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
125245 .patterns = &.{
125246 .{ .src = .{ .to_mem, .none, .none } },
125247 },
125248 .extra_temps = .{
125249 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
125250 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
125251 .unused,
125252 .unused,
125253 .unused,
125254 .unused,
125255 .unused,
125256 .unused,
125257 .unused,
125258 .unused,
125259 .unused,
125260 },
125261 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
125262 .clobbers = .{ .eflags = true },
125263 .each = .{ .once = &.{
125264 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
125265 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
125266 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
125267 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
125268 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
125269 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
125270 .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
125271 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
125272 } },
125273 }, .{
125274 .required_features = .{ .avx, null, null, null },
125275 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125276 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any },
125277 .patterns = &.{
125278 .{ .src = .{ .to_sse, .none, .none } },
125279 },
125280 .extra_temps = .{
125281 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125282 .unused,
125283 .unused,
125284 .unused,
125285 .unused,
125286 .unused,
125287 .unused,
125288 .unused,
125289 .unused,
125290 .unused,
125291 .unused,
125292 },
125293 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125294 .each = .{ .once = &.{
125295 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125296 .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
125297 } },
125298 }, .{
125299 .required_features = .{ .sse2, null, null, null },
125300 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125301 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any },
125302 .patterns = &.{
125303 .{ .src = .{ .to_mut_sse, .none, .none } },
125304 },
125305 .extra_temps = .{
125306 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125307 .unused,
125308 .unused,
125309 .unused,
125310 .unused,
125311 .unused,
125312 .unused,
125313 .unused,
125314 .unused,
125315 .unused,
125316 .unused,
125317 },
125318 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125319 .each = .{ .once = &.{
125320 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125321 .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
125322 } },
125323 }, .{
125324 .required_features = .{ .avx, null, null, null },
125325 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125326 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
125327 .patterns = &.{
125328 .{ .src = .{ .to_sse, .none, .none } },
125329 },
125330 .extra_temps = .{
125331 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125332 .unused,
125333 .unused,
125334 .unused,
125335 .unused,
125336 .unused,
125337 .unused,
125338 .unused,
125339 .unused,
125340 .unused,
125341 .unused,
125342 },
125343 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125344 .each = .{ .once = &.{
125345 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125346 .{ ._, .vp_w, .minu, .dst0x, .src0x, .tmp0x, ._ },
125347 } },
125348 }, .{
125349 .required_features = .{ .sse4_1, null, null, null },
125350 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125351 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
125352 .patterns = &.{
125353 .{ .src = .{ .to_mut_sse, .none, .none } },
125354 },
125355 .extra_temps = .{
125356 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125357 .unused,
125358 .unused,
125359 .unused,
125360 .unused,
125361 .unused,
125362 .unused,
125363 .unused,
125364 .unused,
125365 .unused,
125366 .unused,
125367 },
125368 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125369 .each = .{ .once = &.{
125370 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125371 .{ ._, .p_w, .minu, .dst0x, .tmp0x, ._, ._ },
125372 } },
125373 }, .{
125374 .required_features = .{ .sse2, null, null, null },
125375 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125376 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
125377 .patterns = &.{
125378 .{ .src = .{ .to_mut_sse, .none, .none } },
125379 },
125380 .extra_temps = .{
125381 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125382 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125383 .unused,
125384 .unused,
125385 .unused,
125386 .unused,
125387 .unused,
125388 .unused,
125389 .unused,
125390 .unused,
125391 .unused,
125392 },
125393 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125394 .each = .{ .once = &.{
125395 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125396 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
125397 .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
125398 .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
125399 } },
125400 }, .{
125401 .required_features = .{ .avx, null, null, null },
125402 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125403 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
125404 .patterns = &.{
125405 .{ .src = .{ .to_sse, .none, .none } },
125406 },
125407 .extra_temps = .{
125408 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125409 .unused,
125410 .unused,
125411 .unused,
125412 .unused,
125413 .unused,
125414 .unused,
125415 .unused,
125416 .unused,
125417 .unused,
125418 .unused,
125419 },
125420 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125421 .each = .{ .once = &.{
125422 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125423 .{ ._, .vp_w, .mins, .tmp0x, .src0x, .tmp0x, ._ },
125424 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
125425 .{ ._, .vp_w, .mins, .dst0x, .tmp0x, .dst0x, ._ },
125426 } },
125427 }, .{
125428 .required_features = .{ .sse2, null, null, null },
125429 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125430 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
125431 .patterns = &.{
125432 .{ .src = .{ .to_sse, .none, .none } },
125433 },
125434 .extra_temps = .{
125435 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125436 .unused,
125437 .unused,
125438 .unused,
125439 .unused,
125440 .unused,
125441 .unused,
125442 .unused,
125443 .unused,
125444 .unused,
125445 .unused,
125446 },
125447 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125448 .each = .{ .once = &.{
125449 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125450 .{ ._, .p_w, .mins, .tmp0x, .src0x, ._, ._ },
125451 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
125452 .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
125453 } },
125454 }, .{
125455 .required_features = .{ .avx, null, null, null },
125456 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125457 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
125458 .patterns = &.{
125459 .{ .src = .{ .to_sse, .none, .none } },
125460 },
125461 .extra_temps = .{
125462 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125463 .unused,
125464 .unused,
125465 .unused,
125466 .unused,
125467 .unused,
125468 .unused,
125469 .unused,
125470 .unused,
125471 .unused,
125472 .unused,
125473 },
125474 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125475 .each = .{ .once = &.{
125476 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125477 .{ ._, .vp_w, .minu, .tmp0x, .src0x, .tmp0x, ._ },
125478 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
125479 .{ ._, .vp_w, .minu, .dst0x, .tmp0x, .dst0x, ._ },
125480 } },
125481 }, .{
125482 .required_features = .{ .sse4_1, null, null, null },
125483 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125484 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
125485 .patterns = &.{
125486 .{ .src = .{ .to_mut_sse, .none, .none } },
125487 },
125488 .extra_temps = .{
125489 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125490 .unused,
125491 .unused,
125492 .unused,
125493 .unused,
125494 .unused,
125495 .unused,
125496 .unused,
125497 .unused,
125498 .unused,
125499 .unused,
125500 },
125501 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125502 .each = .{ .once = &.{
125503 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125504 .{ ._, .p_w, .minu, .tmp0x, .src0x, ._, ._ },
125505 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
125506 .{ ._, .p_w, .minu, .dst0x, .tmp0x, ._, ._ },
125507 } },
125508 }, .{
125509 .required_features = .{ .sse2, null, null, null },
125510 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125511 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
125512 .patterns = &.{
125513 .{ .src = .{ .to_sse, .none, .none } },
125514 },
125515 .extra_temps = .{
125516 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125517 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125518 .unused,
125519 .unused,
125520 .unused,
125521 .unused,
125522 .unused,
125523 .unused,
125524 .unused,
125525 .unused,
125526 .unused,
125527 },
125528 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125529 .each = .{ .once = &.{
125530 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
125531 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
125532 .{ ._, .p_w, .subus, .tmp1x, .src0x, ._, ._ },
125533 .{ ._, .p_w, .sub, .tmp0x, .tmp1x, ._, ._ },
125534 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
125535 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
125536 .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
125537 .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
125538 } },
125539 }, .{
125540 .required_features = .{ .avx, null, null, null },
125541 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125542 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
125543 .patterns = &.{
125544 .{ .src = .{ .to_sse, .none, .none } },
125545 },
125546 .extra_temps = .{
125547 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125548 .unused,
125549 .unused,
125550 .unused,
125551 .unused,
125552 .unused,
125553 .unused,
125554 .unused,
125555 .unused,
125556 .unused,
125557 .unused,
125558 },
125559 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125560 .each = .{ .once = &.{
125561 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
125562 .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
125563 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
125564 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp0x, ._ },
125565 } },
125566 }, .{
125567 .required_features = .{ .sse2, null, null, null },
125568 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125569 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
125570 .patterns = &.{
125571 .{ .src = .{ .to_mut_sse, .none, .none } },
125572 },
125573 .extra_temps = .{
125574 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125575 .unused,
125576 .unused,
125577 .unused,
125578 .unused,
125579 .unused,
125580 .unused,
125581 .unused,
125582 .unused,
125583 .unused,
125584 .unused,
125585 },
125586 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125587 .each = .{ .once = &.{
125588 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
125589 .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
125590 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
125591 .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
125592 } },
125593 }, .{
125594 .required_features = .{ .avx, null, null, null },
125595 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125596 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
125597 .patterns = &.{
125598 .{ .src = .{ .to_sse, .none, .none } },
125599 },
125600 .extra_temps = .{
125601 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125602 .unused,
125603 .unused,
125604 .unused,
125605 .unused,
125606 .unused,
125607 .unused,
125608 .unused,
125609 .unused,
125610 .unused,
125611 .unused,
125612 },
125613 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125614 .each = .{ .once = &.{
125615 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
125616 .{ ._, .vp_w, .minu, .dst0x, .src0x, .tmp0x, ._ },
125617 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
125618 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp0x, ._ },
125619 } },
125620 }, .{
125621 .required_features = .{ .sse4_1, null, null, null },
125622 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125623 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
125624 .patterns = &.{
125625 .{ .src = .{ .to_mut_sse, .none, .none } },
125626 },
125627 .extra_temps = .{
125628 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125629 .unused,
125630 .unused,
125631 .unused,
125632 .unused,
125633 .unused,
125634 .unused,
125635 .unused,
125636 .unused,
125637 .unused,
125638 .unused,
125639 },
125640 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125641 .each = .{ .once = &.{
125642 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
125643 .{ ._, .p_w, .minu, .dst0x, .tmp0x, ._, ._ },
125644 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
125645 .{ ._, .p_w, .minu, .dst0x, .tmp0x, ._, ._ },
125646 } },
125647 }, .{
125648 .required_features = .{ .sse2, null, null, null },
125649 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125650 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
125651 .patterns = &.{
125652 .{ .src = .{ .to_mut_sse, .none, .none } },
125653 },
125654 .extra_temps = .{
125655 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125656 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125657 .unused,
125658 .unused,
125659 .unused,
125660 .unused,
125661 .unused,
125662 .unused,
125663 .unused,
125664 .unused,
125665 .unused,
125666 },
125667 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125668 .each = .{ .once = &.{
125669 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
125670 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
125671 .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
125672 .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
125673 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
125674 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
125675 .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
125676 .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
125677 } },
125678 }, .{
125679 .required_features = .{ .avx2, null, null, null },
125680 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125681 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125682 .patterns = &.{
125683 .{ .src = .{ .mem, .none, .none } },
125684 .{ .src = .{ .to_sse, .none, .none } },
125685 },
125686 .extra_temps = .{
125687 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125688 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125689 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125690 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
125691 .unused,
125692 .unused,
125693 .unused,
125694 .unused,
125695 .unused,
125696 .unused,
125697 .unused,
125698 },
125699 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125700 .each = .{ .once = &.{
125701 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125702 .{ ._, .vp_w, .broadcast, .tmp2x, .lea(.tmp0w), ._, ._ },
125703 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
125704 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
125705 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
125706 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125707 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
125708 } },
125709 }, .{
125710 .required_features = .{ .avx, null, null, null },
125711 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125712 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125713 .patterns = &.{
125714 .{ .src = .{ .mem, .none, .none } },
125715 .{ .src = .{ .to_sse, .none, .none } },
125716 },
125717 .extra_temps = .{
125718 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125719 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125720 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125721 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
125722 .unused,
125723 .unused,
125724 .unused,
125725 .unused,
125726 .unused,
125727 .unused,
125728 .unused,
125729 },
125730 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125731 .each = .{ .once = &.{
125732 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125733 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
125734 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
125735 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
125736 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
125737 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125738 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
125739 } },
125740 }, .{
125741 .required_features = .{ .sse4_1, null, null, null },
125742 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125743 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125744 .patterns = &.{
125745 .{ .src = .{ .to_mut_sse, .none, .none } },
125746 },
125747 .extra_temps = .{
125748 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125749 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125750 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
125751 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125752 .unused,
125753 .unused,
125754 .unused,
125755 .unused,
125756 .unused,
125757 .unused,
125758 .unused,
125759 },
125760 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125761 .each = .{ .once = &.{
125762 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125763 .{ ._, ._, .movddup, .tmp3x, .lea(.tmp0q), ._, ._ },
125764 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
125765 .{ ._, .p_, .xor, .dst0x, .tmp3x, ._, ._ },
125766 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
125767 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125768 .{ ._, .p_, .xor, .dst0x, .tmp3x, ._, ._ },
125769 } },
125770 }, .{
125771 .required_features = .{ .sse2, null, null, null },
125772 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125773 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125774 .patterns = &.{
125775 .{ .src = .{ .to_mut_sse, .none, .none } },
125776 },
125777 .extra_temps = .{
125778 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125779 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
125780 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
125781 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125782 .unused,
125783 .unused,
125784 .unused,
125785 .unused,
125786 .unused,
125787 .unused,
125788 .unused,
125789 },
125790 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125791 .each = .{ .once = &.{
125792 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125793 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
125794 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
125795 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
125796 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
125797 .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
125798 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
125799 .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
125800 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
125801 .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
125802 } },
125803 }, .{
125804 .required_features = .{ .avx, null, null, null },
125805 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125806 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
125807 .patterns = &.{
125808 .{ .src = .{ .to_sse, .none, .none } },
125809 },
125810 .extra_temps = .{
125811 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125812 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
125813 .unused,
125814 .unused,
125815 .unused,
125816 .unused,
125817 .unused,
125818 .unused,
125819 .unused,
125820 .unused,
125821 .unused,
125822 },
125823 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125824 .each = .{ .once = &.{
125825 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125826 .{ ._, .vp_, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
125827 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125828 } },
125829 }, .{
125830 .required_features = .{ .sse4_1, null, null, null },
125831 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125832 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
125833 .patterns = &.{
125834 .{ .src = .{ .to_mut_sse, .none, .none } },
125835 },
125836 .extra_temps = .{
125837 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125838 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
125839 .unused,
125840 .unused,
125841 .unused,
125842 .unused,
125843 .unused,
125844 .unused,
125845 .unused,
125846 .unused,
125847 .unused,
125848 },
125849 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125850 .each = .{ .once = &.{
125851 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125852 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
125853 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125854 } },
125855 }, .{
125856 .required_features = .{ .sse2, null, null, null },
125857 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
125858 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
125859 .patterns = &.{
125860 .{ .src = .{ .to_mut_sse, .none, .none } },
125861 },
125862 .extra_temps = .{
125863 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125864 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
125865 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125866 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
125867 .unused,
125868 .unused,
125869 .unused,
125870 .unused,
125871 .unused,
125872 .unused,
125873 .unused,
125874 },
125875 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125876 .each = .{ .once = &.{
125877 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125878 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
125879 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
125880 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
125881 .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
125882 .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
125883 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
125884 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
125885 .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
125886 .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
125887 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
125888 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
125889 .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
125890 .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
125891 } },
125892 }, .{
125893 .required_features = .{ .avx2, null, null, null },
125894 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125895 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125896 .patterns = &.{
125897 .{ .src = .{ .to_sse, .none, .none } },
125898 },
125899 .extra_temps = .{
125900 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125901 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125902 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125903 .unused,
125904 .unused,
125905 .unused,
125906 .unused,
125907 .unused,
125908 .unused,
125909 .unused,
125910 .unused,
125911 },
125912 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125913 .each = .{ .once = &.{
125914 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125915 .{ ._, .vp_w, .broadcast, .tmp2x, .lea(.tmp0w), ._, ._ },
125916 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
125917 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125918 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
125919 } },
125920 }, .{
125921 .required_features = .{ .avx, null, null, null },
125922 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125923 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125924 .patterns = &.{
125925 .{ .src = .{ .to_sse, .none, .none } },
125926 },
125927 .extra_temps = .{
125928 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125929 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125930 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125931 .unused,
125932 .unused,
125933 .unused,
125934 .unused,
125935 .unused,
125936 .unused,
125937 .unused,
125938 .unused,
125939 },
125940 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
125941 .each = .{ .once = &.{
125942 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125943 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
125944 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
125945 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125946 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
125947 } },
125948 }, .{
125949 .required_features = .{ .sse4_1, null, null, null },
125950 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125951 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125952 .patterns = &.{
125953 .{ .src = .{ .to_mut_sse, .none, .none } },
125954 },
125955 .extra_temps = .{
125956 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
125957 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
125958 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125959 .unused,
125960 .unused,
125961 .unused,
125962 .unused,
125963 .unused,
125964 .unused,
125965 .unused,
125966 .unused,
125967 },
125968 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125969 .each = .{ .once = &.{
125970 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
125971 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
125972 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
125973 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
125974 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
125975 } },
125976 }, .{
125977 .required_features = .{ .sse2, null, null, null },
125978 .dst_constraints = .{ .{ .signed_int = .word }, .any },
125979 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
125980 .patterns = &.{
125981 .{ .src = .{ .to_mut_sse, .none, .none } },
125982 },
125983 .extra_temps = .{
125984 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
125985 .unused,
125986 .unused,
125987 .unused,
125988 .unused,
125989 .unused,
125990 .unused,
125991 .unused,
125992 .unused,
125993 .unused,
125994 .unused,
125995 },
125996 .dst_temps = .{ .{ .ref = .src0 }, .unused },
125997 .each = .{ .once = &.{
125998 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
125999 .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
126000 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
126001 .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
126002 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
126003 .{ ._, .p_w, .mins, .dst0x, .tmp0x, ._, ._ },
126004 } },
126005 }, .{
126006 .required_features = .{ .avx, null, null, null },
126007 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126008 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
126009 .patterns = &.{
126010 .{ .src = .{ .to_sse, .none, .none } },
126011 },
126012 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126013 .each = .{ .once = &.{
126014 .{ ._, .vph_w, .minposu, .dst0x, .src0x, ._, ._ },
126015 } },
126016 }, .{
126017 .required_features = .{ .sse4_1, null, null, null },
126018 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126019 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
126020 .patterns = &.{
126021 .{ .src = .{ .to_sse, .none, .none } },
126022 },
126023 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126024 .each = .{ .once = &.{
126025 .{ ._, .ph_w, .minposu, .dst0x, .src0x, ._, ._ },
126026 } },
126027 }, .{
126028 .required_features = .{ .sse2, null, null, null },
126029 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126030 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
126031 .patterns = &.{
126032 .{ .src = .{ .to_mut_sse, .none, .none } },
126033 },
126034 .extra_temps = .{
126035 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126036 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126037 .unused,
126038 .unused,
126039 .unused,
126040 .unused,
126041 .unused,
126042 .unused,
126043 .unused,
126044 .unused,
126045 .unused,
126046 },
126047 .dst_temps = .{ .{ .ref = .src0 }, .unused },
126048 .each = .{ .once = &.{
126049 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
126050 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
126051 .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
126052 .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
126053 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
126054 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
126055 .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
126056 .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
126057 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
126058 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
126059 .{ ._, .p_w, .subus, .tmp1x, .tmp0x, ._, ._ },
126060 .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
126061 } },
126062 }, .{
126063 .required_features = .{ .avx2, null, null, null },
126064 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126065 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
126066 .patterns = &.{
126067 .{ .src = .{ .mem, .none, .none } },
126068 .{ .src = .{ .to_sse, .none, .none } },
126069 },
126070 .extra_temps = .{
126071 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126072 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126073 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
126074 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126075 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126076 .unused,
126077 .unused,
126078 .unused,
126079 .unused,
126080 .unused,
126081 .unused,
126082 },
126083 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126084 .each = .{ .once = &.{
126085 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126086 .{ ._, .vp_w, .broadcast, .tmp2y, .lea(.tmp0w), ._, ._ },
126087 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
126088 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
126089 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
126090 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
126091 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
126092 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126093 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
126094 } },
126095 }, .{
126096 .required_features = .{ .avx, null, null, null },
126097 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126098 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
126099 .patterns = &.{
126100 .{ .src = .{ .mem, .none, .none } },
126101 .{ .src = .{ .to_sse, .none, .none } },
126102 },
126103 .extra_temps = .{
126104 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126105 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126106 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
126107 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126108 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126109 .unused,
126110 .unused,
126111 .unused,
126112 .unused,
126113 .unused,
126114 .unused,
126115 },
126116 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126117 .each = .{ .once = &.{
126118 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126119 .{ ._, .v_ss, .broadcast, .tmp2y, .lea(.tmp0d), ._, ._ },
126120 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
126121 .{ ._, .v_ps, .xor, .dst0y, .tmp2y, .src0y, ._ },
126122 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
126123 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
126124 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
126125 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126126 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
126127 } },
126128 }, .{
126129 .required_features = .{ .avx2, null, null, null },
126130 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126131 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
126132 .patterns = &.{
126133 .{ .src = .{ .to_sse, .none, .none } },
126134 },
126135 .extra_temps = .{
126136 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126137 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126138 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126139 .unused,
126140 .unused,
126141 .unused,
126142 .unused,
126143 .unused,
126144 .unused,
126145 .unused,
126146 .unused,
126147 },
126148 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126149 .each = .{ .once = &.{
126150 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126151 .{ ._, .vp_, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
126152 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
126153 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
126154 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126155 } },
126156 }, .{
126157 .required_features = .{ .avx, null, null, null },
126158 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126159 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
126160 .patterns = &.{
126161 .{ .src = .{ .to_sse, .none, .none } },
126162 },
126163 .extra_temps = .{
126164 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126165 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126166 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126167 .unused,
126168 .unused,
126169 .unused,
126170 .unused,
126171 .unused,
126172 .unused,
126173 .unused,
126174 .unused,
126175 },
126176 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126177 .each = .{ .once = &.{
126178 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126179 .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
126180 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
126181 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
126182 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126183 } },
126184 }, .{
126185 .required_features = .{ .avx2, null, null, null },
126186 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126187 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
126188 .patterns = &.{
126189 .{ .src = .{ .to_sse, .none, .none } },
126190 },
126191 .extra_temps = .{
126192 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126193 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126194 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126195 .unused,
126196 .unused,
126197 .unused,
126198 .unused,
126199 .unused,
126200 .unused,
126201 .unused,
126202 .unused,
126203 },
126204 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126205 .each = .{ .once = &.{
126206 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
126207 .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
126208 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
126209 .{ ._, .vp_w, .broadcast, .tmp0x, .lea(.tmp1w), ._, ._ },
126210 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126211 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126212 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126213 } },
126214 }, .{
126215 .required_features = .{ .avx, null, null, null },
126216 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126217 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
126218 .patterns = &.{
126219 .{ .src = .{ .to_sse, .none, .none } },
126220 },
126221 .extra_temps = .{
126222 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126223 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126224 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126225 .unused,
126226 .unused,
126227 .unused,
126228 .unused,
126229 .unused,
126230 .unused,
126231 .unused,
126232 .unused,
126233 },
126234 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126235 .each = .{ .once = &.{
126236 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
126237 .{ ._, .vp_w, .mins, .dst0x, .src0x, .tmp0x, ._ },
126238 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
126239 .{ ._, .v_ss, .broadcast, .tmp0x, .lea(.tmp1d), ._, ._ },
126240 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126241 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126242 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126243 } },
126244 }, .{
126245 .required_features = .{ .avx2, null, null, null },
126246 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126247 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
126248 .patterns = &.{
126249 .{ .src = .{ .to_sse, .none, .none } },
126250 },
126251 .extra_temps = .{
126252 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126253 .unused,
126254 .unused,
126255 .unused,
126256 .unused,
126257 .unused,
126258 .unused,
126259 .unused,
126260 .unused,
126261 .unused,
126262 .unused,
126263 },
126264 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126265 .each = .{ .once = &.{
126266 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
126267 .{ ._, .vp_w, .minu, .dst0x, .src0x, .tmp0x, ._ },
126268 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126269 } },
126270 }, .{
126271 .required_features = .{ .avx, null, null, null },
126272 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126273 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
126274 .patterns = &.{
126275 .{ .src = .{ .to_sse, .none, .none } },
126276 },
126277 .extra_temps = .{
126278 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126279 .unused,
126280 .unused,
126281 .unused,
126282 .unused,
126283 .unused,
126284 .unused,
126285 .unused,
126286 .unused,
126287 .unused,
126288 .unused,
126289 },
126290 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
126291 .each = .{ .once = &.{
126292 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
126293 .{ ._, .vp_w, .minu, .dst0x, .src0x, .tmp0x, ._ },
126294 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126295 } },
126296 }, .{
126297 .required_features = .{ .avx512f, null, null, null },
126298 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126299 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
126300 .patterns = &.{
126301 .{ .src = .{ .to_mem, .none, .none } },
126302 },
126303 .extra_temps = .{
126304 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126305 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126306 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
126307 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126308 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
126309 .unused,
126310 .unused,
126311 .unused,
126312 .unused,
126313 .unused,
126314 .unused,
126315 },
126316 .dst_temps = .{ .{ .rc = .sse }, .unused },
126317 .each = .{ .once = &.{
126318 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126319 .{ ._, .vp_w, .broadcast, .tmp2y, .lea(.tmp0w), ._, ._ },
126320 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
126321 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
126322 .{ ._, .vp_, .xor, .tmp4y, .tmp2y, .memd(.src0y, 32), ._ },
126323 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
126324 .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
126325 .{ ._, .vp_w, .minu, .dst0y, .dst0y, .tmp4y, ._ },
126326 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
126327 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
126328 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
126329 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126330 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
126331 } },
126332 }, .{
126333 .required_features = .{ .avx512f, null, null, null },
126334 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126335 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
126336 .patterns = &.{
126337 .{ .src = .{ .to_mem, .none, .none } },
126338 },
126339 .extra_temps = .{
126340 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126341 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126342 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
126343 .unused,
126344 .unused,
126345 .unused,
126346 .unused,
126347 .unused,
126348 .unused,
126349 .unused,
126350 .unused,
126351 },
126352 .dst_temps = .{ .{ .rc = .sse }, .unused },
126353 .each = .{ .once = &.{
126354 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126355 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
126356 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
126357 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .mem(.src0y), ._ },
126358 .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
126359 .{ ._, .vp_w, .minu, .dst0y, .dst0y, .tmp2y, ._ },
126360 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
126361 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
126362 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126363 } },
126364 }, .{
126365 .required_features = .{ .avx512f, null, null, null },
126366 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126367 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
126368 .patterns = &.{
126369 .{ .src = .{ .to_mem, .none, .none } },
126370 },
126371 .extra_temps = .{
126372 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126373 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
126374 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126375 .unused,
126376 .unused,
126377 .unused,
126378 .unused,
126379 .unused,
126380 .unused,
126381 .unused,
126382 .unused,
126383 },
126384 .dst_temps = .{ .{ .rc = .sse }, .unused },
126385 .each = .{ .once = &.{
126386 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
126387 .{ ._, .vp_w, .mins, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
126388 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
126389 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp0x, ._ },
126390 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
126391 .{ ._, .vp_w, .broadcast, .tmp0x, .lea(.tmp1w), ._, ._ },
126392 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126393 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126394 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
126395 } },
126396 }, .{
126397 .required_features = .{ .avx512f, null, null, null },
126398 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126399 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
126400 .patterns = &.{
126401 .{ .src = .{ .to_mem, .none, .none } },
126402 },
126403 .extra_temps = .{
126404 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126405 .unused,
126406 .unused,
126407 .unused,
126408 .unused,
126409 .unused,
126410 .unused,
126411 .unused,
126412 .unused,
126413 .unused,
126414 .unused,
126415 },
126416 .dst_temps = .{ .{ .rc = .sse }, .unused },
126417 .each = .{ .once = &.{
126418 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
126419 .{ ._, .vp_w, .minu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
126420 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
126421 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp0x, ._ },
126422 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126423 } },
126424 }, .{
126425 .required_features = .{ .avx2, null, null, null },
126426 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126427 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
126428 .patterns = &.{
126429 .{ .src = .{ .to_mem, .none, .none } },
126430 },
126431 .extra_temps = .{
126432 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126433 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126434 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126435 .unused,
126436 .unused,
126437 .unused,
126438 .unused,
126439 .unused,
126440 .unused,
126441 .unused,
126442 .unused,
126443 },
126444 .dst_temps = .{ .{ .rc = .sse }, .unused },
126445 .clobbers = .{ .eflags = true },
126446 .each = .{ .once = &.{
126447 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
126448 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
126449 .{ .@"0:", .vp_w, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
126450 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
126451 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126452 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
126453 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp1x, ._ },
126454 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
126455 .{ ._, .vp_w, .broadcast, .tmp1x, .lea(.tmp0w), ._, ._ },
126456 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
126457 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126458 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
126459 } },
126460 }, .{
126461 .required_features = .{ .avx, null, null, null },
126462 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126463 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
126464 .patterns = &.{
126465 .{ .src = .{ .to_mem, .none, .none } },
126466 },
126467 .extra_temps = .{
126468 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126469 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126470 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126471 .unused,
126472 .unused,
126473 .unused,
126474 .unused,
126475 .unused,
126476 .unused,
126477 .unused,
126478 .unused,
126479 },
126480 .dst_temps = .{ .{ .rc = .sse }, .unused },
126481 .clobbers = .{ .eflags = true },
126482 .each = .{ .once = &.{
126483 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
126484 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
126485 .{ .@"0:", .vp_w, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
126486 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126487 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126488 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126489 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
126490 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
126491 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126492 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
126493 } },
126494 }, .{
126495 .required_features = .{ .sse4_1, null, null, null },
126496 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126497 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
126498 .patterns = &.{
126499 .{ .src = .{ .to_mem, .none, .none } },
126500 },
126501 .extra_temps = .{
126502 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126503 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126504 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126505 .unused,
126506 .unused,
126507 .unused,
126508 .unused,
126509 .unused,
126510 .unused,
126511 .unused,
126512 .unused,
126513 },
126514 .dst_temps = .{ .{ .rc = .sse }, .unused },
126515 .clobbers = .{ .eflags = true },
126516 .each = .{ .once = &.{
126517 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
126518 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
126519 .{ .@"0:", .p_w, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
126520 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126521 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126522 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126523 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
126524 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
126525 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126526 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
126527 } },
126528 }, .{
126529 .required_features = .{ .sse2, null, null, null },
126530 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126531 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
126532 .patterns = &.{
126533 .{ .src = .{ .to_mem, .none, .none } },
126534 },
126535 .extra_temps = .{
126536 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126537 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126538 .unused,
126539 .unused,
126540 .unused,
126541 .unused,
126542 .unused,
126543 .unused,
126544 .unused,
126545 .unused,
126546 .unused,
126547 },
126548 .dst_temps = .{ .{ .rc = .sse }, .unused },
126549 .clobbers = .{ .eflags = true },
126550 .each = .{ .once = &.{
126551 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
126552 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
126553 .{ .@"0:", .p_w, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
126554 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126555 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126556 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
126557 .{ ._, .p_w, .mins, .dst0x, .tmp1x, ._, ._ },
126558 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
126559 .{ ._, .p_w, .mins, .dst0x, .tmp1x, ._, ._ },
126560 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
126561 .{ ._, .p_w, .mins, .dst0x, .tmp1x, ._, ._ },
126562 } },
126563 }, .{
126564 .required_features = .{ .avx2, null, null, null },
126565 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126566 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
126567 .patterns = &.{
126568 .{ .src = .{ .to_mem, .none, .none } },
126569 },
126570 .extra_temps = .{
126571 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126572 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126573 .unused,
126574 .unused,
126575 .unused,
126576 .unused,
126577 .unused,
126578 .unused,
126579 .unused,
126580 .unused,
126581 .unused,
126582 },
126583 .dst_temps = .{ .{ .rc = .sse }, .unused },
126584 .clobbers = .{ .eflags = true },
126585 .each = .{ .once = &.{
126586 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
126587 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
126588 .{ .@"0:", .vp_w, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
126589 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
126590 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126591 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
126592 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp1x, ._ },
126593 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126594 } },
126595 }, .{
126596 .required_features = .{ .avx, null, null, null },
126597 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126598 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
126599 .patterns = &.{
126600 .{ .src = .{ .to_mem, .none, .none } },
126601 },
126602 .extra_temps = .{
126603 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126604 .unused,
126605 .unused,
126606 .unused,
126607 .unused,
126608 .unused,
126609 .unused,
126610 .unused,
126611 .unused,
126612 .unused,
126613 .unused,
126614 },
126615 .dst_temps = .{ .{ .rc = .sse }, .unused },
126616 .clobbers = .{ .eflags = true },
126617 .each = .{ .once = &.{
126618 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
126619 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
126620 .{ .@"0:", .vp_w, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
126621 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126622 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126623 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126624 } },
126625 }, .{
126626 .required_features = .{ .sse4_1, null, null, null },
126627 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126628 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
126629 .patterns = &.{
126630 .{ .src = .{ .to_mem, .none, .none } },
126631 },
126632 .extra_temps = .{
126633 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126634 .unused,
126635 .unused,
126636 .unused,
126637 .unused,
126638 .unused,
126639 .unused,
126640 .unused,
126641 .unused,
126642 .unused,
126643 .unused,
126644 },
126645 .dst_temps = .{ .{ .rc = .sse }, .unused },
126646 .clobbers = .{ .eflags = true },
126647 .each = .{ .once = &.{
126648 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
126649 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
126650 .{ .@"0:", .p_w, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
126651 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126652 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126653 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126654 } },
126655 }, .{
126656 .required_features = .{ .sse2, null, null, null },
126657 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126658 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
126659 .patterns = &.{
126660 .{ .src = .{ .to_mem, .none, .none } },
126661 },
126662 .extra_temps = .{
126663 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126664 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126665 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126666 .unused,
126667 .unused,
126668 .unused,
126669 .unused,
126670 .unused,
126671 .unused,
126672 .unused,
126673 .unused,
126674 },
126675 .dst_temps = .{ .{ .rc = .sse }, .unused },
126676 .clobbers = .{ .eflags = true },
126677 .each = .{ .once = &.{
126678 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
126679 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
126680 .{ .@"0:", ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
126681 .{ ._, .p_w, .subus, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
126682 .{ ._, .p_w, .sub, .dst0x, .tmp1x, ._, ._ },
126683 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126684 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126685 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
126686 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
126687 .{ ._, .p_w, .subus, .tmp2x, .tmp1x, ._, ._ },
126688 .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
126689 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
126690 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
126691 .{ ._, .p_w, .subus, .tmp2x, .tmp1x, ._, ._ },
126692 .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
126693 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
126694 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
126695 .{ ._, .p_w, .subus, .tmp2x, .tmp1x, ._, ._ },
126696 .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
126697 } },
126698 }, .{
126699 .required_features = .{ .avx512f, null, null, null },
126700 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126701 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
126702 .patterns = &.{
126703 .{ .src = .{ .to_mem, .none, .none } },
126704 },
126705 .extra_temps = .{
126706 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126707 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126708 .{ .type = .vector_32_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126709 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
126710 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126711 .unused,
126712 .unused,
126713 .unused,
126714 .unused,
126715 .unused,
126716 .unused,
126717 },
126718 .dst_temps = .{ .{ .rc = .sse }, .unused },
126719 .clobbers = .{ .eflags = true },
126720 .each = .{ .once = &.{
126721 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126722 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
126723 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
126724 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
126725 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
126726 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
126727 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
126728 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
126729 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
126730 .{ .@"0:", .vp_w, .mins, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
126731 .{ ._, .vp_w, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
126732 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
126733 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126734 .{ ._, .vp_w, .mins, .dst0y, .dst0y, .tmp3y, ._ },
126735 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
126736 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp3x, ._ },
126737 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
126738 .{ ._, .vp_w, .broadcast, .tmp3x, .lea(.tmp0w), ._, ._ },
126739 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126740 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126741 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126742 } },
126743 }, .{
126744 .required_features = .{ .avx2, null, null, null },
126745 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126746 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
126747 .patterns = &.{
126748 .{ .src = .{ .to_mem, .none, .none } },
126749 },
126750 .extra_temps = .{
126751 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126752 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126753 .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126754 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126755 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126756 .unused,
126757 .unused,
126758 .unused,
126759 .unused,
126760 .unused,
126761 .unused,
126762 },
126763 .dst_temps = .{ .{ .rc = .sse }, .unused },
126764 .clobbers = .{ .eflags = true },
126765 .each = .{ .once = &.{
126766 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126767 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
126768 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
126769 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
126770 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
126771 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
126772 .{ .@"0:", .vp_w, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
126773 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
126774 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126775 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
126776 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp3x, ._ },
126777 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
126778 .{ ._, .vp_w, .broadcast, .tmp3x, .lea(.tmp0w), ._, ._ },
126779 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126780 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126781 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126782 } },
126783 }, .{
126784 .required_features = .{ .avx, null, null, null },
126785 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126786 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
126787 .patterns = &.{
126788 .{ .src = .{ .to_mem, .none, .none } },
126789 },
126790 .extra_temps = .{
126791 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126792 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126793 .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126794 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126795 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126796 .unused,
126797 .unused,
126798 .unused,
126799 .unused,
126800 .unused,
126801 .unused,
126802 },
126803 .dst_temps = .{ .{ .rc = .sse }, .unused },
126804 .clobbers = .{ .eflags = true },
126805 .each = .{ .once = &.{
126806 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126807 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
126808 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
126809 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
126810 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
126811 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
126812 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
126813 .{ ._, .vp_w, .mins, .dst0x, .dst0x, .tmp3x, ._ },
126814 .{ .@"0:", .vp_w, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
126815 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126816 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126817 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
126818 .{ ._, .v_ss, .broadcast, .tmp3x, .lea(.tmp0d), ._, ._ },
126819 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126820 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126821 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
126822 } },
126823 }, .{
126824 .required_features = .{ .sse4_1, null, null, null },
126825 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126826 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
126827 .patterns = &.{
126828 .{ .src = .{ .to_mem, .none, .none } },
126829 },
126830 .extra_temps = .{
126831 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126832 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126833 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126834 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
126835 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126836 .unused,
126837 .unused,
126838 .unused,
126839 .unused,
126840 .unused,
126841 .unused,
126842 },
126843 .dst_temps = .{ .{ .rc = .sse }, .unused },
126844 .clobbers = .{ .eflags = true },
126845 .each = .{ .once = &.{
126846 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126847 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
126848 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
126849 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
126850 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
126851 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
126852 .{ .@"0:", .p_w, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
126853 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126854 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126855 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
126856 .{ ._, ._, .movddup, .tmp4x, .lea(.tmp0q), ._, ._ },
126857 .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
126858 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126859 .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
126860 } },
126861 }, .{
126862 .required_features = .{ .sse2, null, null, null },
126863 .dst_constraints = .{ .{ .signed_int = .word }, .any },
126864 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
126865 .patterns = &.{
126866 .{ .src = .{ .to_mem, .none, .none } },
126867 },
126868 .extra_temps = .{
126869 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126870 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
126871 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
126872 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
126873 .unused,
126874 .unused,
126875 .unused,
126876 .unused,
126877 .unused,
126878 .unused,
126879 .unused,
126880 },
126881 .dst_temps = .{ .{ .rc = .sse }, .unused },
126882 .clobbers = .{ .eflags = true },
126883 .each = .{ .once = &.{
126884 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126885 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
126886 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
126887 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
126888 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
126889 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
126890 .{ .@"0:", .p_w, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
126891 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
126892 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126893 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
126894 .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
126895 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
126896 .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
126897 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
126898 .{ ._, .p_w, .mins, .dst0x, .tmp3x, ._, ._ },
126899 } },
126900 }, .{
126901 .required_features = .{ .avx512f, null, null, null },
126902 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126903 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
126904 .patterns = &.{
126905 .{ .src = .{ .to_mem, .none, .none } },
126906 },
126907 .extra_temps = .{
126908 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126909 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126910 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
126911 .unused,
126912 .unused,
126913 .unused,
126914 .unused,
126915 .unused,
126916 .unused,
126917 .unused,
126918 .unused,
126919 },
126920 .dst_temps = .{ .{ .rc = .sse }, .unused },
126921 .clobbers = .{ .eflags = true },
126922 .each = .{ .once = &.{
126923 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126924 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
126925 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
126926 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
126927 .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
126928 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
126929 .{ .@"0:", .vp_w, .minu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
126930 .{ ._, .vp_w, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
126931 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
126932 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126933 .{ ._, .vp_w, .minu, .dst0y, .dst0y, .tmp2y, ._ },
126934 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
126935 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
126936 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126937 } },
126938 }, .{
126939 .required_features = .{ .avx2, null, null, null },
126940 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126941 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
126942 .patterns = &.{
126943 .{ .src = .{ .to_mem, .none, .none } },
126944 },
126945 .extra_temps = .{
126946 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126947 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126948 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126949 .unused,
126950 .unused,
126951 .unused,
126952 .unused,
126953 .unused,
126954 .unused,
126955 .unused,
126956 .unused,
126957 },
126958 .dst_temps = .{ .{ .rc = .sse }, .unused },
126959 .clobbers = .{ .eflags = true },
126960 .each = .{ .once = &.{
126961 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126962 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
126963 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
126964 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
126965 .{ .@"0:", .vp_w, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
126966 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
126967 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
126968 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
126969 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
126970 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
126971 } },
126972 }, .{
126973 .required_features = .{ .avx, null, null, null },
126974 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
126975 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
126976 .patterns = &.{
126977 .{ .src = .{ .to_mem, .none, .none } },
126978 },
126979 .extra_temps = .{
126980 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
126981 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
126982 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
126983 .unused,
126984 .unused,
126985 .unused,
126986 .unused,
126987 .unused,
126988 .unused,
126989 .unused,
126990 .unused,
126991 },
126992 .dst_temps = .{ .{ .rc = .sse }, .unused },
126993 .clobbers = .{ .eflags = true },
126994 .each = .{ .once = &.{
126995 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
126996 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
126997 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
126998 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
126999 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
127000 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp2x, ._ },
127001 .{ .@"0:", .vp_w, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
127002 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
127003 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127004 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
127005 } },
127006 }, .{
127007 .required_features = .{ .sse4_1, null, null, null },
127008 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
127009 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
127010 .patterns = &.{
127011 .{ .src = .{ .to_mem, .none, .none } },
127012 },
127013 .extra_temps = .{
127014 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
127015 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
127016 .unused,
127017 .unused,
127018 .unused,
127019 .unused,
127020 .unused,
127021 .unused,
127022 .unused,
127023 .unused,
127024 .unused,
127025 },
127026 .dst_temps = .{ .{ .rc = .sse }, .unused },
127027 .clobbers = .{ .eflags = true },
127028 .each = .{ .once = &.{
127029 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127030 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
127031 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
127032 .{ ._, .p_, .@"or", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
127033 .{ .@"0:", .p_w, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
127034 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
127035 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127036 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
127037 } },
127038 }, .{
127039 .required_features = .{ .sse2, null, null, null },
127040 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
127041 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
127042 .patterns = &.{
127043 .{ .src = .{ .to_mem, .none, .none } },
127044 },
127045 .extra_temps = .{
127046 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
127047 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
127048 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
127049 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
127050 .unused,
127051 .unused,
127052 .unused,
127053 .unused,
127054 .unused,
127055 .unused,
127056 .unused,
127057 },
127058 .dst_temps = .{ .{ .rc = .sse }, .unused },
127059 .clobbers = .{ .eflags = true },
127060 .each = .{ .once = &.{
127061 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127062 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
127063 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
127064 .{ ._, .p_, .@"or", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
127065 .{ .@"0:", ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
127066 .{ ._, .p_w, .subus, .tmp2x, .memi(.src0x, .tmp0), ._, ._ },
127067 .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
127068 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
127069 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127070 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
127071 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
127072 .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
127073 .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
127074 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
127075 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
127076 .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
127077 .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
127078 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
127079 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
127080 .{ ._, .p_w, .subus, .tmp3x, .tmp2x, ._, ._ },
127081 .{ ._, .p_w, .sub, .dst0x, .tmp3x, ._, ._ },
127082 } },
127083 }, .{
127084 .required_features = .{ .cmov, null, null, null },
127085 .dst_constraints = .{ .{ .signed_int = .word }, .any },
127086 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
127087 .patterns = &.{
127088 .{ .src = .{ .to_mem, .none, .none } },
127089 },
127090 .extra_temps = .{
127091 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
127092 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
127093 .unused,
127094 .unused,
127095 .unused,
127096 .unused,
127097 .unused,
127098 .unused,
127099 .unused,
127100 .unused,
127101 .unused,
127102 },
127103 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
127104 .clobbers = .{ .eflags = true },
127105 .each = .{ .once = &.{
127106 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
127107 .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
127108 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
127109 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
127110 .{ ._, ._nl, .cmov, .dst0d, .tmp1d, ._, ._ },
127111 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
127112 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127113 } },
127114 }, .{
127115 .dst_constraints = .{ .{ .signed_int = .word }, .any },
127116 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
127117 .patterns = &.{
127118 .{ .src = .{ .to_mem, .none, .none } },
127119 },
127120 .extra_temps = .{
127121 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
127122 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
127123 .unused,
127124 .unused,
127125 .unused,
127126 .unused,
127127 .unused,
127128 .unused,
127129 .unused,
127130 .unused,
127131 .unused,
127132 },
127133 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
127134 .clobbers = .{ .eflags = true },
127135 .each = .{ .once = &.{
127136 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
127137 .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
127138 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
127139 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
127140 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
127141 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
127142 .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
127143 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127144 } },
127145 }, .{
127146 .required_features = .{ .cmov, null, null, null },
127147 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
127148 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
127149 .patterns = &.{
127150 .{ .src = .{ .to_mem, .none, .none } },
127151 },
127152 .extra_temps = .{
127153 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
127154 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
127155 .unused,
127156 .unused,
127157 .unused,
127158 .unused,
127159 .unused,
127160 .unused,
127161 .unused,
127162 .unused,
127163 .unused,
127164 },
127165 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
127166 .clobbers = .{ .eflags = true },
127167 .each = .{ .once = &.{
127168 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
127169 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
127170 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
127171 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
127172 .{ ._, ._nb, .cmov, .dst0d, .tmp1d, ._, ._ },
127173 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
127174 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127175 } },
127176 }, .{
127177 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
127178 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
127179 .patterns = &.{
127180 .{ .src = .{ .to_mem, .none, .none } },
127181 },
127182 .extra_temps = .{
127183 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
127184 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
127185 .unused,
127186 .unused,
127187 .unused,
127188 .unused,
127189 .unused,
127190 .unused,
127191 .unused,
127192 .unused,
127193 .unused,
127194 },
127195 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
127196 .clobbers = .{ .eflags = true },
127197 .each = .{ .once = &.{
127198 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
127199 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
127200 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
127201 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
127202 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
127203 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
127204 .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
127205 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
127206 } },
127207 }, .{
127208 .required_features = .{ .avx, null, null, null },
127209 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127210 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
127211 .patterns = &.{
127212 .{ .src = .{ .to_sse, .none, .none } },
127213 },
127214 .extra_temps = .{
127215 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127216 .unused,
127217 .unused,
127218 .unused,
127219 .unused,
127220 .unused,
127221 .unused,
127222 .unused,
127223 .unused,
127224 .unused,
127225 .unused,
127226 },
127227 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127228 .each = .{ .once = &.{
127229 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127230 .{ ._, .vp_d, .mins, .dst0x, .src0x, .tmp0x, ._ },
127231 } },
127232 }, .{
127233 .required_features = .{ .sse4_1, null, null, null },
127234 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127235 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
127236 .patterns = &.{
127237 .{ .src = .{ .to_mut_sse, .none, .none } },
127238 },
127239 .extra_temps = .{
127240 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127241 .unused,
127242 .unused,
127243 .unused,
127244 .unused,
127245 .unused,
127246 .unused,
127247 .unused,
127248 .unused,
127249 .unused,
127250 .unused,
127251 },
127252 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127253 .each = .{ .once = &.{
127254 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127255 .{ ._, .p_d, .mins, .dst0x, .tmp0x, ._, ._ },
127256 } },
127257 }, .{
127258 .required_features = .{ .sse2, null, null, null },
127259 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127260 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
127261 .patterns = &.{
127262 .{ .src = .{ .to_mut_sse, .none, .none } },
127263 },
127264 .extra_temps = .{
127265 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127266 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127267 .unused,
127268 .unused,
127269 .unused,
127270 .unused,
127271 .unused,
127272 .unused,
127273 .unused,
127274 .unused,
127275 .unused,
127276 },
127277 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127278 .each = .{ .once = &.{
127279 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127280 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
127281 .{ ._, .p_d, .cmpgt, .tmp1x, .src0x, ._, ._ },
127282 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
127283 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
127284 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
127285 } },
127286 }, .{
127287 .required_features = .{ .avx, null, null, null },
127288 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127289 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
127290 .patterns = &.{
127291 .{ .src = .{ .to_sse, .none, .none } },
127292 },
127293 .extra_temps = .{
127294 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
127295 .unused,
127296 .unused,
127297 .unused,
127298 .unused,
127299 .unused,
127300 .unused,
127301 .unused,
127302 .unused,
127303 .unused,
127304 .unused,
127305 },
127306 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127307 .each = .{ .once = &.{
127308 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127309 .{ ._, .vp_d, .minu, .dst0x, .src0x, .tmp0x, ._ },
127310 } },
127311 }, .{
127312 .required_features = .{ .sse4_1, null, null, null },
127313 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127314 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
127315 .patterns = &.{
127316 .{ .src = .{ .to_mut_sse, .none, .none } },
127317 },
127318 .extra_temps = .{
127319 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
127320 .unused,
127321 .unused,
127322 .unused,
127323 .unused,
127324 .unused,
127325 .unused,
127326 .unused,
127327 .unused,
127328 .unused,
127329 .unused,
127330 },
127331 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127332 .each = .{ .once = &.{
127333 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127334 .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
127335 } },
127336 }, .{
127337 .required_features = .{ .sse3, null, null, null },
127338 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127339 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
127340 .patterns = &.{
127341 .{ .src = .{ .to_mut_sse, .none, .none } },
127342 },
127343 .extra_temps = .{
127344 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127345 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127346 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127347 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127348 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127349 .unused,
127350 .unused,
127351 .unused,
127352 .unused,
127353 .unused,
127354 .unused,
127355 },
127356 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127357 .each = .{ .once = &.{
127358 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127359 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
127360 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127361 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127362 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127363 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127364 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127365 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127366 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127367 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127368 } },
127369 }, .{
127370 .required_features = .{ .sse2, null, null, null },
127371 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127372 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
127373 .patterns = &.{
127374 .{ .src = .{ .to_mut_sse, .none, .none } },
127375 },
127376 .extra_temps = .{
127377 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127378 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127379 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127380 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127381 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127382 .unused,
127383 .unused,
127384 .unused,
127385 .unused,
127386 .unused,
127387 .unused,
127388 },
127389 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127390 .each = .{ .once = &.{
127391 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127392 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
127393 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127394 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127395 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127396 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127397 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127398 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127399 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127400 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127401 } },
127402 }, .{
127403 .required_features = .{ .avx, null, null, null },
127404 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127405 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127406 .patterns = &.{
127407 .{ .src = .{ .to_sse, .none, .none } },
127408 },
127409 .extra_temps = .{
127410 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127411 .unused,
127412 .unused,
127413 .unused,
127414 .unused,
127415 .unused,
127416 .unused,
127417 .unused,
127418 .unused,
127419 .unused,
127420 .unused,
127421 },
127422 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127423 .each = .{ .once = &.{
127424 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127425 .{ ._, .vp_d, .mins, .tmp0x, .src0x, .tmp0x, ._ },
127426 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
127427 .{ ._, .vp_d, .mins, .dst0x, .tmp0x, .dst0x, ._ },
127428 } },
127429 }, .{
127430 .required_features = .{ .sse4_1, null, null, null },
127431 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127432 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127433 .patterns = &.{
127434 .{ .src = .{ .to_sse, .none, .none } },
127435 },
127436 .extra_temps = .{
127437 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127438 .unused,
127439 .unused,
127440 .unused,
127441 .unused,
127442 .unused,
127443 .unused,
127444 .unused,
127445 .unused,
127446 .unused,
127447 .unused,
127448 },
127449 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127450 .each = .{ .once = &.{
127451 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127452 .{ ._, .p_d, .mins, .tmp0x, .src0x, ._, ._ },
127453 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
127454 .{ ._, .p_d, .mins, .dst0x, .tmp0x, ._, ._ },
127455 } },
127456 }, .{
127457 .required_features = .{ .sse2, null, null, null },
127458 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127459 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127460 .patterns = &.{
127461 .{ .src = .{ .to_mut_sse, .none, .none } },
127462 },
127463 .extra_temps = .{
127464 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127465 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127466 .unused,
127467 .unused,
127468 .unused,
127469 .unused,
127470 .unused,
127471 .unused,
127472 .unused,
127473 .unused,
127474 .unused,
127475 },
127476 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127477 .each = .{ .once = &.{
127478 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
127479 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
127480 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
127481 .{ ._, .p_, .@"and", .tmp0x, .tmp1x, ._, ._ },
127482 .{ ._, .p_, .andn, .tmp1x, .src0x, ._, ._ },
127483 .{ ._, .p_, .@"or", .tmp0x, .tmp1x, ._, ._ },
127484 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
127485 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
127486 .{ ._, .p_d, .cmpgt, .tmp1x, .dst0x, ._, ._ },
127487 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
127488 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
127489 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
127490 } },
127491 }, .{
127492 .required_features = .{ .avx, null, null, null },
127493 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127494 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127495 .patterns = &.{
127496 .{ .src = .{ .to_sse, .none, .none } },
127497 },
127498 .extra_temps = .{
127499 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
127500 .unused,
127501 .unused,
127502 .unused,
127503 .unused,
127504 .unused,
127505 .unused,
127506 .unused,
127507 .unused,
127508 .unused,
127509 .unused,
127510 },
127511 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127512 .each = .{ .once = &.{
127513 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127514 .{ ._, .vp_d, .minu, .tmp0x, .src0x, .tmp0x, ._ },
127515 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
127516 .{ ._, .vp_d, .minu, .dst0x, .tmp0x, .dst0x, ._ },
127517 } },
127518 }, .{
127519 .required_features = .{ .sse4_1, null, null, null },
127520 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127521 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127522 .patterns = &.{
127523 .{ .src = .{ .to_mut_sse, .none, .none } },
127524 },
127525 .extra_temps = .{
127526 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
127527 .unused,
127528 .unused,
127529 .unused,
127530 .unused,
127531 .unused,
127532 .unused,
127533 .unused,
127534 .unused,
127535 .unused,
127536 .unused,
127537 },
127538 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127539 .each = .{ .once = &.{
127540 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
127541 .{ ._, .p_d, .minu, .tmp0x, .src0x, ._, ._ },
127542 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
127543 .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
127544 } },
127545 }, .{
127546 .required_features = .{ .sse3, null, null, null },
127547 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127548 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127549 .patterns = &.{
127550 .{ .src = .{ .to_mut_sse, .none, .none } },
127551 },
127552 .extra_temps = .{
127553 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127554 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127555 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127556 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127557 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127558 .unused,
127559 .unused,
127560 .unused,
127561 .unused,
127562 .unused,
127563 .unused,
127564 },
127565 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127566 .each = .{ .once = &.{
127567 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127568 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
127569 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127570 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127571 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
127572 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
127573 .{ ._, .p_, .@"and", .tmp3x, .tmp4x, ._, ._ },
127574 .{ ._, .p_, .andn, .tmp4x, .dst0x, ._, ._ },
127575 .{ ._, .p_, .@"or", .tmp3x, .tmp4x, ._, ._ },
127576 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
127577 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127578 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127579 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127580 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127581 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127582 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127583 } },
127584 }, .{
127585 .required_features = .{ .sse2, null, null, null },
127586 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127587 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127588 .patterns = &.{
127589 .{ .src = .{ .to_mut_sse, .none, .none } },
127590 },
127591 .extra_temps = .{
127592 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127593 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127594 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127595 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127596 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127597 .unused,
127598 .unused,
127599 .unused,
127600 .unused,
127601 .unused,
127602 .unused,
127603 },
127604 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127605 .each = .{ .once = &.{
127606 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127607 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
127608 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127609 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127610 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
127611 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
127612 .{ ._, .p_, .@"and", .tmp3x, .tmp4x, ._, ._ },
127613 .{ ._, .p_, .andn, .tmp4x, .dst0x, ._, ._ },
127614 .{ ._, .p_, .@"or", .tmp3x, .tmp4x, ._, ._ },
127615 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
127616 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127617 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127618 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127619 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127620 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127621 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127622 } },
127623 }, .{
127624 .required_features = .{ .avx, null, null, null },
127625 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127626 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127627 .patterns = &.{
127628 .{ .src = .{ .to_sse, .none, .none } },
127629 },
127630 .extra_temps = .{
127631 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
127632 .unused,
127633 .unused,
127634 .unused,
127635 .unused,
127636 .unused,
127637 .unused,
127638 .unused,
127639 .unused,
127640 .unused,
127641 .unused,
127642 },
127643 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127644 .each = .{ .once = &.{
127645 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
127646 .{ ._, .vp_d, .mins, .dst0x, .src0x, .tmp0x, ._ },
127647 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
127648 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
127649 } },
127650 }, .{
127651 .required_features = .{ .sse4_1, null, null, null },
127652 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127653 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127654 .patterns = &.{
127655 .{ .src = .{ .to_mut_sse, .none, .none } },
127656 },
127657 .extra_temps = .{
127658 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127659 .unused,
127660 .unused,
127661 .unused,
127662 .unused,
127663 .unused,
127664 .unused,
127665 .unused,
127666 .unused,
127667 .unused,
127668 .unused,
127669 },
127670 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127671 .each = .{ .once = &.{
127672 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
127673 .{ ._, .p_d, .mins, .dst0x, .tmp0x, ._, ._ },
127674 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
127675 .{ ._, .p_d, .mins, .dst0x, .tmp0x, ._, ._ },
127676 } },
127677 }, .{
127678 .required_features = .{ .sse2, null, null, null },
127679 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127680 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127681 .patterns = &.{
127682 .{ .src = .{ .to_mut_sse, .none, .none } },
127683 },
127684 .extra_temps = .{
127685 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127686 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127687 .unused,
127688 .unused,
127689 .unused,
127690 .unused,
127691 .unused,
127692 .unused,
127693 .unused,
127694 .unused,
127695 .unused,
127696 },
127697 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127698 .each = .{ .once = &.{
127699 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
127700 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
127701 .{ ._, .p_d, .cmpgt, .tmp1x, .src0x, ._, ._ },
127702 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
127703 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
127704 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
127705 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
127706 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
127707 .{ ._, .p_d, .cmpgt, .tmp1x, .dst0x, ._, ._ },
127708 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
127709 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
127710 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
127711 } },
127712 }, .{
127713 .required_features = .{ .avx, null, null, null },
127714 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127715 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127716 .patterns = &.{
127717 .{ .src = .{ .to_sse, .none, .none } },
127718 },
127719 .extra_temps = .{
127720 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
127721 .unused,
127722 .unused,
127723 .unused,
127724 .unused,
127725 .unused,
127726 .unused,
127727 .unused,
127728 .unused,
127729 .unused,
127730 .unused,
127731 },
127732 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127733 .each = .{ .once = &.{
127734 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
127735 .{ ._, .vp_d, .minu, .dst0x, .src0x, .tmp0x, ._ },
127736 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
127737 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
127738 } },
127739 }, .{
127740 .required_features = .{ .sse4_1, null, null, null },
127741 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127742 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127743 .patterns = &.{
127744 .{ .src = .{ .to_mut_sse, .none, .none } },
127745 },
127746 .extra_temps = .{
127747 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
127748 .unused,
127749 .unused,
127750 .unused,
127751 .unused,
127752 .unused,
127753 .unused,
127754 .unused,
127755 .unused,
127756 .unused,
127757 .unused,
127758 },
127759 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127760 .each = .{ .once = &.{
127761 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
127762 .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
127763 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
127764 .{ ._, .p_d, .minu, .dst0x, .tmp0x, ._, ._ },
127765 } },
127766 }, .{
127767 .required_features = .{ .sse3, null, null, null },
127768 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127769 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127770 .patterns = &.{
127771 .{ .src = .{ .to_mut_sse, .none, .none } },
127772 },
127773 .extra_temps = .{
127774 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127775 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127776 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127777 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127778 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127779 .unused,
127780 .unused,
127781 .unused,
127782 .unused,
127783 .unused,
127784 .unused,
127785 },
127786 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127787 .each = .{ .once = &.{
127788 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127789 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
127790 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127791 .{ ._, .p_d, .shuf, .tmp3x, .src0x, .ui(0b11_10), ._ },
127792 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127793 .{ ._, .p_d, .cmpgt, .tmp4x, .src0x, ._, ._ },
127794 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127795 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127796 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127797 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127798 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127799 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127800 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127801 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127802 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127803 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127804 } },
127805 }, .{
127806 .required_features = .{ .sse2, null, null, null },
127807 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127808 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
127809 .patterns = &.{
127810 .{ .src = .{ .to_mut_sse, .none, .none } },
127811 },
127812 .extra_temps = .{
127813 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127814 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
127815 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127816 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127817 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127818 .unused,
127819 .unused,
127820 .unused,
127821 .unused,
127822 .unused,
127823 .unused,
127824 },
127825 .dst_temps = .{ .{ .ref = .src0 }, .unused },
127826 .each = .{ .once = &.{
127827 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127828 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
127829 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127830 .{ ._, .p_d, .shuf, .tmp3x, .src0x, .ui(0b11_10), ._ },
127831 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127832 .{ ._, .p_d, .cmpgt, .tmp4x, .src0x, ._, ._ },
127833 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127834 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127835 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127836 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127837 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
127838 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
127839 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
127840 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
127841 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
127842 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
127843 } },
127844 }, .{
127845 .required_features = .{ .avx2, null, null, null },
127846 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127847 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
127848 .patterns = &.{
127849 .{ .src = .{ .to_sse, .none, .none } },
127850 },
127851 .extra_temps = .{
127852 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127853 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
127854 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
127855 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127856 .unused,
127857 .unused,
127858 .unused,
127859 .unused,
127860 .unused,
127861 .unused,
127862 .unused,
127863 },
127864 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127865 .each = .{ .once = &.{
127866 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127867 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
127868 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
127869 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
127870 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
127871 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
127872 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127873 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
127874 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127875 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
127876 } },
127877 }, .{
127878 .required_features = .{ .avx, null, null, null },
127879 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127880 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
127881 .patterns = &.{
127882 .{ .src = .{ .to_sse, .none, .none } },
127883 },
127884 .extra_temps = .{
127885 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127886 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
127887 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
127888 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127889 .unused,
127890 .unused,
127891 .unused,
127892 .unused,
127893 .unused,
127894 .unused,
127895 .unused,
127896 },
127897 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127898 .each = .{ .once = &.{
127899 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127900 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
127901 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
127902 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
127903 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
127904 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
127905 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127906 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
127907 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
127908 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
127909 } },
127910 }, .{
127911 .required_features = .{ .avx2, null, null, null },
127912 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127913 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
127914 .patterns = &.{
127915 .{ .src = .{ .to_sse, .none, .none } },
127916 },
127917 .extra_temps = .{
127918 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127919 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
127920 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
127921 .unused,
127922 .unused,
127923 .unused,
127924 .unused,
127925 .unused,
127926 .unused,
127927 .unused,
127928 .unused,
127929 },
127930 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127931 .each = .{ .once = &.{
127932 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127933 .{ ._, .vp_, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
127934 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
127935 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
127936 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
127937 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
127938 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
127939 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
127940 } },
127941 }, .{
127942 .required_features = .{ .avx, null, null, null },
127943 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
127944 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
127945 .patterns = &.{
127946 .{ .src = .{ .to_sse, .none, .none } },
127947 },
127948 .extra_temps = .{
127949 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
127950 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
127951 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
127952 .unused,
127953 .unused,
127954 .unused,
127955 .unused,
127956 .unused,
127957 .unused,
127958 .unused,
127959 .unused,
127960 },
127961 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127962 .each = .{ .once = &.{
127963 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
127964 .{ ._, .v_ps, .@"or", .dst0y, .src0y, .lea(.tmp0y), ._ },
127965 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
127966 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
127967 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
127968 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
127969 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
127970 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
127971 } },
127972 }, .{
127973 .required_features = .{ .avx2, null, null, null },
127974 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
127975 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
127976 .patterns = &.{
127977 .{ .src = .{ .to_sse, .none, .none } },
127978 },
127979 .extra_temps = .{
127980 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
127981 .unused,
127982 .unused,
127983 .unused,
127984 .unused,
127985 .unused,
127986 .unused,
127987 .unused,
127988 .unused,
127989 .unused,
127990 .unused,
127991 },
127992 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
127993 .each = .{ .once = &.{
127994 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
127995 .{ ._, .vp_d, .mins, .dst0x, .src0x, .tmp0x, ._ },
127996 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
127997 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
127998 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
127999 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
128000 } },
128001 }, .{
128002 .required_features = .{ .avx, null, null, null },
128003 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128004 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128005 .patterns = &.{
128006 .{ .src = .{ .to_sse, .none, .none } },
128007 },
128008 .extra_temps = .{
128009 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128010 .unused,
128011 .unused,
128012 .unused,
128013 .unused,
128014 .unused,
128015 .unused,
128016 .unused,
128017 .unused,
128018 .unused,
128019 .unused,
128020 },
128021 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
128022 .each = .{ .once = &.{
128023 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
128024 .{ ._, .vp_d, .mins, .dst0x, .src0x, .tmp0x, ._ },
128025 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128026 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
128027 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128028 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
128029 } },
128030 }, .{
128031 .required_features = .{ .avx2, null, null, null },
128032 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128033 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128034 .patterns = &.{
128035 .{ .src = .{ .to_sse, .none, .none } },
128036 },
128037 .extra_temps = .{
128038 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128039 .unused,
128040 .unused,
128041 .unused,
128042 .unused,
128043 .unused,
128044 .unused,
128045 .unused,
128046 .unused,
128047 .unused,
128048 .unused,
128049 },
128050 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
128051 .each = .{ .once = &.{
128052 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
128053 .{ ._, .vp_d, .minu, .dst0x, .src0x, .tmp0x, ._ },
128054 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128055 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
128056 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128057 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
128058 } },
128059 }, .{
128060 .required_features = .{ .avx, null, null, null },
128061 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128062 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128063 .patterns = &.{
128064 .{ .src = .{ .to_sse, .none, .none } },
128065 },
128066 .extra_temps = .{
128067 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128068 .unused,
128069 .unused,
128070 .unused,
128071 .unused,
128072 .unused,
128073 .unused,
128074 .unused,
128075 .unused,
128076 .unused,
128077 .unused,
128078 },
128079 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
128080 .each = .{ .once = &.{
128081 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
128082 .{ ._, .vp_d, .minu, .dst0x, .src0x, .tmp0x, ._ },
128083 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128084 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
128085 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128086 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
128087 } },
128088 }, .{
128089 .required_features = .{ .avx512f, null, null, null },
128090 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128091 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
128092 .patterns = &.{
128093 .{ .src = .{ .to_mem, .none, .none } },
128094 },
128095 .extra_temps = .{
128096 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
128097 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
128098 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
128099 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
128100 .unused,
128101 .unused,
128102 .unused,
128103 .unused,
128104 .unused,
128105 .unused,
128106 .unused,
128107 },
128108 .dst_temps = .{ .{ .rc = .sse }, .unused },
128109 .each = .{ .once = &.{
128110 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128111 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
128112 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
128113 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
128114 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
128115 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
128116 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
128117 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
128118 .{ ._, .vp_d, .mins, .dst0y, .dst0y, .tmp3y, ._ },
128119 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
128120 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128121 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128122 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128123 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128124 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128125 } },
128126 }, .{
128127 .required_features = .{ .avx512f, null, null, null },
128128 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128129 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
128130 .patterns = &.{
128131 .{ .src = .{ .to_mem, .none, .none } },
128132 },
128133 .extra_temps = .{
128134 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
128135 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
128136 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
128137 .unused,
128138 .unused,
128139 .unused,
128140 .unused,
128141 .unused,
128142 .unused,
128143 .unused,
128144 .unused,
128145 },
128146 .dst_temps = .{ .{ .rc = .sse }, .unused },
128147 .each = .{ .once = &.{
128148 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128149 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
128150 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
128151 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .mem(.src0y), ._ },
128152 .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
128153 .{ ._, .vp_d, .minu, .dst0y, .dst0y, .tmp2y, ._ },
128154 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
128155 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128156 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128157 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128158 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128159 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128160 } },
128161 }, .{
128162 .required_features = .{ .avx512f, null, null, null },
128163 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128164 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
128165 .patterns = &.{
128166 .{ .src = .{ .to_mem, .none, .none } },
128167 },
128168 .extra_temps = .{
128169 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128170 .unused,
128171 .unused,
128172 .unused,
128173 .unused,
128174 .unused,
128175 .unused,
128176 .unused,
128177 .unused,
128178 .unused,
128179 .unused,
128180 },
128181 .dst_temps = .{ .{ .rc = .sse }, .unused },
128182 .each = .{ .once = &.{
128183 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
128184 .{ ._, .vp_d, .mins, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
128185 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
128186 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
128187 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128188 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
128189 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128190 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp0x, ._ },
128191 } },
128192 }, .{
128193 .required_features = .{ .avx512f, null, null, null },
128194 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128195 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
128196 .patterns = &.{
128197 .{ .src = .{ .to_mem, .none, .none } },
128198 },
128199 .extra_temps = .{
128200 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128201 .unused,
128202 .unused,
128203 .unused,
128204 .unused,
128205 .unused,
128206 .unused,
128207 .unused,
128208 .unused,
128209 .unused,
128210 .unused,
128211 },
128212 .dst_temps = .{ .{ .rc = .sse }, .unused },
128213 .each = .{ .once = &.{
128214 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
128215 .{ ._, .vp_d, .minu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
128216 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
128217 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
128218 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128219 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
128220 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
128221 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp0x, ._ },
128222 } },
128223 }, .{
128224 .required_features = .{ .avx2, null, null, null },
128225 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128226 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128227 .patterns = &.{
128228 .{ .src = .{ .to_mem, .none, .none } },
128229 },
128230 .extra_temps = .{
128231 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128232 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128233 .unused,
128234 .unused,
128235 .unused,
128236 .unused,
128237 .unused,
128238 .unused,
128239 .unused,
128240 .unused,
128241 .unused,
128242 },
128243 .dst_temps = .{ .{ .rc = .sse }, .unused },
128244 .clobbers = .{ .eflags = true },
128245 .each = .{ .once = &.{
128246 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
128247 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
128248 .{ .@"0:", .vp_d, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
128249 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
128250 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128251 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
128252 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
128253 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128254 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
128255 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128256 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
128257 } },
128258 }, .{
128259 .required_features = .{ .avx, null, null, null },
128260 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128261 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128262 .patterns = &.{
128263 .{ .src = .{ .to_mem, .none, .none } },
128264 },
128265 .extra_temps = .{
128266 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128267 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128268 .unused,
128269 .unused,
128270 .unused,
128271 .unused,
128272 .unused,
128273 .unused,
128274 .unused,
128275 .unused,
128276 .unused,
128277 },
128278 .dst_temps = .{ .{ .rc = .sse }, .unused },
128279 .clobbers = .{ .eflags = true },
128280 .each = .{ .once = &.{
128281 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
128282 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
128283 .{ .@"0:", .vp_d, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
128284 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128285 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128286 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128287 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
128288 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128289 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp1x, ._ },
128290 } },
128291 }, .{
128292 .required_features = .{ .sse4_1, null, null, null },
128293 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128294 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128295 .patterns = &.{
128296 .{ .src = .{ .to_mem, .none, .none } },
128297 },
128298 .extra_temps = .{
128299 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128300 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128301 .unused,
128302 .unused,
128303 .unused,
128304 .unused,
128305 .unused,
128306 .unused,
128307 .unused,
128308 .unused,
128309 .unused,
128310 },
128311 .dst_temps = .{ .{ .rc = .sse }, .unused },
128312 .clobbers = .{ .eflags = true },
128313 .each = .{ .once = &.{
128314 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
128315 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
128316 .{ .@"0:", .p_d, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
128317 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128318 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128319 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128320 .{ ._, .p_d, .mins, .dst0x, .tmp1x, ._, ._ },
128321 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128322 .{ ._, .p_d, .mins, .dst0x, .tmp1x, ._, ._ },
128323 } },
128324 }, .{
128325 .required_features = .{ .sse2, null, null, null },
128326 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128327 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128328 .patterns = &.{
128329 .{ .src = .{ .to_mem, .none, .none } },
128330 },
128331 .extra_temps = .{
128332 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128333 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128334 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128335 .unused,
128336 .unused,
128337 .unused,
128338 .unused,
128339 .unused,
128340 .unused,
128341 .unused,
128342 .unused,
128343 },
128344 .dst_temps = .{ .{ .rc = .sse }, .unused },
128345 .clobbers = .{ .eflags = true },
128346 .each = .{ .once = &.{
128347 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
128348 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
128349 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
128350 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
128351 .{ ._, .p_d, .cmpgt, .tmp2x, .dst0x, ._, ._ },
128352 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
128353 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
128354 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
128355 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128356 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128357 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128358 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
128359 .{ ._, .p_d, .cmpgt, .tmp2x, .dst0x, ._, ._ },
128360 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
128361 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
128362 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
128363 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128364 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
128365 .{ ._, .p_d, .cmpgt, .tmp2x, .dst0x, ._, ._ },
128366 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
128367 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
128368 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
128369 } },
128370 }, .{
128371 .required_features = .{ .avx2, null, null, null },
128372 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128373 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128374 .patterns = &.{
128375 .{ .src = .{ .to_mem, .none, .none } },
128376 },
128377 .extra_temps = .{
128378 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128379 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128380 .unused,
128381 .unused,
128382 .unused,
128383 .unused,
128384 .unused,
128385 .unused,
128386 .unused,
128387 .unused,
128388 .unused,
128389 },
128390 .dst_temps = .{ .{ .rc = .sse }, .unused },
128391 .clobbers = .{ .eflags = true },
128392 .each = .{ .once = &.{
128393 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
128394 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
128395 .{ .@"0:", .vp_d, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
128396 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
128397 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128398 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
128399 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
128400 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128401 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
128402 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128403 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
128404 } },
128405 }, .{
128406 .required_features = .{ .avx, null, null, null },
128407 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128408 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128409 .patterns = &.{
128410 .{ .src = .{ .to_mem, .none, .none } },
128411 },
128412 .extra_temps = .{
128413 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128414 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128415 .unused,
128416 .unused,
128417 .unused,
128418 .unused,
128419 .unused,
128420 .unused,
128421 .unused,
128422 .unused,
128423 .unused,
128424 },
128425 .dst_temps = .{ .{ .rc = .sse }, .unused },
128426 .clobbers = .{ .eflags = true },
128427 .each = .{ .once = &.{
128428 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
128429 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
128430 .{ .@"0:", .vp_d, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
128431 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128432 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128433 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128434 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
128435 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128436 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp1x, ._ },
128437 } },
128438 }, .{
128439 .required_features = .{ .sse4_1, null, null, null },
128440 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128441 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128442 .patterns = &.{
128443 .{ .src = .{ .to_mem, .none, .none } },
128444 },
128445 .extra_temps = .{
128446 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128447 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128448 .unused,
128449 .unused,
128450 .unused,
128451 .unused,
128452 .unused,
128453 .unused,
128454 .unused,
128455 .unused,
128456 .unused,
128457 },
128458 .dst_temps = .{ .{ .rc = .sse }, .unused },
128459 .clobbers = .{ .eflags = true },
128460 .each = .{ .once = &.{
128461 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
128462 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
128463 .{ .@"0:", .p_d, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
128464 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128465 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128466 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128467 .{ ._, .p_d, .minu, .dst0x, .tmp1x, ._, ._ },
128468 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
128469 .{ ._, .p_d, .minu, .dst0x, .tmp1x, ._, ._ },
128470 } },
128471 }, .{
128472 .required_features = .{ .sse3, null, null, null },
128473 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128474 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128475 .patterns = &.{
128476 .{ .src = .{ .to_mem, .none, .none } },
128477 },
128478 .extra_temps = .{
128479 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128480 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
128481 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128482 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128483 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128484 .unused,
128485 .unused,
128486 .unused,
128487 .unused,
128488 .unused,
128489 .unused,
128490 },
128491 .dst_temps = .{ .{ .rc = .sse }, .unused },
128492 .clobbers = .{ .eflags = true },
128493 .each = .{ .once = &.{
128494 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128495 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
128496 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
128497 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
128498 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128499 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
128500 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
128501 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128502 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128503 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128504 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128505 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128506 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128507 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128508 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128509 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128510 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128511 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128512 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128513 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128514 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128515 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128516 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128517 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128518 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128519 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128520 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128521 } },
128522 }, .{
128523 .required_features = .{ .sse2, null, null, null },
128524 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128525 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128526 .patterns = &.{
128527 .{ .src = .{ .to_mem, .none, .none } },
128528 },
128529 .extra_temps = .{
128530 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128531 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
128532 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128533 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128534 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128535 .unused,
128536 .unused,
128537 .unused,
128538 .unused,
128539 .unused,
128540 .unused,
128541 },
128542 .dst_temps = .{ .{ .rc = .sse }, .unused },
128543 .clobbers = .{ .eflags = true },
128544 .each = .{ .once = &.{
128545 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128546 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
128547 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
128548 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
128549 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128550 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
128551 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
128552 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128553 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128554 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128555 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128556 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128557 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128558 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128559 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128560 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128561 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128562 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128563 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128564 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128565 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128566 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128567 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128568 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128569 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128570 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128571 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128572 } },
128573 }, .{
128574 .required_features = .{ .avx512f, null, null, null },
128575 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128576 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
128577 .patterns = &.{
128578 .{ .src = .{ .to_mem, .none, .none } },
128579 },
128580 .extra_temps = .{
128581 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128582 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
128583 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
128584 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
128585 .unused,
128586 .unused,
128587 .unused,
128588 .unused,
128589 .unused,
128590 .unused,
128591 .unused,
128592 },
128593 .dst_temps = .{ .{ .rc = .sse }, .unused },
128594 .clobbers = .{ .eflags = true },
128595 .each = .{ .once = &.{
128596 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128597 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
128598 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
128599 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
128600 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
128601 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
128602 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
128603 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
128604 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
128605 .{ .@"0:", .vp_d, .mins, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
128606 .{ ._, .vp_d, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
128607 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
128608 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128609 .{ ._, .vp_d, .mins, .dst0y, .dst0y, .tmp3y, ._ },
128610 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
128611 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128612 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128613 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128614 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128615 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128616 } },
128617 }, .{
128618 .required_features = .{ .avx2, null, null, null },
128619 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128620 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128621 .patterns = &.{
128622 .{ .src = .{ .to_mem, .none, .none } },
128623 },
128624 .extra_temps = .{
128625 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128626 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
128627 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
128628 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
128629 .unused,
128630 .unused,
128631 .unused,
128632 .unused,
128633 .unused,
128634 .unused,
128635 .unused,
128636 },
128637 .dst_temps = .{ .{ .rc = .sse }, .unused },
128638 .clobbers = .{ .eflags = true },
128639 .each = .{ .once = &.{
128640 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128641 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
128642 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
128643 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
128644 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
128645 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
128646 .{ .@"0:", .vp_d, .mins, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
128647 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
128648 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128649 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
128650 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128651 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128652 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128653 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128654 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128655 } },
128656 }, .{
128657 .required_features = .{ .avx, null, null, null },
128658 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128659 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128660 .patterns = &.{
128661 .{ .src = .{ .to_mem, .none, .none } },
128662 },
128663 .extra_temps = .{
128664 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128665 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
128666 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
128667 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128668 .unused,
128669 .unused,
128670 .unused,
128671 .unused,
128672 .unused,
128673 .unused,
128674 .unused,
128675 },
128676 .dst_temps = .{ .{ .rc = .sse }, .unused },
128677 .clobbers = .{ .eflags = true },
128678 .each = .{ .once = &.{
128679 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128680 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
128681 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
128682 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
128683 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
128684 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
128685 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
128686 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128687 .{ .@"0:", .vp_d, .mins, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
128688 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128689 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128690 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128691 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128692 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128693 .{ ._, .vp_d, .mins, .dst0x, .dst0x, .tmp3x, ._ },
128694 } },
128695 }, .{
128696 .required_features = .{ .sse4_1, null, null, null },
128697 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128698 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128699 .patterns = &.{
128700 .{ .src = .{ .to_mem, .none, .none } },
128701 },
128702 .extra_temps = .{
128703 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128704 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
128705 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
128706 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128707 .unused,
128708 .unused,
128709 .unused,
128710 .unused,
128711 .unused,
128712 .unused,
128713 .unused,
128714 },
128715 .dst_temps = .{ .{ .rc = .sse }, .unused },
128716 .clobbers = .{ .eflags = true },
128717 .each = .{ .once = &.{
128718 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128719 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
128720 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
128721 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
128722 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
128723 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
128724 .{ .@"0:", .p_d, .mins, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
128725 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128726 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128727 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128728 .{ ._, .p_d, .mins, .dst0x, .tmp3x, ._, ._ },
128729 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128730 .{ ._, .p_d, .mins, .dst0x, .tmp3x, ._, ._ },
128731 } },
128732 }, .{
128733 .required_features = .{ .sse2, null, null, null },
128734 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
128735 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128736 .patterns = &.{
128737 .{ .src = .{ .to_mem, .none, .none } },
128738 },
128739 .extra_temps = .{
128740 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128741 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
128742 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
128743 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128744 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128745 .unused,
128746 .unused,
128747 .unused,
128748 .unused,
128749 .unused,
128750 .unused,
128751 },
128752 .dst_temps = .{ .{ .rc = .sse }, .unused },
128753 .clobbers = .{ .eflags = true },
128754 .each = .{ .once = &.{
128755 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128756 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
128757 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
128758 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
128759 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
128760 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
128761 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
128762 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128763 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128764 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128765 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128766 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128767 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128768 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128769 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128770 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128771 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128772 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128773 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128774 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128775 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
128776 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
128777 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
128778 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
128779 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
128780 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
128781 } },
128782 }, .{
128783 .required_features = .{ .avx512f, null, null, null },
128784 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128785 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
128786 .patterns = &.{
128787 .{ .src = .{ .to_mem, .none, .none } },
128788 },
128789 .extra_temps = .{
128790 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128791 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
128792 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
128793 .unused,
128794 .unused,
128795 .unused,
128796 .unused,
128797 .unused,
128798 .unused,
128799 .unused,
128800 .unused,
128801 },
128802 .dst_temps = .{ .{ .rc = .sse }, .unused },
128803 .clobbers = .{ .eflags = true },
128804 .each = .{ .once = &.{
128805 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128806 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
128807 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
128808 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
128809 .{ ._, .vp_, .@"or", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
128810 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
128811 .{ .@"0:", .vp_d, .minu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
128812 .{ ._, .vp_d, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
128813 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
128814 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128815 .{ ._, .vp_d, .minu, .dst0y, .dst0y, .tmp2y, ._ },
128816 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
128817 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128818 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128819 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128820 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128821 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128822 } },
128823 }, .{
128824 .required_features = .{ .avx2, null, null, null },
128825 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128826 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128827 .patterns = &.{
128828 .{ .src = .{ .to_mem, .none, .none } },
128829 },
128830 .extra_temps = .{
128831 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128832 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
128833 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128834 .unused,
128835 .unused,
128836 .unused,
128837 .unused,
128838 .unused,
128839 .unused,
128840 .unused,
128841 .unused,
128842 },
128843 .dst_temps = .{ .{ .rc = .sse }, .unused },
128844 .clobbers = .{ .eflags = true },
128845 .each = .{ .once = &.{
128846 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128847 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
128848 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
128849 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
128850 .{ .@"0:", .vp_d, .minu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
128851 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
128852 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128853 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
128854 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128855 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128856 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128857 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128858 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128859 } },
128860 }, .{
128861 .required_features = .{ .avx, null, null, null },
128862 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128863 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
128864 .patterns = &.{
128865 .{ .src = .{ .to_mem, .none, .none } },
128866 },
128867 .extra_temps = .{
128868 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128869 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
128870 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128871 .unused,
128872 .unused,
128873 .unused,
128874 .unused,
128875 .unused,
128876 .unused,
128877 .unused,
128878 .unused,
128879 },
128880 .dst_temps = .{ .{ .rc = .sse }, .unused },
128881 .clobbers = .{ .eflags = true },
128882 .each = .{ .once = &.{
128883 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128884 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
128885 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
128886 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
128887 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
128888 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128889 .{ .@"0:", .vp_d, .minu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
128890 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128891 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128892 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128893 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128894 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128895 .{ ._, .vp_d, .minu, .dst0x, .dst0x, .tmp2x, ._ },
128896 } },
128897 }, .{
128898 .required_features = .{ .sse4_1, null, null, null },
128899 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128900 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128901 .patterns = &.{
128902 .{ .src = .{ .to_mem, .none, .none } },
128903 },
128904 .extra_temps = .{
128905 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128906 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
128907 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
128908 .unused,
128909 .unused,
128910 .unused,
128911 .unused,
128912 .unused,
128913 .unused,
128914 .unused,
128915 .unused,
128916 },
128917 .dst_temps = .{ .{ .rc = .sse }, .unused },
128918 .clobbers = .{ .eflags = true },
128919 .each = .{ .once = &.{
128920 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128921 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
128922 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
128923 .{ ._, .p_, .@"or", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
128924 .{ .@"0:", .p_d, .minu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
128925 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128926 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128927 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128928 .{ ._, .p_d, .minu, .dst0x, .tmp2x, ._, ._ },
128929 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
128930 .{ ._, .p_d, .minu, .dst0x, .tmp2x, ._, ._ },
128931 } },
128932 }, .{
128933 .required_features = .{ .sse3, null, null, null },
128934 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128935 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128936 .patterns = &.{
128937 .{ .src = .{ .to_mem, .none, .none } },
128938 },
128939 .extra_temps = .{
128940 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128941 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
128942 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128943 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
128944 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128945 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128946 .unused,
128947 .unused,
128948 .unused,
128949 .unused,
128950 .unused,
128951 },
128952 .dst_temps = .{ .{ .rc = .sse }, .unused },
128953 .clobbers = .{ .eflags = true },
128954 .each = .{ .once = &.{
128955 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
128956 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
128957 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
128958 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
128959 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
128960 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128961 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
128962 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
128963 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
128964 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
128965 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
128966 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
128967 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
128968 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
128969 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
128970 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
128971 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
128972 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
128973 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
128974 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
128975 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
128976 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
128977 .{ ._, .p_w, .shufl, .tmp4x, .dst0x, .ui(0b11_10), ._ },
128978 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
128979 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
128980 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
128981 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
128982 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
128983 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
128984 } },
128985 }, .{
128986 .required_features = .{ .sse2, null, null, null },
128987 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
128988 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
128989 .patterns = &.{
128990 .{ .src = .{ .to_mem, .none, .none } },
128991 },
128992 .extra_temps = .{
128993 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
128994 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
128995 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128996 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
128997 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128998 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
128999 .unused,
129000 .unused,
129001 .unused,
129002 .unused,
129003 .unused,
129004 },
129005 .dst_temps = .{ .{ .rc = .sse }, .unused },
129006 .clobbers = .{ .eflags = true },
129007 .each = .{ .once = &.{
129008 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129009 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
129010 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
129011 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
129012 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
129013 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
129014 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
129015 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
129016 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
129017 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
129018 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
129019 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
129020 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
129021 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
129022 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
129023 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129024 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
129025 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
129026 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
129027 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
129028 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
129029 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
129030 .{ ._, .p_w, .shufl, .tmp4x, .dst0x, .ui(0b11_10), ._ },
129031 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
129032 .{ ._, .p_d, .cmpgt, .tmp5x, .dst0x, ._, ._ },
129033 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
129034 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
129035 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
129036 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
129037 } },
129038 }, .{
129039 .required_features = .{ .cmov, null, null, null },
129040 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
129041 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
129042 .patterns = &.{
129043 .{ .src = .{ .to_mem, .none, .none } },
129044 },
129045 .extra_temps = .{
129046 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129047 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
129048 .unused,
129049 .unused,
129050 .unused,
129051 .unused,
129052 .unused,
129053 .unused,
129054 .unused,
129055 .unused,
129056 .unused,
129057 },
129058 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
129059 .clobbers = .{ .eflags = true },
129060 .each = .{ .once = &.{
129061 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
129062 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
129063 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
129064 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
129065 .{ ._, ._nl, .cmov, .dst0d, .tmp1d, ._, ._ },
129066 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
129067 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129068 } },
129069 }, .{
129070 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
129071 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
129072 .patterns = &.{
129073 .{ .src = .{ .to_mem, .none, .none } },
129074 },
129075 .extra_temps = .{
129076 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129077 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
129078 .unused,
129079 .unused,
129080 .unused,
129081 .unused,
129082 .unused,
129083 .unused,
129084 .unused,
129085 .unused,
129086 .unused,
129087 },
129088 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
129089 .clobbers = .{ .eflags = true },
129090 .each = .{ .once = &.{
129091 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
129092 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
129093 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
129094 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
129095 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
129096 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
129097 .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
129098 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129099 } },
129100 }, .{
129101 .required_features = .{ .cmov, null, null, null },
129102 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
129103 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
129104 .patterns = &.{
129105 .{ .src = .{ .to_mem, .none, .none } },
129106 },
129107 .extra_temps = .{
129108 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129109 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129110 .unused,
129111 .unused,
129112 .unused,
129113 .unused,
129114 .unused,
129115 .unused,
129116 .unused,
129117 .unused,
129118 .unused,
129119 },
129120 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
129121 .clobbers = .{ .eflags = true },
129122 .each = .{ .once = &.{
129123 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
129124 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
129125 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
129126 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
129127 .{ ._, ._nb, .cmov, .dst0d, .tmp1d, ._, ._ },
129128 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
129129 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129130 } },
129131 }, .{
129132 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
129133 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
129134 .patterns = &.{
129135 .{ .src = .{ .to_mem, .none, .none } },
129136 },
129137 .extra_temps = .{
129138 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129139 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129140 .unused,
129141 .unused,
129142 .unused,
129143 .unused,
129144 .unused,
129145 .unused,
129146 .unused,
129147 .unused,
129148 .unused,
129149 },
129150 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
129151 .clobbers = .{ .eflags = true },
129152 .each = .{ .once = &.{
129153 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
129154 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
129155 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
129156 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
129157 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
129158 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
129159 .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
129160 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129161 } },
129162 }, .{
129163 .required_features = .{ .avx, null, null, null },
129164 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129165 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129166 .patterns = &.{
129167 .{ .src = .{ .to_sse, .none, .none } },
129168 },
129169 .extra_temps = .{
129170 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129171 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129172 .unused,
129173 .unused,
129174 .unused,
129175 .unused,
129176 .unused,
129177 .unused,
129178 .unused,
129179 .unused,
129180 .unused,
129181 },
129182 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129183 .each = .{ .once = &.{
129184 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
129185 .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
129186 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
129187 } },
129188 }, .{
129189 .required_features = .{ .sse4_2, null, null, null },
129190 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129191 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129192 .patterns = &.{
129193 .{ .src = .{ .to_mut_sse, .none, .none } },
129194 },
129195 .extra_temps = .{
129196 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129197 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
129198 .unused,
129199 .unused,
129200 .unused,
129201 .unused,
129202 .unused,
129203 .unused,
129204 .unused,
129205 .unused,
129206 .unused,
129207 },
129208 .dst_temps = .{ .{ .ref = .src0 }, .unused },
129209 .each = .{ .once = &.{
129210 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
129211 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
129212 .{ ._, .p_q, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
129213 .{ ._, .p_b, .blendv, .dst0x, .tmp0x, .tmp1x, ._ },
129214 } },
129215 }, .{
129216 .required_features = .{ .avx2, null, null, null },
129217 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129218 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129219 .patterns = &.{
129220 .{ .src = .{ .mem, .none, .none } },
129221 .{ .src = .{ .to_sse, .none, .none } },
129222 },
129223 .extra_temps = .{
129224 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129225 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129226 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129227 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129228 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129229 .unused,
129230 .unused,
129231 .unused,
129232 .unused,
129233 .unused,
129234 .unused,
129235 },
129236 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129237 .each = .{ .once = &.{
129238 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129239 .{ ._, .vp_q, .broadcast, .tmp2x, .lea(.tmp0q), ._, ._ },
129240 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
129241 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129242 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129243 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129244 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129245 } },
129246 }, .{
129247 .required_features = .{ .avx, null, null, null },
129248 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129249 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129250 .patterns = &.{
129251 .{ .src = .{ .mem, .none, .none } },
129252 .{ .src = .{ .to_sse, .none, .none } },
129253 },
129254 .extra_temps = .{
129255 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129256 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129257 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129258 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129259 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129260 .unused,
129261 .unused,
129262 .unused,
129263 .unused,
129264 .unused,
129265 .unused,
129266 },
129267 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129268 .each = .{ .once = &.{
129269 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129270 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
129271 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
129272 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129273 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129274 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129275 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129276 } },
129277 }, .{
129278 .required_features = .{ .sse4_2, null, null, null },
129279 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129280 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129281 .patterns = &.{
129282 .{ .src = .{ .to_mut_sse, .none, .none } },
129283 },
129284 .extra_temps = .{
129285 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129286 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129287 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129288 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129289 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
129290 .unused,
129291 .unused,
129292 .unused,
129293 .unused,
129294 .unused,
129295 .unused,
129296 },
129297 .dst_temps = .{ .{ .ref = .src0 }, .unused },
129298 .each = .{ .once = &.{
129299 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129300 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
129301 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
129302 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129303 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
129304 .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
129305 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
129306 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
129307 } },
129308 }, .{
129309 .required_features = .{ .avx2, null, null, null },
129310 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129311 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129312 .patterns = &.{
129313 .{ .src = .{ .to_sse, .none, .none } },
129314 },
129315 .extra_temps = .{
129316 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129317 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129318 .unused,
129319 .unused,
129320 .unused,
129321 .unused,
129322 .unused,
129323 .unused,
129324 .unused,
129325 .unused,
129326 .unused,
129327 },
129328 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129329 .each = .{ .once = &.{
129330 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
129331 .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
129332 .{ ._, .vp_b, .blendv, .tmp0x, .src0x, .tmp0x, .tmp1x },
129333 .{ ._, .v_i128, .extract, .dst0x, .src0y, .ui(1), ._ },
129334 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
129335 .{ ._, .vp_b, .blendv, .dst0x, .tmp0x, .dst0x, .tmp1x },
129336 } },
129337 }, .{
129338 .required_features = .{ .avx, null, null, null },
129339 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129340 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129341 .patterns = &.{
129342 .{ .src = .{ .to_sse, .none, .none } },
129343 },
129344 .extra_temps = .{
129345 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129346 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129347 .unused,
129348 .unused,
129349 .unused,
129350 .unused,
129351 .unused,
129352 .unused,
129353 .unused,
129354 .unused,
129355 .unused,
129356 },
129357 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129358 .each = .{ .once = &.{
129359 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
129360 .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
129361 .{ ._, .vp_b, .blendv, .tmp0x, .src0x, .tmp0x, .tmp1x },
129362 .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ },
129363 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
129364 .{ ._, .vp_b, .blendv, .dst0x, .tmp0x, .dst0x, .tmp1x },
129365 } },
129366 }, .{
129367 .required_features = .{ .avx2, null, null, null },
129368 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129369 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129370 .patterns = &.{
129371 .{ .src = .{ .mem, .none, .none } },
129372 .{ .src = .{ .to_sse, .none, .none } },
129373 },
129374 .extra_temps = .{
129375 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129376 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129377 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129378 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129379 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129380 .unused,
129381 .unused,
129382 .unused,
129383 .unused,
129384 .unused,
129385 .unused,
129386 },
129387 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129388 .each = .{ .once = &.{
129389 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129390 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129391 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
129392 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129393 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129394 .{ ._, .vp_b, .blendv, .tmp3x, .dst0x, .tmp3x, .tmp4x },
129395 .{ ._, .v_i128, .extract, .dst0x, .dst0y, .ui(1), ._ },
129396 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
129397 .{ ._, .vp_b, .blendv, .dst0x, .tmp3x, .dst0x, .tmp4x },
129398 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129399 } },
129400 }, .{
129401 .required_features = .{ .avx, null, null, null },
129402 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129403 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129404 .patterns = &.{
129405 .{ .src = .{ .mem, .none, .none } },
129406 .{ .src = .{ .to_sse, .none, .none } },
129407 },
129408 .extra_temps = .{
129409 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129410 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129411 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129412 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129413 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129414 .unused,
129415 .unused,
129416 .unused,
129417 .unused,
129418 .unused,
129419 .unused,
129420 },
129421 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129422 .each = .{ .once = &.{
129423 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129424 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129425 .{ ._, .v_pd, .xor, .dst0y, .tmp2y, .src0y, ._ },
129426 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129427 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129428 .{ ._, .vp_b, .blendv, .tmp3x, .dst0x, .tmp3x, .tmp4x },
129429 .{ ._, .v_f128, .extract, .dst0x, .dst0y, .ui(1), ._ },
129430 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
129431 .{ ._, .vp_b, .blendv, .dst0x, .tmp3x, .dst0x, .tmp4x },
129432 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129433 } },
129434 }, .{
129435 .required_features = .{ .avx2, null, null, null },
129436 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129437 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129438 .patterns = &.{
129439 .{ .src = .{ .to_sse, .none, .none } },
129440 },
129441 .extra_temps = .{
129442 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129443 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129444 .unused,
129445 .unused,
129446 .unused,
129447 .unused,
129448 .unused,
129449 .unused,
129450 .unused,
129451 .unused,
129452 .unused,
129453 },
129454 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129455 .each = .{ .once = &.{
129456 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
129457 .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
129458 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
129459 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
129460 .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
129461 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
129462 } },
129463 }, .{
129464 .required_features = .{ .avx, null, null, null },
129465 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129466 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129467 .patterns = &.{
129468 .{ .src = .{ .to_sse, .none, .none } },
129469 },
129470 .extra_temps = .{
129471 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129472 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129473 .unused,
129474 .unused,
129475 .unused,
129476 .unused,
129477 .unused,
129478 .unused,
129479 .unused,
129480 .unused,
129481 .unused,
129482 },
129483 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129484 .each = .{ .once = &.{
129485 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
129486 .{ ._, .vp_q, .cmpgt, .tmp1x, .src0x, .tmp0x, ._ },
129487 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
129488 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
129489 .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
129490 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
129491 } },
129492 }, .{
129493 .required_features = .{ .avx2, null, null, null },
129494 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129495 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129496 .patterns = &.{
129497 .{ .src = .{ .mem, .none, .none } },
129498 .{ .src = .{ .to_sse, .none, .none } },
129499 },
129500 .extra_temps = .{
129501 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129502 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129503 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129504 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129505 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129506 .unused,
129507 .unused,
129508 .unused,
129509 .unused,
129510 .unused,
129511 .unused,
129512 },
129513 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129514 .each = .{ .once = &.{
129515 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129516 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129517 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
129518 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
129519 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129520 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129521 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129522 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129523 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129524 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129525 } },
129526 }, .{
129527 .required_features = .{ .avx, null, null, null },
129528 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129529 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129530 .patterns = &.{
129531 .{ .src = .{ .mem, .none, .none } },
129532 .{ .src = .{ .to_sse, .none, .none } },
129533 },
129534 .extra_temps = .{
129535 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129536 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129537 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129538 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129539 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129540 .unused,
129541 .unused,
129542 .unused,
129543 .unused,
129544 .unused,
129545 .unused,
129546 },
129547 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
129548 .each = .{ .once = &.{
129549 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129550 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129551 .{ ._, .v_pd, .xor, .dst0y, .tmp2y, .src0y, ._ },
129552 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
129553 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129554 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129555 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129556 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129557 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129558 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129559 } },
129560 }, .{
129561 .required_features = .{ .avx512f, null, null, null },
129562 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129563 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
129564 .patterns = &.{
129565 .{ .src = .{ .to_mem, .none, .none } },
129566 },
129567 .extra_temps = .{
129568 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129569 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
129570 .{ .type = .vector_8_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
129571 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129572 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129573 .unused,
129574 .unused,
129575 .unused,
129576 .unused,
129577 .unused,
129578 .unused,
129579 },
129580 .dst_temps = .{ .{ .rc = .sse }, .unused },
129581 .each = .{ .once = &.{
129582 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129583 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
129584 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
129585 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
129586 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
129587 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
129588 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
129589 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
129590 .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
129591 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
129592 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
129593 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129594 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129595 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129596 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129597 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129598 } },
129599 }, .{
129600 .required_features = .{ .avx512f, null, null, null },
129601 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129602 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
129603 .patterns = &.{
129604 .{ .src = .{ .to_mem, .none, .none } },
129605 },
129606 .extra_temps = .{
129607 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129608 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129609 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129610 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
129611 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129612 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129613 .unused,
129614 .unused,
129615 .unused,
129616 .unused,
129617 .unused,
129618 },
129619 .dst_temps = .{ .{ .rc = .sse }, .unused },
129620 .each = .{ .once = &.{
129621 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129622 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129623 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
129624 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
129625 .{ ._, .v_dqa, .mov, .tmp4y, .memd(.src0y, 32), ._, ._ },
129626 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
129627 .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
129628 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
129629 .{ ._, .vp_, .xor, .tmp4y, .tmp4y, .tmp2y, ._ },
129630 .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
129631 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
129632 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
129633 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
129634 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
129635 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
129636 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
129637 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
129638 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129639 } },
129640 }, .{
129641 .required_features = .{ .avx512f, null, null, null },
129642 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129643 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
129644 .patterns = &.{
129645 .{ .src = .{ .to_mem, .none, .none } },
129646 },
129647 .extra_temps = .{
129648 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129649 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129650 .unused,
129651 .unused,
129652 .unused,
129653 .unused,
129654 .unused,
129655 .unused,
129656 .unused,
129657 .unused,
129658 .unused,
129659 },
129660 .dst_temps = .{ .{ .rc = .sse }, .unused },
129661 .each = .{ .once = &.{
129662 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
129663 .{ ._, .v_dqa, .mov, .tmp0y, .memd(.src0y, 32), ._, ._ },
129664 .{ ._, .vp_q, .cmpgt, .tmp1y, .dst0y, .tmp0y, ._ },
129665 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp0y, .tmp1y },
129666 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
129667 .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
129668 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
129669 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
129670 .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
129671 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
129672 } },
129673 }, .{
129674 .required_features = .{ .avx512f, null, null, null },
129675 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129676 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
129677 .patterns = &.{
129678 .{ .src = .{ .to_mem, .none, .none } },
129679 },
129680 .extra_temps = .{
129681 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
129682 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129683 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129684 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129685 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129686 .unused,
129687 .unused,
129688 .unused,
129689 .unused,
129690 .unused,
129691 .unused,
129692 },
129693 .dst_temps = .{ .{ .rc = .sse }, .unused },
129694 .each = .{ .once = &.{
129695 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129696 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129697 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
129698 .{ ._, .vp_, .xor, .tmp3y, .tmp2y, .memd(.src0y, 32), ._ },
129699 .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
129700 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
129701 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
129702 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129703 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129704 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129705 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129706 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129707 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129708 } },
129709 }, .{
129710 .required_features = .{ .avx2, null, null, null },
129711 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129712 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129713 .patterns = &.{
129714 .{ .src = .{ .to_mem, .none, .none } },
129715 },
129716 .extra_temps = .{
129717 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129718 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129719 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129720 .unused,
129721 .unused,
129722 .unused,
129723 .unused,
129724 .unused,
129725 .unused,
129726 .unused,
129727 .unused,
129728 },
129729 .dst_temps = .{ .{ .rc = .sse }, .unused },
129730 .clobbers = .{ .eflags = true },
129731 .each = .{ .once = &.{
129732 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
129733 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
129734 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
129735 .{ ._, .vp_q, .cmpgt, .tmp2y, .dst0y, .tmp1y, ._ },
129736 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp1y, .tmp2y },
129737 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
129738 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129739 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
129740 .{ ._, .vp_q, .cmpgt, .tmp2x, .dst0x, .tmp1x, ._ },
129741 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
129742 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
129743 .{ ._, .vp_q, .cmpgt, .tmp2x, .dst0x, .tmp1x, ._ },
129744 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
129745 } },
129746 }, .{
129747 .required_features = .{ .avx, null, null, null },
129748 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129749 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129750 .patterns = &.{
129751 .{ .src = .{ .to_mem, .none, .none } },
129752 },
129753 .extra_temps = .{
129754 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129755 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129756 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129757 .unused,
129758 .unused,
129759 .unused,
129760 .unused,
129761 .unused,
129762 .unused,
129763 .unused,
129764 .unused,
129765 },
129766 .dst_temps = .{ .{ .rc = .sse }, .unused },
129767 .clobbers = .{ .eflags = true },
129768 .each = .{ .once = &.{
129769 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
129770 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
129771 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
129772 .{ ._, .vp_q, .cmpgt, .tmp2x, .dst0x, .tmp1x, ._ },
129773 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
129774 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
129775 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129776 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
129777 .{ ._, .vp_q, .cmpgt, .tmp2x, .dst0x, .tmp1x, ._ },
129778 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
129779 } },
129780 }, .{
129781 .required_features = .{ .sse4_2, null, null, null },
129782 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129783 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129784 .patterns = &.{
129785 .{ .src = .{ .to_mem, .none, .none } },
129786 },
129787 .extra_temps = .{
129788 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129789 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129790 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
129791 .unused,
129792 .unused,
129793 .unused,
129794 .unused,
129795 .unused,
129796 .unused,
129797 .unused,
129798 .unused,
129799 },
129800 .dst_temps = .{ .{ .rc = .sse }, .unused },
129801 .clobbers = .{ .eflags = true },
129802 .each = .{ .once = &.{
129803 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
129804 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
129805 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
129806 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
129807 .{ ._, .p_q, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
129808 .{ ._, .p_b, .blendv, .dst0x, .tmp1x, .tmp2x, ._ },
129809 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
129810 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129811 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
129812 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
129813 .{ ._, .p_q, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
129814 .{ ._, .p_b, .blendv, .dst0x, .tmp1x, .tmp2x, ._ },
129815 } },
129816 }, .{
129817 .required_features = .{ .avx2, null, null, null },
129818 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129819 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129820 .patterns = &.{
129821 .{ .src = .{ .to_mem, .none, .none } },
129822 },
129823 .extra_temps = .{
129824 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129825 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129826 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129827 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129828 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129829 .unused,
129830 .unused,
129831 .unused,
129832 .unused,
129833 .unused,
129834 .unused,
129835 },
129836 .dst_temps = .{ .{ .rc = .sse }, .unused },
129837 .clobbers = .{ .eflags = true },
129838 .each = .{ .once = &.{
129839 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129840 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
129841 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
129842 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_unaligned_size, -32), ._ },
129843 .{ .@"0:", .vp_, .xor, .tmp3y, .tmp2y, .memi(.src0y, .tmp0), ._ },
129844 .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
129845 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
129846 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
129847 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129848 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
129849 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129850 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129851 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129852 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129853 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129854 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129855 } },
129856 }, .{
129857 .required_features = .{ .avx, null, null, null },
129858 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129859 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129860 .patterns = &.{
129861 .{ .src = .{ .to_mem, .none, .none } },
129862 },
129863 .extra_temps = .{
129864 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129865 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129866 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129867 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129868 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129869 .unused,
129870 .unused,
129871 .unused,
129872 .unused,
129873 .unused,
129874 .unused,
129875 },
129876 .dst_temps = .{ .{ .rc = .sse }, .unused },
129877 .clobbers = .{ .eflags = true },
129878 .each = .{ .once = &.{
129879 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129880 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
129881 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
129882 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .memad(.src0x, .add_unaligned_size, -16), ._ },
129883 .{ .@"0:", .vp_, .xor, .tmp3x, .tmp2x, .memi(.src0x, .tmp0), ._ },
129884 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129885 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129886 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
129887 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129888 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129889 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129890 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129891 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
129892 } },
129893 }, .{
129894 .required_features = .{ .sse4_2, null, null, null },
129895 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
129896 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
129897 .patterns = &.{
129898 .{ .src = .{ .to_mem, .none, .none } },
129899 },
129900 .extra_temps = .{
129901 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129902 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
129903 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129904 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
129905 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
129906 .unused,
129907 .unused,
129908 .unused,
129909 .unused,
129910 .unused,
129911 .unused,
129912 },
129913 .dst_temps = .{ .{ .rc = .sse }, .unused },
129914 .clobbers = .{ .eflags = true },
129915 .each = .{ .once = &.{
129916 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129917 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
129918 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
129919 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
129920 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
129921 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
129922 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
129923 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
129924 .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
129925 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
129926 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
129927 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129928 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129929 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
129930 .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
129931 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
129932 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
129933 } },
129934 }, .{
129935 .required_features = .{ .avx512f, null, null, null },
129936 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129937 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
129938 .patterns = &.{
129939 .{ .src = .{ .to_mem, .none, .none } },
129940 },
129941 .extra_temps = .{
129942 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129943 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
129944 .{ .type = .vector_8_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
129945 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129946 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129947 .unused,
129948 .unused,
129949 .unused,
129950 .unused,
129951 .unused,
129952 .unused,
129953 },
129954 .dst_temps = .{ .{ .rc = .sse }, .unused },
129955 .clobbers = .{ .eflags = true },
129956 .each = .{ .once = &.{
129957 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
129958 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
129959 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
129960 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
129961 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
129962 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
129963 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
129964 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
129965 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
129966 .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
129967 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
129968 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
129969 .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
129970 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
129971 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
129972 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
129973 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
129974 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129975 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129976 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
129977 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
129978 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
129979 } },
129980 }, .{
129981 .required_features = .{ .avx2, null, null, null },
129982 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
129983 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
129984 .patterns = &.{
129985 .{ .src = .{ .to_mem, .none, .none } },
129986 },
129987 .extra_temps = .{
129988 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
129989 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
129990 .{ .type = .vector_4_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
129991 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129992 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
129993 .unused,
129994 .unused,
129995 .unused,
129996 .unused,
129997 .unused,
129998 .unused,
129999 },
130000 .dst_temps = .{ .{ .rc = .sse }, .unused },
130001 .clobbers = .{ .eflags = true },
130002 .each = .{ .once = &.{
130003 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130004 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
130005 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130006 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
130007 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130008 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
130009 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
130010 .{ ._, .vp_q, .cmpgt, .tmp4y, .dst0y, .tmp3y, ._ },
130011 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
130012 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
130013 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130014 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130015 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
130016 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
130017 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
130018 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
130019 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
130020 } },
130021 }, .{
130022 .required_features = .{ .avx, null, null, null },
130023 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
130024 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
130025 .patterns = &.{
130026 .{ .src = .{ .to_mem, .none, .none } },
130027 },
130028 .extra_temps = .{
130029 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130030 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130031 .{ .type = .vector_4_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
130032 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130033 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130034 .unused,
130035 .unused,
130036 .unused,
130037 .unused,
130038 .unused,
130039 .unused,
130040 },
130041 .dst_temps = .{ .{ .rc = .sse }, .unused },
130042 .clobbers = .{ .eflags = true },
130043 .each = .{ .once = &.{
130044 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130045 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
130046 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130047 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
130048 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130049 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
130050 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130051 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
130052 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
130053 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
130054 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
130055 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
130056 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
130057 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130058 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
130059 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
130060 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
130061 } },
130062 }, .{
130063 .required_features = .{ .sse4_2, null, null, null },
130064 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
130065 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
130066 .patterns = &.{
130067 .{ .src = .{ .to_mem, .none, .none } },
130068 },
130069 .extra_temps = .{
130070 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130071 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130072 .{ .type = .vector_2_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smax } } },
130073 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130074 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
130075 .unused,
130076 .unused,
130077 .unused,
130078 .unused,
130079 .unused,
130080 .unused,
130081 },
130082 .dst_temps = .{ .{ .rc = .sse }, .unused },
130083 .clobbers = .{ .eflags = true },
130084 .each = .{ .once = &.{
130085 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130086 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
130087 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130088 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
130089 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
130090 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
130091 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
130092 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
130093 .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
130094 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
130095 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
130096 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130097 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
130098 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
130099 .{ ._, .p_q, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
130100 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
130101 } },
130102 }, .{
130103 .required_features = .{ .avx512f, null, null, null },
130104 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
130105 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
130106 .patterns = &.{
130107 .{ .src = .{ .to_mem, .none, .none } },
130108 },
130109 .extra_temps = .{
130110 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130111 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
130112 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130113 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
130114 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130115 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130116 .unused,
130117 .unused,
130118 .unused,
130119 .unused,
130120 .unused,
130121 },
130122 .dst_temps = .{ .{ .rc = .sse }, .unused },
130123 .clobbers = .{ .eflags = true },
130124 .each = .{ .once = &.{
130125 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130126 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
130127 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
130128 .{ ._, .v_dqa, .mov, .tmp4y, .memad(.src0y, .add_size, -32), ._, ._ },
130129 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_size, -64), ._, ._ },
130130 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130131 .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
130132 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
130133 .{ ._, .vp_, .xor, .tmp4y, .tmp4y, .tmp2y, ._ },
130134 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
130135 .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
130136 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
130137 .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
130138 .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
130139 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
130140 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
130141 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130142 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
130143 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
130144 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
130145 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
130146 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
130147 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
130148 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
130149 } },
130150 }, .{
130151 .required_features = .{ .avx2, null, null, null },
130152 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
130153 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
130154 .patterns = &.{
130155 .{ .src = .{ .to_mem, .none, .none } },
130156 },
130157 .extra_temps = .{
130158 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130159 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
130160 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130161 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
130162 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130163 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130164 .unused,
130165 .unused,
130166 .unused,
130167 .unused,
130168 .unused,
130169 },
130170 .dst_temps = .{ .{ .rc = .sse }, .unused },
130171 .clobbers = .{ .eflags = true },
130172 .each = .{ .once = &.{
130173 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130174 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
130175 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
130176 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_size, -32), ._, ._ },
130177 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130178 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
130179 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
130180 .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
130181 .{ ._, .vp_q, .cmpgt, .tmp5y, .dst0y, .tmp4y, ._ },
130182 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
130183 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
130184 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130185 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
130186 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
130187 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
130188 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
130189 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
130190 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
130191 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
130192 } },
130193 }, .{
130194 .required_features = .{ .avx, null, null, null },
130195 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
130196 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
130197 .patterns = &.{
130198 .{ .src = .{ .to_mem, .none, .none } },
130199 },
130200 .extra_temps = .{
130201 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130202 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
130203 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
130204 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
130205 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130206 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130207 .unused,
130208 .unused,
130209 .unused,
130210 .unused,
130211 .unused,
130212 },
130213 .dst_temps = .{ .{ .rc = .sse }, .unused },
130214 .clobbers = .{ .eflags = true },
130215 .each = .{ .once = &.{
130216 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130217 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
130218 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
130219 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_size, -32), ._, ._ },
130220 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130221 .{ ._, .v_ps, .xor, .dst0y, .dst0y, .tmp2y, ._ },
130222 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
130223 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
130224 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
130225 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
130226 .{ .@"0:", .vp_, .xor, .tmp4x, .tmp2x, .memi(.src0x, .tmp0), ._ },
130227 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
130228 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
130229 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
130230 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130231 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
130232 .{ ._, .vp_q, .cmpgt, .tmp5x, .dst0x, .tmp4x, ._ },
130233 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
130234 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
130235 } },
130236 }, .{
130237 .required_features = .{ .sse4_2, null, null, null },
130238 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
130239 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
130240 .patterns = &.{
130241 .{ .src = .{ .to_mem, .none, .none } },
130242 },
130243 .extra_temps = .{
130244 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130245 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
130246 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130247 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
130248 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
130249 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
130250 .unused,
130251 .unused,
130252 .unused,
130253 .unused,
130254 .unused,
130255 },
130256 .dst_temps = .{ .{ .rc = .sse }, .unused },
130257 .clobbers = .{ .eflags = true },
130258 .each = .{ .once = &.{
130259 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130260 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
130261 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
130262 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
130263 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
130264 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
130265 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
130266 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
130267 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
130268 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
130269 .{ ._, .p_q, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
130270 .{ ._, .p_b, .blendv, .dst0x, .tmp4x, .tmp5x, ._ },
130271 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
130272 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130273 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
130274 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
130275 .{ ._, .p_q, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
130276 .{ ._, .p_b, .blendv, .dst0x, .tmp4x, .tmp5x, ._ },
130277 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
130278 } },
130279 }, .{
130280 .required_features = .{ .@"64bit", .cmov, null, null },
130281 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
130282 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
130283 .patterns = &.{
130284 .{ .src = .{ .to_mem, .none, .none } },
130285 },
130286 .extra_temps = .{
130287 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130288 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
130289 .unused,
130290 .unused,
130291 .unused,
130292 .unused,
130293 .unused,
130294 .unused,
130295 .unused,
130296 .unused,
130297 .unused,
130298 },
130299 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
130300 .clobbers = .{ .eflags = true },
130301 .each = .{ .once = &.{
130302 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
130303 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
130304 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
130305 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
130306 .{ ._, ._nl, .cmov, .dst0q, .tmp1q, ._, ._ },
130307 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
130308 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130309 } },
130310 }, .{
130311 .required_features = .{ .@"64bit", null, null, null },
130312 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
130313 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
130314 .patterns = &.{
130315 .{ .src = .{ .to_mem, .none, .none } },
130316 },
130317 .extra_temps = .{
130318 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130319 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
130320 .unused,
130321 .unused,
130322 .unused,
130323 .unused,
130324 .unused,
130325 .unused,
130326 .unused,
130327 .unused,
130328 .unused,
130329 },
130330 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
130331 .clobbers = .{ .eflags = true },
130332 .each = .{ .once = &.{
130333 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
130334 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
130335 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
130336 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
130337 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
130338 .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
130339 .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
130340 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130341 } },
130342 }, .{
130343 .required_features = .{ .@"64bit", .cmov, null, null },
130344 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
130345 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
130346 .patterns = &.{
130347 .{ .src = .{ .to_mem, .none, .none } },
130348 },
130349 .extra_temps = .{
130350 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130351 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
130352 .unused,
130353 .unused,
130354 .unused,
130355 .unused,
130356 .unused,
130357 .unused,
130358 .unused,
130359 .unused,
130360 .unused,
130361 },
130362 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
130363 .clobbers = .{ .eflags = true },
130364 .each = .{ .once = &.{
130365 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
130366 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
130367 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
130368 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
130369 .{ ._, ._nb, .cmov, .dst0q, .tmp1q, ._, ._ },
130370 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
130371 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130372 } },
130373 }, .{
130374 .required_features = .{ .@"64bit", null, null, null },
130375 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
130376 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
130377 .patterns = &.{
130378 .{ .src = .{ .to_mem, .none, .none } },
130379 },
130380 .extra_temps = .{
130381 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130382 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
130383 .unused,
130384 .unused,
130385 .unused,
130386 .unused,
130387 .unused,
130388 .unused,
130389 .unused,
130390 .unused,
130391 .unused,
130392 },
130393 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
130394 .clobbers = .{ .eflags = true },
130395 .each = .{ .once = &.{
130396 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
130397 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
130398 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
130399 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
130400 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
130401 .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
130402 .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
130403 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130404 } },
130405 }, .{
130406 .required_features = .{ .@"64bit", .cmov, null, null },
130407 .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
130408 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
130409 .patterns = &.{
130410 .{ .src = .{ .to_mem, .none, .none } },
130411 },
130412 .extra_temps = .{
130413 .{ .type = .u32, .kind = .{ .reg = .rdi } },
130414 .{ .type = .usize, .kind = .{ .reg = .rsi } },
130415 .{ .type = .isize, .kind = .{ .reg = .rcx } },
130416 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130417 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
130418 .unused,
130419 .unused,
130420 .unused,
130421 .unused,
130422 .unused,
130423 .unused,
130424 },
130425 .dst_temps = .{ .mem, .unused },
130426 .clobbers = .{ .eflags = true },
130427 .each = .{ .once = &.{
130428 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
130429 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
130430 .{ .@"0:", ._, .mov, .tmp2p, .sia(1, .dst0, .sub_size_div_8), ._, ._ },
130431 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
130432 .{ ._, ._c, .cl, ._, ._, ._, ._ },
130433 .{ .@"1:", ._, .mov, .tmp4q, .leasiad(.tmp1q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
130434 .{ ._, ._, .sbb, .tmp4q, .leasiad(.tmp3q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
130435 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
130436 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
130437 .{ ._, ._, .mov, .tmp4q, .leaad(.tmp1q, .add_src0_elem_size, -8), ._, ._ },
130438 .{ ._, ._, .sbb, .tmp4q, .leaad(.tmp3q, .add_src0_elem_size, -8), ._, ._ },
130439 .{ ._, ._nl, .cmov, .tmp1p, .tmp3p, ._, ._ },
130440 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
130441 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130442 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
130443 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
130444 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
130445 } },
130446 }, .{
130447 .required_features = .{ .@"64bit", null, null, null },
130448 .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
130449 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
130450 .patterns = &.{
130451 .{ .src = .{ .to_mem, .none, .none } },
130452 },
130453 .extra_temps = .{
130454 .{ .type = .u32, .kind = .{ .reg = .rdi } },
130455 .{ .type = .usize, .kind = .{ .reg = .rsi } },
130456 .{ .type = .isize, .kind = .{ .reg = .rcx } },
130457 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130458 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
130459 .unused,
130460 .unused,
130461 .unused,
130462 .unused,
130463 .unused,
130464 .unused,
130465 },
130466 .dst_temps = .{ .mem, .unused },
130467 .clobbers = .{ .eflags = true },
130468 .each = .{ .once = &.{
130469 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
130470 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
130471 .{ .@"0:", ._, .mov, .tmp2p, .sia(1, .dst0, .sub_size_div_8), ._, ._ },
130472 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
130473 .{ ._, ._c, .cl, ._, ._, ._, ._ },
130474 .{ .@"1:", ._, .mov, .tmp4q, .leasiad(.tmp1q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
130475 .{ ._, ._, .sbb, .tmp4q, .leasiad(.tmp3q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
130476 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
130477 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
130478 .{ ._, ._, .mov, .tmp4q, .leaad(.tmp1q, .add_src0_elem_size, -8), ._, ._ },
130479 .{ ._, ._, .sbb, .tmp4q, .leaad(.tmp3q, .add_src0_elem_size, -8), ._, ._ },
130480 .{ ._, ._l, .j, .@"1f", ._, ._, ._ },
130481 .{ ._, ._, .mov, .tmp1p, .tmp3p, ._, ._ },
130482 .{ .@"1:", ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
130483 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130484 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
130485 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
130486 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
130487 } },
130488 }, .{
130489 .required_features = .{ .@"64bit", .cmov, null, null },
130490 .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any },
130491 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
130492 .patterns = &.{
130493 .{ .src = .{ .to_mem, .none, .none } },
130494 },
130495 .extra_temps = .{
130496 .{ .type = .u32, .kind = .{ .reg = .rdi } },
130497 .{ .type = .usize, .kind = .{ .reg = .rsi } },
130498 .{ .type = .isize, .kind = .{ .reg = .rcx } },
130499 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130500 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
130501 .unused,
130502 .unused,
130503 .unused,
130504 .unused,
130505 .unused,
130506 .unused,
130507 },
130508 .dst_temps = .{ .mem, .unused },
130509 .clobbers = .{ .eflags = true },
130510 .each = .{ .once = &.{
130511 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
130512 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
130513 .{ .@"0:", ._, .mov, .tmp2p, .sa(.dst0, .sub_size_div_8), ._, ._ },
130514 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
130515 .{ ._, ._c, .cl, ._, ._, ._, ._ },
130516 .{ .@"1:", ._, .mov, .tmp4q, .leasia(.tmp1q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
130517 .{ ._, ._, .sbb, .tmp4q, .leasia(.tmp3q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
130518 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
130519 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
130520 .{ ._, ._nb, .cmov, .tmp1p, .tmp3p, ._, ._ },
130521 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
130522 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130523 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
130524 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
130525 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
130526 } },
130527 }, .{
130528 .required_features = .{ .@"64bit", null, null, null },
130529 .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any },
130530 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
130531 .patterns = &.{
130532 .{ .src = .{ .to_mem, .none, .none } },
130533 },
130534 .extra_temps = .{
130535 .{ .type = .u32, .kind = .{ .reg = .rdi } },
130536 .{ .type = .usize, .kind = .{ .reg = .rsi } },
130537 .{ .type = .isize, .kind = .{ .reg = .rcx } },
130538 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130539 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
130540 .unused,
130541 .unused,
130542 .unused,
130543 .unused,
130544 .unused,
130545 .unused,
130546 },
130547 .dst_temps = .{ .mem, .unused },
130548 .clobbers = .{ .eflags = true },
130549 .each = .{ .once = &.{
130550 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
130551 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
130552 .{ .@"0:", ._, .mov, .tmp2p, .sa(.dst0, .sub_size_div_8), ._, ._ },
130553 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
130554 .{ ._, ._c, .cl, ._, ._, ._, ._ },
130555 .{ .@"1:", ._, .mov, .tmp4q, .leasia(.tmp1q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
130556 .{ ._, ._, .sbb, .tmp4q, .leasia(.tmp3q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
130557 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
130558 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
130559 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
130560 .{ ._, ._, .mov, .tmp1p, .tmp3p, ._, ._ },
130561 .{ .@"1:", ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
130562 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130563 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
130564 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
130565 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
130566 } },
130567 }, .{
130568 .required_features = .{ .f16c, null, null, null },
130569 .dst_constraints = .{ .{ .float = .word }, .any },
130570 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
130571 .patterns = &.{
130572 .{ .src = .{ .mem, .none, .none } },
130573 .{ .src = .{ .to_sse, .none, .none } },
130574 },
130575 .extra_temps = .{
130576 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130577 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130578 .unused,
130579 .unused,
130580 .unused,
130581 .unused,
130582 .unused,
130583 .unused,
130584 .unused,
130585 .unused,
130586 .unused,
130587 },
130588 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130589 .each = .{ .once = &.{
130590 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
130591 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130592 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130593 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130594 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130595 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130596 } },
130597 }, .{
130598 .required_features = .{ .f16c, null, null, null },
130599 .dst_constraints = .{ .{ .float = .word }, .any },
130600 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
130601 .patterns = &.{
130602 .{ .src = .{ .mem, .none, .none } },
130603 .{ .src = .{ .to_sse, .none, .none } },
130604 },
130605 .extra_temps = .{
130606 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130607 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130608 .unused,
130609 .unused,
130610 .unused,
130611 .unused,
130612 .unused,
130613 .unused,
130614 .unused,
130615 .unused,
130616 .unused,
130617 },
130618 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130619 .each = .{ .once = &.{
130620 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
130621 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130622 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130623 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130624 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130625 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130626 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130627 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130628 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130629 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130630 } },
130631 }, .{
130632 .required_features = .{ .f16c, null, null, null },
130633 .dst_constraints = .{ .{ .float = .word }, .any },
130634 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
130635 .patterns = &.{
130636 .{ .src = .{ .mem, .none, .none } },
130637 .{ .src = .{ .to_sse, .none, .none } },
130638 },
130639 .extra_temps = .{
130640 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130641 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
130642 .unused,
130643 .unused,
130644 .unused,
130645 .unused,
130646 .unused,
130647 .unused,
130648 .unused,
130649 .unused,
130650 .unused,
130651 },
130652 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130653 .each = .{ .once = &.{
130654 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
130655 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130656 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130657 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130658 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130659 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130660 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130661 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130662 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130663 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130664 } },
130665 }, .{
130666 .required_features = .{ .f16c, null, null, null },
130667 .dst_constraints = .{ .{ .float = .word }, .any },
130668 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
130669 .patterns = &.{
130670 .{ .src = .{ .to_sse, .none, .none } },
130671 },
130672 .extra_temps = .{
130673 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130674 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130675 .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
130676 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130677 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130678 .unused,
130679 .unused,
130680 .unused,
130681 .unused,
130682 .unused,
130683 .unused,
130684 },
130685 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130686 .each = .{ .once = &.{
130687 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130688 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
130689 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130690 .{ ._, .v_ps, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
130691 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
130692 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130693 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130694 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130695 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130696 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
130697 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130698 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130699 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130700 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
130701 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130702 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130703 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130704 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130705 } },
130706 }, .{
130707 .required_features = .{ .f16c, null, null, null },
130708 .dst_constraints = .{ .{ .float = .word }, .any },
130709 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
130710 .patterns = &.{
130711 .{ .src = .{ .mem, .none, .none } },
130712 .{ .src = .{ .to_sse, .none, .none } },
130713 },
130714 .extra_temps = .{
130715 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130716 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130717 .unused,
130718 .unused,
130719 .unused,
130720 .unused,
130721 .unused,
130722 .unused,
130723 .unused,
130724 .unused,
130725 .unused,
130726 },
130727 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130728 .each = .{ .once = &.{
130729 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
130730 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
130731 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130732 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130733 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130734 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130735 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130736 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130737 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130738 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130739 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130740 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130741 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130742 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130743 } },
130744 }, .{
130745 .required_features = .{ .f16c, null, null, null },
130746 .dst_constraints = .{ .{ .float = .word }, .any },
130747 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
130748 .patterns = &.{
130749 .{ .src = .{ .to_sse, .none, .none } },
130750 },
130751 .extra_temps = .{
130752 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130753 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130754 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
130755 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130756 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130757 .unused,
130758 .unused,
130759 .unused,
130760 .unused,
130761 .unused,
130762 .unused,
130763 },
130764 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130765 .each = .{ .once = &.{
130766 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130767 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
130768 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130769 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130770 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130771 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
130772 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
130773 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
130774 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
130775 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
130776 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130777 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130778 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130779 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130780 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
130781 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130782 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130783 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130784 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
130785 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130786 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130787 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130788 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130789 } },
130790 }, .{
130791 .required_features = .{ .f16c, null, null, null },
130792 .dst_constraints = .{ .{ .float = .word }, .any },
130793 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
130794 .patterns = &.{
130795 .{ .src = .{ .to_sse, .none, .none } },
130796 },
130797 .extra_temps = .{
130798 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130799 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130800 .unused,
130801 .unused,
130802 .unused,
130803 .unused,
130804 .unused,
130805 .unused,
130806 .unused,
130807 .unused,
130808 .unused,
130809 },
130810 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
130811 .each = .{ .once = &.{
130812 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
130813 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
130814 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
130815 .{ ._, .v_ps, .min, .tmp1y, .dst0y, .tmp0y, ._ },
130816 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
130817 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
130818 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
130819 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130820 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130821 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130822 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130823 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130824 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130825 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130826 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130827 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130828 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130829 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130830 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130831 } },
130832 }, .{
130833 .required_features = .{ .avx512f, null, null, null },
130834 .dst_constraints = .{ .{ .float = .word }, .any },
130835 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
130836 .patterns = &.{
130837 .{ .src = .{ .to_mem, .none, .none } },
130838 },
130839 .extra_temps = .{
130840 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
130841 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130842 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
130843 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130844 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130845 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130846 .unused,
130847 .unused,
130848 .unused,
130849 .unused,
130850 .unused,
130851 },
130852 .dst_temps = .{ .{ .rc = .sse }, .unused },
130853 .each = .{ .once = &.{
130854 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
130855 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
130856 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
130857 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
130858 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
130859 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
130860 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
130861 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
130862 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
130863 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
130864 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
130865 .{ ._, .v_ps, .min, .tmp5y, .tmp3y, .tmp4y, ._ },
130866 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
130867 .{ ._, .v_ps, .blendv, .tmp3y, .tmp3y, .tmp5y, .tmp4y },
130868 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
130869 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
130870 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
130871 .{ ._, .v_ps, .min, .tmp5y, .dst0y, .tmp4y, ._ },
130872 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
130873 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp5y, .tmp4y },
130874 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
130875 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
130876 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
130877 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
130878 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130879 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130880 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130881 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
130882 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130883 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130884 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130885 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
130886 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
130887 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
130888 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
130889 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130890 } },
130891 }, .{
130892 .required_features = .{ .avx512f, null, null, null },
130893 .dst_constraints = .{ .{ .float = .word }, .any },
130894 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
130895 .patterns = &.{
130896 .{ .src = .{ .to_mem, .none, .none } },
130897 },
130898 .extra_temps = .{
130899 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130900 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130901 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130902 .unused,
130903 .unused,
130904 .unused,
130905 .unused,
130906 .unused,
130907 .unused,
130908 .unused,
130909 .unused,
130910 },
130911 .dst_temps = .{ .{ .rc = .sse }, .unused },
130912 .each = .{ .once = &.{
130913 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
130914 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
130915 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
130916 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
130917 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
130918 .{ ._, .v_ps, .min, .tmp2y, .tmp0y, .tmp1y, ._ },
130919 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
130920 .{ ._, .v_ps, .blendv, .tmp0y, .tmp0y, .tmp2y, .tmp1y },
130921 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
130922 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
130923 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
130924 .{ ._, .v_ps, .min, .tmp2y, .dst0y, .tmp1y, ._ },
130925 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
130926 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
130927 .{ ._, .v_ps, .min, .tmp1y, .dst0y, .tmp0y, ._ },
130928 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
130929 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
130930 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
130931 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130932 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130933 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130934 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
130935 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130936 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130937 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130938 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
130939 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
130940 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
130941 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
130942 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130943 } },
130944 }, .{
130945 .required_features = .{ .f16c, null, null, null },
130946 .dst_constraints = .{ .{ .float = .word }, .any },
130947 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
130948 .patterns = &.{
130949 .{ .src = .{ .to_mem, .none, .none } },
130950 },
130951 .extra_temps = .{
130952 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130953 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130954 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
130955 .unused,
130956 .unused,
130957 .unused,
130958 .unused,
130959 .unused,
130960 .unused,
130961 .unused,
130962 .unused,
130963 },
130964 .dst_temps = .{ .{ .rc = .sse }, .unused },
130965 .clobbers = .{ .eflags = true },
130966 .each = .{ .once = &.{
130967 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
130968 .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
130969 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
130970 .{ ._, .v_ps, .min, .tmp2y, .dst0y, .tmp1y, ._ },
130971 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
130972 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
130973 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
130974 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
130975 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
130976 .{ ._, .v_ps, .min, .tmp2x, .dst0x, .tmp1x, ._ },
130977 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
130978 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
130979 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
130980 .{ ._, .v_ps, .min, .tmp2x, .dst0x, .tmp1x, ._ },
130981 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
130982 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
130983 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
130984 .{ ._, .v_ss, .min, .tmp2x, .dst0x, .tmp1x, ._ },
130985 .{ ._, .v_ss, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
130986 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
130987 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
130988 } },
130989 }, .{
130990 .required_features = .{ .avx512f, null, null, null },
130991 .dst_constraints = .{ .{ .float = .word }, .any },
130992 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
130993 .patterns = &.{
130994 .{ .src = .{ .to_mem, .none, .none } },
130995 },
130996 .extra_temps = .{
130997 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
130998 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
130999 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131000 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131001 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131002 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131003 .unused,
131004 .unused,
131005 .unused,
131006 .unused,
131007 .unused,
131008 },
131009 .dst_temps = .{ .{ .rc = .sse }, .unused },
131010 .clobbers = .{ .eflags = true },
131011 .each = .{ .once = &.{
131012 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131013 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131014 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
131015 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131016 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
131017 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
131018 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131019 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
131020 .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ },
131021 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
131022 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
131023 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
131024 .{ ._, .v_ps, .min, .tmp5y, .tmp3y, .tmp4y, ._ },
131025 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
131026 .{ ._, .v_ps, .blendv, .tmp3y, .tmp3y, .tmp5y, .tmp4y },
131027 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
131028 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
131029 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
131030 .{ ._, .v_ps, .min, .tmp5y, .dst0y, .tmp4y, ._ },
131031 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
131032 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp5y, .tmp4y },
131033 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131034 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131035 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131036 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
131037 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131038 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131039 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131040 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131041 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131042 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131043 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131044 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131045 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131046 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
131047 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131048 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131049 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131050 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131051 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131052 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131053 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131054 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
131055 } },
131056 }, .{
131057 .required_features = .{ .f16c, null, null, null },
131058 .dst_constraints = .{ .{ .float = .word }, .any },
131059 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
131060 .patterns = &.{
131061 .{ .src = .{ .to_mem, .none, .none } },
131062 },
131063 .extra_temps = .{
131064 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131065 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131066 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131067 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131068 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131069 .unused,
131070 .unused,
131071 .unused,
131072 .unused,
131073 .unused,
131074 .unused,
131075 },
131076 .dst_temps = .{ .{ .rc = .sse }, .unused },
131077 .clobbers = .{ .eflags = true },
131078 .each = .{ .once = &.{
131079 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131080 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131081 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131082 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
131083 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131084 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
131085 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131086 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
131087 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
131088 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131089 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131090 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131091 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
131092 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131093 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131094 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131095 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131096 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131097 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131098 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131099 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131100 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131101 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
131102 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131103 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131104 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131105 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131106 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131107 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131108 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131109 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
131110 } },
131111 }, .{
131112 .required_features = .{ .avx, null, null, null },
131113 .dst_constraints = .{ .{ .float = .word }, .any },
131114 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
131115 .patterns = &.{
131116 .{ .src = .{ .to_mem, .none, .none } },
131117 },
131118 .call_frame = .{ .alignment = .@"16" },
131119 .extra_temps = .{
131120 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131121 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
131122 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
131123 .unused,
131124 .unused,
131125 .unused,
131126 .unused,
131127 .unused,
131128 .unused,
131129 .unused,
131130 .unused,
131131 },
131132 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
131133 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
131134 .each = .{ .once = &.{
131135 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
131136 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
131137 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) },
131138 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
131139 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
131140 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
131141 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
131142 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131143 } },
131144 }, .{
131145 .required_features = .{ .sse2, null, null, null },
131146 .dst_constraints = .{ .{ .float = .word }, .any },
131147 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
131148 .patterns = &.{
131149 .{ .src = .{ .to_mem, .none, .none } },
131150 },
131151 .call_frame = .{ .alignment = .@"16" },
131152 .extra_temps = .{
131153 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131154 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
131155 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
131156 .unused,
131157 .unused,
131158 .unused,
131159 .unused,
131160 .unused,
131161 .unused,
131162 .unused,
131163 .unused,
131164 },
131165 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
131166 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
131167 .each = .{ .once = &.{
131168 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
131169 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
131170 .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ },
131171 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
131172 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
131173 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
131174 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
131175 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131176 } },
131177 }, .{
131178 .required_features = .{ .sse, null, null, null },
131179 .dst_constraints = .{ .{ .float = .word }, .any },
131180 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
131181 .patterns = &.{
131182 .{ .src = .{ .to_mem, .none, .none } },
131183 },
131184 .call_frame = .{ .alignment = .@"16" },
131185 .extra_temps = .{
131186 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131187 .{ .type = .f16, .kind = .{ .reg = .ax } },
131188 .{ .type = .f32, .kind = .mem },
131189 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
131190 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
131191 .unused,
131192 .unused,
131193 .unused,
131194 .unused,
131195 .unused,
131196 .unused,
131197 },
131198 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
131199 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
131200 .each = .{ .once = &.{
131201 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
131202 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
131203 .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
131204 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
131205 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
131206 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
131207 .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ },
131208 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
131209 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
131210 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131211 } },
131212 }, .{
131213 .required_features = .{ .avx, null, null, null },
131214 .dst_constraints = .{ .{ .float = .dword }, .any },
131215 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
131216 .patterns = &.{
131217 .{ .src = .{ .to_sse, .none, .none } },
131218 },
131219 .extra_temps = .{
131220 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131221 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131222 .unused,
131223 .unused,
131224 .unused,
131225 .unused,
131226 .unused,
131227 .unused,
131228 .unused,
131229 .unused,
131230 .unused,
131231 },
131232 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131233 .each = .{ .once = &.{
131234 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
131235 .{ ._, .v_ss, .min, .tmp1x, .src0x, .tmp0x, ._ },
131236 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131237 .{ ._, .v_ps, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
131238 } },
131239 }, .{
131240 .required_features = .{ .sse4_1, null, null, null },
131241 .dst_constraints = .{ .{ .float = .dword }, .any },
131242 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
131243 .patterns = &.{
131244 .{ .src = .{ .to_mut_sse, .none, .none } },
131245 },
131246 .extra_temps = .{
131247 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131248 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131249 .unused,
131250 .unused,
131251 .unused,
131252 .unused,
131253 .unused,
131254 .unused,
131255 .unused,
131256 .unused,
131257 .unused,
131258 },
131259 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131260 .each = .{ .once = &.{
131261 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
131262 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
131263 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131264 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131265 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131266 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
131267 } },
131268 }, .{
131269 .required_features = .{ .sse, null, null, null },
131270 .dst_constraints = .{ .{ .float = .dword }, .any },
131271 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
131272 .patterns = &.{
131273 .{ .src = .{ .to_mut_sse, .none, .none } },
131274 },
131275 .extra_temps = .{
131276 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131277 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131278 .unused,
131279 .unused,
131280 .unused,
131281 .unused,
131282 .unused,
131283 .unused,
131284 .unused,
131285 .unused,
131286 .unused,
131287 },
131288 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131289 .each = .{ .once = &.{
131290 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
131291 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
131292 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131293 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131294 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131295 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
131296 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
131297 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
131298 } },
131299 }, .{
131300 .required_features = .{ .avx, null, null, null },
131301 .dst_constraints = .{ .{ .float = .dword }, .any },
131302 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131303 .patterns = &.{
131304 .{ .src = .{ .to_sse, .none, .none } },
131305 },
131306 .extra_temps = .{
131307 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131308 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131309 .unused,
131310 .unused,
131311 .unused,
131312 .unused,
131313 .unused,
131314 .unused,
131315 .unused,
131316 .unused,
131317 .unused,
131318 },
131319 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131320 .each = .{ .once = &.{
131321 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
131322 .{ ._, .v_ss, .min, .tmp1x, .src0x, .tmp0x, ._ },
131323 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131324 .{ ._, .v_ps, .blendv, .tmp0x, .src0x, .tmp1x, .tmp0x },
131325 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
131326 .{ ._, .v_ss, .min, .tmp1x, .tmp0x, .dst0x, ._ },
131327 .{ ._, .v_ss, .cmp, .dst0x, .dst0x, .dst0x, .vp(.ord) },
131328 .{ ._, .v_ps, .blendv, .dst0x, .tmp0x, .tmp1x, .dst0x },
131329 } },
131330 }, .{
131331 .required_features = .{ .sse4_1, null, null, null },
131332 .dst_constraints = .{ .{ .float = .dword }, .any },
131333 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131334 .patterns = &.{
131335 .{ .src = .{ .to_mut_sse, .none, .none } },
131336 },
131337 .extra_temps = .{
131338 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131339 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131340 .unused,
131341 .unused,
131342 .unused,
131343 .unused,
131344 .unused,
131345 .unused,
131346 .unused,
131347 .unused,
131348 .unused,
131349 },
131350 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131351 .each = .{ .once = &.{
131352 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
131353 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
131354 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131355 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131356 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131357 .{ ._, ._ps, .blendv, .tmp1x, .src0x, .tmp0x, ._ },
131358 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
131359 .{ ._, ._ps, .mova, .tmp0x, .tmp1x, ._, ._ },
131360 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
131361 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131362 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131363 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
131364 } },
131365 }, .{
131366 .required_features = .{ .sse, null, null, null },
131367 .dst_constraints = .{ .{ .float = .dword }, .any },
131368 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131369 .patterns = &.{
131370 .{ .src = .{ .to_mut_sse, .none, .none } },
131371 },
131372 .extra_temps = .{
131373 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131374 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131375 .unused,
131376 .unused,
131377 .unused,
131378 .unused,
131379 .unused,
131380 .unused,
131381 .unused,
131382 .unused,
131383 .unused,
131384 },
131385 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131386 .each = .{ .once = &.{
131387 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
131388 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
131389 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131390 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131391 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131392 .{ ._, ._ps, .@"and", .tmp1x, .tmp0x, ._, ._ },
131393 .{ ._, ._ps, .andn, .tmp0x, .dst0x, ._, ._ },
131394 .{ ._, ._ps, .@"or", .tmp0x, .tmp1x, ._, ._ },
131395 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
131396 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131397 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131398 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131399 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
131400 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
131401 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
131402 } },
131403 }, .{
131404 .required_features = .{ .avx, null, null, null },
131405 .dst_constraints = .{ .{ .float = .dword }, .any },
131406 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131407 .patterns = &.{
131408 .{ .src = .{ .to_sse, .none, .none } },
131409 },
131410 .extra_temps = .{
131411 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131412 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131413 .unused,
131414 .unused,
131415 .unused,
131416 .unused,
131417 .unused,
131418 .unused,
131419 .unused,
131420 .unused,
131421 .unused,
131422 },
131423 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131424 .each = .{ .once = &.{
131425 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
131426 .{ ._, .v_ps, .min, .tmp1x, .src0x, .tmp0x, ._ },
131427 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131428 .{ ._, .v_ps, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
131429 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
131430 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131431 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131432 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131433 } },
131434 }, .{
131435 .required_features = .{ .sse4_1, null, null, null },
131436 .dst_constraints = .{ .{ .float = .dword }, .any },
131437 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131438 .patterns = &.{
131439 .{ .src = .{ .to_mut_sse, .none, .none } },
131440 },
131441 .extra_temps = .{
131442 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131443 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131444 .unused,
131445 .unused,
131446 .unused,
131447 .unused,
131448 .unused,
131449 .unused,
131450 .unused,
131451 .unused,
131452 .unused,
131453 },
131454 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131455 .each = .{ .once = &.{
131456 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
131457 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
131458 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131459 .{ ._, ._ps, .min, .tmp1x, .tmp0x, ._, ._ },
131460 .{ ._, ._ps, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131461 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
131462 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
131463 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
131464 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131465 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131466 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
131467 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
131468 } },
131469 }, .{
131470 .required_features = .{ .sse, null, null, null },
131471 .dst_constraints = .{ .{ .float = .dword }, .any },
131472 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131473 .patterns = &.{
131474 .{ .src = .{ .to_mut_sse, .none, .none } },
131475 },
131476 .extra_temps = .{
131477 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131478 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131479 .unused,
131480 .unused,
131481 .unused,
131482 .unused,
131483 .unused,
131484 .unused,
131485 .unused,
131486 .unused,
131487 .unused,
131488 },
131489 .dst_temps = .{ .{ .ref = .src0 }, .unused },
131490 .each = .{ .once = &.{
131491 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
131492 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
131493 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
131494 .{ ._, ._ps, .min, .tmp1x, .tmp0x, ._, ._ },
131495 .{ ._, ._ps, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131496 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
131497 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
131498 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
131499 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
131500 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
131501 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
131502 .{ ._, ._ss, .min, .tmp1x, .tmp0x, ._, ._ },
131503 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
131504 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
131505 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
131506 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
131507 } },
131508 }, .{
131509 .required_features = .{ .avx, null, null, null },
131510 .dst_constraints = .{ .{ .float = .dword }, .any },
131511 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
131512 .patterns = &.{
131513 .{ .src = .{ .to_sse, .none, .none } },
131514 },
131515 .extra_temps = .{
131516 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131517 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131518 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131519 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131520 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131521 .unused,
131522 .unused,
131523 .unused,
131524 .unused,
131525 .unused,
131526 .unused,
131527 },
131528 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131529 .each = .{ .once = &.{
131530 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131531 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
131532 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131533 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131534 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131535 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131536 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131537 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131538 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
131539 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131540 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131541 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131542 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131543 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131544 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131545 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131546 } },
131547 }, .{
131548 .required_features = .{ .avx, null, null, null },
131549 .dst_constraints = .{ .{ .float = .dword }, .any },
131550 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
131551 .patterns = &.{
131552 .{ .src = .{ .to_sse, .none, .none } },
131553 },
131554 .extra_temps = .{
131555 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131556 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131557 .unused,
131558 .unused,
131559 .unused,
131560 .unused,
131561 .unused,
131562 .unused,
131563 .unused,
131564 .unused,
131565 .unused,
131566 },
131567 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
131568 .each = .{ .once = &.{
131569 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
131570 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131571 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131572 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131573 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
131574 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131575 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131576 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131577 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
131578 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131579 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131580 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131581 } },
131582 }, .{
131583 .required_features = .{ .avx512f, null, null, null },
131584 .dst_constraints = .{ .{ .float = .dword }, .any },
131585 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
131586 .patterns = &.{
131587 .{ .src = .{ .to_mem, .none, .none } },
131588 },
131589 .extra_temps = .{
131590 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
131591 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131592 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131593 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131594 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131595 .unused,
131596 .unused,
131597 .unused,
131598 .unused,
131599 .unused,
131600 .unused,
131601 },
131602 .dst_temps = .{ .{ .rc = .sse }, .unused },
131603 .each = .{ .once = &.{
131604 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131605 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131606 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
131607 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131608 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
131609 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
131610 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131611 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
131612 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131613 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131614 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131615 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131616 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131617 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131618 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131619 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
131620 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131621 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131622 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131623 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131624 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131625 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131626 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131627 } },
131628 }, .{
131629 .required_features = .{ .avx512f, null, null, null },
131630 .dst_constraints = .{ .{ .float = .dword }, .any },
131631 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
131632 .patterns = &.{
131633 .{ .src = .{ .to_mem, .none, .none } },
131634 },
131635 .extra_temps = .{
131636 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131637 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131638 .unused,
131639 .unused,
131640 .unused,
131641 .unused,
131642 .unused,
131643 .unused,
131644 .unused,
131645 .unused,
131646 .unused,
131647 },
131648 .dst_temps = .{ .{ .rc = .sse }, .unused },
131649 .each = .{ .once = &.{
131650 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
131651 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
131652 .{ ._, .v_ps, .min, .tmp1y, .dst0y, .tmp0y, ._ },
131653 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
131654 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
131655 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
131656 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131657 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131658 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131659 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
131660 .{ ._, .v_ps, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131661 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131662 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131663 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
131664 .{ ._, .v_ss, .min, .tmp1x, .dst0x, .tmp0x, ._ },
131665 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
131666 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
131667 } },
131668 }, .{
131669 .required_features = .{ .avx, null, null, null },
131670 .dst_constraints = .{ .{ .float = .dword }, .any },
131671 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
131672 .patterns = &.{
131673 .{ .src = .{ .to_mem, .none, .none } },
131674 },
131675 .extra_temps = .{
131676 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131677 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131678 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131679 .unused,
131680 .unused,
131681 .unused,
131682 .unused,
131683 .unused,
131684 .unused,
131685 .unused,
131686 .unused,
131687 },
131688 .dst_temps = .{ .{ .rc = .sse }, .unused },
131689 .clobbers = .{ .eflags = true },
131690 .each = .{ .once = &.{
131691 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
131692 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
131693 .{ .@"0:", .v_ps, .mova, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
131694 .{ ._, .v_ps, .min, .tmp2y, .dst0y, .tmp1y, ._ },
131695 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
131696 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
131697 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
131698 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131699 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
131700 .{ ._, .v_ps, .min, .tmp2x, .dst0x, .tmp1x, ._ },
131701 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
131702 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
131703 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
131704 .{ ._, .v_ps, .min, .tmp2x, .dst0x, .tmp1x, ._ },
131705 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
131706 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
131707 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
131708 .{ ._, .v_ss, .min, .tmp2x, .dst0x, .tmp1x, ._ },
131709 .{ ._, .v_ss, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
131710 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
131711 } },
131712 }, .{
131713 .required_features = .{ .sse4_1, null, null, null },
131714 .dst_constraints = .{ .{ .float = .dword }, .any },
131715 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131716 .patterns = &.{
131717 .{ .src = .{ .to_mem, .none, .none } },
131718 },
131719 .extra_temps = .{
131720 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131721 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131722 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131723 .unused,
131724 .unused,
131725 .unused,
131726 .unused,
131727 .unused,
131728 .unused,
131729 .unused,
131730 .unused,
131731 },
131732 .dst_temps = .{ .{ .rc = .sse }, .unused },
131733 .clobbers = .{ .eflags = true },
131734 .each = .{ .once = &.{
131735 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
131736 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
131737 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
131738 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131739 .{ ._, ._ps, .min, .tmp2x, .tmp1x, ._, ._ },
131740 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
131741 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
131742 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131743 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131744 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
131745 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
131746 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131747 .{ ._, ._ps, .min, .tmp2x, .tmp1x, ._, ._ },
131748 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
131749 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
131750 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
131751 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
131752 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131753 .{ ._, ._ss, .min, .tmp2x, .tmp1x, ._, ._ },
131754 .{ ._, ._ss, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
131755 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
131756 } },
131757 }, .{
131758 .required_features = .{ .sse, null, null, null },
131759 .dst_constraints = .{ .{ .float = .dword }, .any },
131760 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131761 .patterns = &.{
131762 .{ .src = .{ .to_mem, .none, .none } },
131763 },
131764 .extra_temps = .{
131765 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131766 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131767 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131768 .unused,
131769 .unused,
131770 .unused,
131771 .unused,
131772 .unused,
131773 .unused,
131774 .unused,
131775 .unused,
131776 },
131777 .dst_temps = .{ .{ .rc = .sse }, .unused },
131778 .clobbers = .{ .eflags = true },
131779 .each = .{ .once = &.{
131780 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
131781 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
131782 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
131783 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131784 .{ ._, ._ps, .min, .tmp2x, .tmp1x, ._, ._ },
131785 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
131786 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
131787 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
131788 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
131789 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131790 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131791 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
131792 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
131793 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131794 .{ ._, ._ps, .min, .tmp2x, .tmp1x, ._, ._ },
131795 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
131796 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
131797 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
131798 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
131799 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
131800 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
131801 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
131802 .{ ._, ._ss, .min, .tmp2x, .tmp1x, ._, ._ },
131803 .{ ._, ._ss, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
131804 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
131805 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
131806 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
131807 } },
131808 }, .{
131809 .required_features = .{ .avx512f, null, null, null },
131810 .dst_constraints = .{ .{ .float = .dword }, .any },
131811 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
131812 .patterns = &.{
131813 .{ .src = .{ .to_mem, .none, .none } },
131814 },
131815 .extra_temps = .{
131816 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131817 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131818 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131819 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131820 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
131821 .unused,
131822 .unused,
131823 .unused,
131824 .unused,
131825 .unused,
131826 .unused,
131827 },
131828 .dst_temps = .{ .{ .rc = .sse }, .unused },
131829 .clobbers = .{ .eflags = true },
131830 .each = .{ .once = &.{
131831 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131832 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131833 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
131834 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131835 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
131836 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
131837 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131838 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
131839 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131840 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131841 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131842 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
131843 .{ .@"0:", .v_ps, .mova, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
131844 .{ ._, .v_ps, .min, .tmp4y, .dst0y, .tmp3y, ._ },
131845 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
131846 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
131847 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
131848 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131849 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131850 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131851 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131852 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131853 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
131854 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131855 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131856 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131857 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131858 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131859 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131860 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131861 } },
131862 }, .{
131863 .required_features = .{ .avx, null, null, null },
131864 .dst_constraints = .{ .{ .float = .dword }, .any },
131865 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
131866 .patterns = &.{
131867 .{ .src = .{ .to_mem, .none, .none } },
131868 },
131869 .extra_temps = .{
131870 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131871 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131872 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131873 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131874 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131875 .unused,
131876 .unused,
131877 .unused,
131878 .unused,
131879 .unused,
131880 .unused,
131881 },
131882 .dst_temps = .{ .{ .rc = .sse }, .unused },
131883 .clobbers = .{ .eflags = true },
131884 .each = .{ .once = &.{
131885 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131886 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
131887 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131888 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
131889 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
131890 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
131891 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
131892 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131893 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131894 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131895 .{ .@"0:", .v_ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
131896 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131897 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131898 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131899 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131900 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131901 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
131902 .{ ._, .v_ps, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131903 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131904 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131905 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
131906 .{ ._, .v_ss, .min, .tmp4x, .dst0x, .tmp3x, ._ },
131907 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
131908 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
131909 } },
131910 }, .{
131911 .required_features = .{ .sse4_1, null, null, null },
131912 .dst_constraints = .{ .{ .float = .dword }, .any },
131913 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131914 .patterns = &.{
131915 .{ .src = .{ .to_mem, .none, .none } },
131916 },
131917 .extra_temps = .{
131918 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131919 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131920 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131921 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
131922 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131923 .unused,
131924 .unused,
131925 .unused,
131926 .unused,
131927 .unused,
131928 .unused,
131929 },
131930 .dst_temps = .{ .{ .rc = .sse }, .unused },
131931 .clobbers = .{ .eflags = true },
131932 .each = .{ .once = &.{
131933 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131934 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
131935 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131936 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
131937 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
131938 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
131939 .{ .@"0:", ._ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
131940 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
131941 .{ ._, ._ps, .min, .tmp4x, .tmp3x, ._, ._ },
131942 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
131943 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
131944 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131945 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131946 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
131947 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
131948 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
131949 .{ ._, ._ps, .min, .tmp4x, .tmp3x, ._, ._ },
131950 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
131951 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
131952 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
131953 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
131954 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
131955 .{ ._, ._ss, .min, .tmp4x, .tmp3x, ._, ._ },
131956 .{ ._, ._ss, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
131957 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
131958 } },
131959 }, .{
131960 .required_features = .{ .sse, null, null, null },
131961 .dst_constraints = .{ .{ .float = .dword }, .any },
131962 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
131963 .patterns = &.{
131964 .{ .src = .{ .to_mem, .none, .none } },
131965 },
131966 .extra_temps = .{
131967 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
131968 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
131969 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
131970 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131971 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
131972 .unused,
131973 .unused,
131974 .unused,
131975 .unused,
131976 .unused,
131977 .unused,
131978 },
131979 .dst_temps = .{ .{ .rc = .sse }, .unused },
131980 .clobbers = .{ .eflags = true },
131981 .each = .{ .once = &.{
131982 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
131983 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
131984 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
131985 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
131986 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
131987 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
131988 .{ .@"0:", ._ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
131989 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
131990 .{ ._, ._ps, .min, .tmp4x, .tmp3x, ._, ._ },
131991 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
131992 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
131993 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
131994 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
131995 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
131996 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
131997 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
131998 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
131999 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
132000 .{ ._, ._ps, .min, .tmp4x, .tmp3x, ._, ._ },
132001 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
132002 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
132003 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
132004 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
132005 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
132006 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
132007 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
132008 .{ ._, ._ss, .min, .tmp4x, .tmp3x, ._, ._ },
132009 .{ ._, ._ss, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
132010 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
132011 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
132012 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
132013 } },
132014 }, .{
132015 .required_features = .{ .avx, null, null, null },
132016 .dst_constraints = .{ .{ .float = .qword }, .any },
132017 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132018 .patterns = &.{
132019 .{ .src = .{ .to_sse, .none, .none } },
132020 },
132021 .extra_temps = .{
132022 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132023 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132024 .unused,
132025 .unused,
132026 .unused,
132027 .unused,
132028 .unused,
132029 .unused,
132030 .unused,
132031 .unused,
132032 .unused,
132033 },
132034 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
132035 .each = .{ .once = &.{
132036 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
132037 .{ ._, .v_sd, .min, .tmp1x, .src0x, .tmp0x, ._ },
132038 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132039 .{ ._, .v_pd, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
132040 } },
132041 }, .{
132042 .required_features = .{ .sse4_1, null, null, null },
132043 .dst_constraints = .{ .{ .float = .qword }, .any },
132044 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132045 .patterns = &.{
132046 .{ .src = .{ .to_mut_sse, .none, .none } },
132047 },
132048 .extra_temps = .{
132049 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
132050 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132051 .unused,
132052 .unused,
132053 .unused,
132054 .unused,
132055 .unused,
132056 .unused,
132057 .unused,
132058 .unused,
132059 .unused,
132060 },
132061 .dst_temps = .{ .{ .ref = .src0 }, .unused },
132062 .each = .{ .once = &.{
132063 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
132064 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
132065 .{ ._, ._pd, .mova, .tmp1x, .src0x, ._, ._ },
132066 .{ ._, ._sd, .min, .tmp1x, .tmp0x, ._, ._ },
132067 .{ ._, ._sd, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
132068 .{ ._, ._pd, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
132069 } },
132070 }, .{
132071 .required_features = .{ .sse2, null, null, null },
132072 .dst_constraints = .{ .{ .float = .qword }, .any },
132073 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132074 .patterns = &.{
132075 .{ .src = .{ .to_mut_sse, .none, .none } },
132076 },
132077 .extra_temps = .{
132078 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132079 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132080 .unused,
132081 .unused,
132082 .unused,
132083 .unused,
132084 .unused,
132085 .unused,
132086 .unused,
132087 .unused,
132088 .unused,
132089 },
132090 .dst_temps = .{ .{ .ref = .src0 }, .unused },
132091 .each = .{ .once = &.{
132092 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
132093 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
132094 .{ ._, ._pd, .mova, .tmp1x, .src0x, ._, ._ },
132095 .{ ._, ._sd, .min, .tmp1x, .tmp0x, ._, ._ },
132096 .{ ._, ._sd, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
132097 .{ ._, ._pd, .@"and", .dst0x, .tmp0x, ._, ._ },
132098 .{ ._, ._pd, .andn, .tmp0x, .tmp1x, ._, ._ },
132099 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
132100 } },
132101 }, .{
132102 .required_features = .{ .avx, null, null, null },
132103 .dst_constraints = .{ .{ .float = .qword }, .any },
132104 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
132105 .patterns = &.{
132106 .{ .src = .{ .to_sse, .none, .none } },
132107 },
132108 .extra_temps = .{
132109 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132110 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132111 .unused,
132112 .unused,
132113 .unused,
132114 .unused,
132115 .unused,
132116 .unused,
132117 .unused,
132118 .unused,
132119 .unused,
132120 },
132121 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
132122 .each = .{ .once = &.{
132123 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
132124 .{ ._, .v_sd, .min, .tmp1x, .src0x, .tmp0x, ._ },
132125 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132126 .{ ._, .v_pd, .blendv, .tmp0x, .src0x, .tmp1x, .tmp0x },
132127 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
132128 .{ ._, .v_sd, .min, .tmp1x, .tmp0x, .dst0x, ._ },
132129 .{ ._, .v_sd, .cmp, .dst0x, .dst0x, .dst0x, .vp(.ord) },
132130 .{ ._, .v_pd, .blendv, .dst0x, .tmp0x, .tmp1x, .dst0x },
132131 } },
132132 }, .{
132133 .required_features = .{ .avx, null, null, null },
132134 .dst_constraints = .{ .{ .float = .qword }, .any },
132135 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
132136 .patterns = &.{
132137 .{ .src = .{ .to_sse, .none, .none } },
132138 },
132139 .extra_temps = .{
132140 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132141 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132142 .unused,
132143 .unused,
132144 .unused,
132145 .unused,
132146 .unused,
132147 .unused,
132148 .unused,
132149 .unused,
132150 .unused,
132151 },
132152 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
132153 .each = .{ .once = &.{
132154 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
132155 .{ ._, .v_pd, .min, .tmp1x, .src0x, .tmp0x, ._ },
132156 .{ ._, .v_pd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132157 .{ ._, .v_pd, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
132158 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
132159 .{ ._, .v_sd, .min, .tmp1x, .dst0x, .tmp0x, ._ },
132160 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132161 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
132162 } },
132163 }, .{
132164 .required_features = .{ .avx512f, null, null, null },
132165 .dst_constraints = .{ .{ .float = .qword }, .any },
132166 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
132167 .patterns = &.{
132168 .{ .src = .{ .to_mem, .none, .none } },
132169 },
132170 .extra_temps = .{
132171 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
132172 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132173 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132174 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
132175 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
132176 .unused,
132177 .unused,
132178 .unused,
132179 .unused,
132180 .unused,
132181 .unused,
132182 },
132183 .dst_temps = .{ .{ .rc = .sse }, .unused },
132184 .each = .{ .once = &.{
132185 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132186 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
132187 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
132188 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132189 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
132190 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
132191 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132192 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
132193 .{ ._, .v_pd, .min, .tmp4y, .dst0y, .tmp3y, ._ },
132194 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
132195 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
132196 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132197 .{ ._, .v_pd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132198 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132199 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132200 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
132201 .{ ._, .v_sd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132202 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132203 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132204 } },
132205 }, .{
132206 .required_features = .{ .avx512f, null, null, null },
132207 .dst_constraints = .{ .{ .float = .qword }, .any },
132208 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
132209 .patterns = &.{
132210 .{ .src = .{ .to_mem, .none, .none } },
132211 },
132212 .extra_temps = .{
132213 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132214 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132215 .unused,
132216 .unused,
132217 .unused,
132218 .unused,
132219 .unused,
132220 .unused,
132221 .unused,
132222 .unused,
132223 .unused,
132224 },
132225 .dst_temps = .{ .{ .rc = .sse }, .unused },
132226 .each = .{ .once = &.{
132227 .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ },
132228 .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
132229 .{ ._, .v_pd, .min, .tmp1y, .dst0y, .tmp0y, ._ },
132230 .{ ._, .v_pd, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
132231 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
132232 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
132233 .{ ._, .v_pd, .min, .tmp1x, .dst0x, .tmp0x, ._ },
132234 .{ ._, .v_pd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132235 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
132236 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
132237 .{ ._, .v_sd, .min, .tmp1x, .dst0x, .tmp0x, ._ },
132238 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
132239 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
132240 } },
132241 }, .{
132242 .required_features = .{ .avx, null, null, null },
132243 .dst_constraints = .{ .{ .float = .qword }, .any },
132244 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
132245 .patterns = &.{
132246 .{ .src = .{ .to_mem, .none, .none } },
132247 },
132248 .extra_temps = .{
132249 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132250 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132251 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132252 .unused,
132253 .unused,
132254 .unused,
132255 .unused,
132256 .unused,
132257 .unused,
132258 .unused,
132259 .unused,
132260 },
132261 .dst_temps = .{ .{ .rc = .sse }, .unused },
132262 .clobbers = .{ .eflags = true },
132263 .each = .{ .once = &.{
132264 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
132265 .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
132266 .{ .@"0:", .v_pd, .mova, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
132267 .{ ._, .v_pd, .min, .tmp2y, .dst0y, .tmp1y, ._ },
132268 .{ ._, .v_pd, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
132269 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
132270 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
132271 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132272 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
132273 .{ ._, .v_pd, .min, .tmp2x, .dst0x, .tmp1x, ._ },
132274 .{ ._, .v_pd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
132275 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
132276 .{ ._, .v_pd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
132277 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
132278 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
132279 .{ ._, .v_sd, .min, .tmp2x, .dst0x, .tmp1x, ._ },
132280 .{ ._, .v_sd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
132281 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
132282 } },
132283 }, .{
132284 .required_features = .{ .sse4_1, null, null, null },
132285 .dst_constraints = .{ .{ .float = .qword }, .any },
132286 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132287 .patterns = &.{
132288 .{ .src = .{ .to_mem, .none, .none } },
132289 },
132290 .extra_temps = .{
132291 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132292 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
132293 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132294 .unused,
132295 .unused,
132296 .unused,
132297 .unused,
132298 .unused,
132299 .unused,
132300 .unused,
132301 .unused,
132302 },
132303 .dst_temps = .{ .{ .rc = .sse }, .unused },
132304 .clobbers = .{ .eflags = true },
132305 .each = .{ .once = &.{
132306 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132307 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132308 .{ .@"0:", ._pd, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132309 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
132310 .{ ._, ._pd, .min, .tmp2x, .tmp1x, ._, ._ },
132311 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
132312 .{ ._, ._pd, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
132313 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132314 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132315 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
132316 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
132317 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
132318 .{ ._, ._sd, .min, .tmp2x, .tmp1x, ._, ._ },
132319 .{ ._, ._sd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
132320 .{ ._, ._pd, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
132321 } },
132322 }, .{
132323 .required_features = .{ .sse2, null, null, null },
132324 .dst_constraints = .{ .{ .float = .qword }, .any },
132325 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132326 .patterns = &.{
132327 .{ .src = .{ .to_mem, .none, .none } },
132328 },
132329 .extra_temps = .{
132330 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132331 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132332 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132333 .unused,
132334 .unused,
132335 .unused,
132336 .unused,
132337 .unused,
132338 .unused,
132339 .unused,
132340 .unused,
132341 },
132342 .dst_temps = .{ .{ .rc = .sse }, .unused },
132343 .clobbers = .{ .eflags = true },
132344 .each = .{ .once = &.{
132345 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132346 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132347 .{ .@"0:", ._pd, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132348 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
132349 .{ ._, ._pd, .min, .tmp2x, .tmp1x, ._, ._ },
132350 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
132351 .{ ._, ._pd, .@"and", .dst0x, .tmp1x, ._, ._ },
132352 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
132353 .{ ._, ._pd, .@"or", .dst0x, .tmp1x, ._, ._ },
132354 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132355 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132356 .{ ._, ._pd, .xor, .tmp1x, .tmp1x, ._, ._ },
132357 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
132358 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
132359 .{ ._, ._sd, .min, .tmp2x, .tmp1x, ._, ._ },
132360 .{ ._, ._sd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
132361 .{ ._, ._pd, .@"and", .dst0x, .tmp1x, ._, ._ },
132362 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
132363 .{ ._, ._pd, .@"or", .dst0x, .tmp1x, ._, ._ },
132364 } },
132365 }, .{
132366 .required_features = .{ .avx512f, null, null, null },
132367 .dst_constraints = .{ .{ .float = .qword }, .any },
132368 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
132369 .patterns = &.{
132370 .{ .src = .{ .to_mem, .none, .none } },
132371 },
132372 .extra_temps = .{
132373 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132374 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132375 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132376 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
132377 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
132378 .unused,
132379 .unused,
132380 .unused,
132381 .unused,
132382 .unused,
132383 .unused,
132384 },
132385 .dst_temps = .{ .{ .rc = .sse }, .unused },
132386 .clobbers = .{ .eflags = true },
132387 .each = .{ .once = &.{
132388 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132389 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
132390 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
132391 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132392 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
132393 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
132394 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132395 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
132396 .{ ._, .v_pd, .min, .tmp4y, .dst0y, .tmp3y, ._ },
132397 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
132398 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
132399 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
132400 .{ .@"0:", .v_pd, .mova, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
132401 .{ ._, .v_pd, .min, .tmp4y, .dst0y, .tmp3y, ._ },
132402 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
132403 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
132404 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
132405 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132406 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132407 .{ ._, .v_pd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132408 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132409 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132410 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
132411 .{ ._, .v_sd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132412 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132413 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132414 } },
132415 }, .{
132416 .required_features = .{ .avx, null, null, null },
132417 .dst_constraints = .{ .{ .float = .qword }, .any },
132418 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
132419 .patterns = &.{
132420 .{ .src = .{ .to_mem, .none, .none } },
132421 },
132422 .extra_temps = .{
132423 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132424 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132425 .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132426 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132427 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132428 .unused,
132429 .unused,
132430 .unused,
132431 .unused,
132432 .unused,
132433 .unused,
132434 },
132435 .dst_temps = .{ .{ .rc = .sse }, .unused },
132436 .clobbers = .{ .eflags = true },
132437 .each = .{ .once = &.{
132438 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132439 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
132440 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132441 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
132442 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
132443 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
132444 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
132445 .{ ._, .v_pd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132446 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132447 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132448 .{ .@"0:", .v_pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
132449 .{ ._, .v_pd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132450 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132451 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132452 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132453 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132454 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
132455 .{ ._, .v_sd, .min, .tmp4x, .dst0x, .tmp3x, ._ },
132456 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
132457 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
132458 } },
132459 }, .{
132460 .required_features = .{ .sse4_1, null, null, null },
132461 .dst_constraints = .{ .{ .float = .qword }, .any },
132462 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132463 .patterns = &.{
132464 .{ .src = .{ .to_mem, .none, .none } },
132465 },
132466 .extra_temps = .{
132467 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132468 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132469 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132470 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
132471 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132472 .unused,
132473 .unused,
132474 .unused,
132475 .unused,
132476 .unused,
132477 .unused,
132478 },
132479 .dst_temps = .{ .{ .rc = .sse }, .unused },
132480 .clobbers = .{ .eflags = true },
132481 .each = .{ .once = &.{
132482 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132483 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
132484 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132485 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
132486 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
132487 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
132488 .{ .@"0:", ._pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
132489 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
132490 .{ ._, ._pd, .min, .tmp4x, .tmp3x, ._, ._ },
132491 .{ ._, ._pd, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
132492 .{ ._, ._pd, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
132493 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132494 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132495 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
132496 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
132497 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
132498 .{ ._, ._sd, .min, .tmp4x, .tmp3x, ._, ._ },
132499 .{ ._, ._sd, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
132500 .{ ._, ._pd, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
132501 } },
132502 }, .{
132503 .required_features = .{ .sse2, null, null, null },
132504 .dst_constraints = .{ .{ .float = .qword }, .any },
132505 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
132506 .patterns = &.{
132507 .{ .src = .{ .to_mem, .none, .none } },
132508 },
132509 .extra_temps = .{
132510 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132511 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
132512 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = nan } } },
132513 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132514 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
132515 .unused,
132516 .unused,
132517 .unused,
132518 .unused,
132519 .unused,
132520 .unused,
132521 },
132522 .dst_temps = .{ .{ .rc = .sse }, .unused },
132523 .clobbers = .{ .eflags = true },
132524 .each = .{ .once = &.{
132525 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
132526 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
132527 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
132528 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
132529 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
132530 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
132531 .{ .@"0:", ._pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
132532 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
132533 .{ ._, ._pd, .min, .tmp4x, .tmp3x, ._, ._ },
132534 .{ ._, ._pd, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
132535 .{ ._, ._pd, .@"and", .dst0x, .tmp3x, ._, ._ },
132536 .{ ._, ._pd, .andn, .tmp3x, .tmp4x, ._, ._ },
132537 .{ ._, ._pd, .@"or", .dst0x, .tmp3x, ._, ._ },
132538 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132539 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132540 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
132541 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
132542 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
132543 .{ ._, ._sd, .min, .tmp4x, .tmp3x, ._, ._ },
132544 .{ ._, ._sd, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
132545 .{ ._, ._pd, .@"and", .dst0x, .tmp3x, ._, ._ },
132546 .{ ._, ._pd, .andn, .tmp3x, .tmp4x, ._, ._ },
132547 .{ ._, ._pd, .@"or", .dst0x, .tmp3x, ._, ._ },
132548 } },
132549 }, .{
132550 .required_features = .{ .x87, .cmov, null, null },
132551 .dst_constraints = .{ .{ .float = .qword }, .any },
132552 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
132553 .patterns = &.{
132554 .{ .src = .{ .to_mem, .none, .none } },
132555 },
132556 .extra_temps = .{
132557 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132558 .{ .type = .f64, .kind = .{ .reg = .st7 } },
132559 .{ .type = .f64, .kind = .{ .reg = .st6 } },
132560 .unused,
132561 .unused,
132562 .unused,
132563 .unused,
132564 .unused,
132565 .unused,
132566 .unused,
132567 .unused,
132568 },
132569 .dst_temps = .{ .mem, .unused },
132570 .clobbers = .{ .eflags = true },
132571 .each = .{ .once = &.{
132572 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
132573 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
132574 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
132575 .{ ._, .f_, .ucomi, .tmp2t, .tmp2t, ._, ._ },
132576 .{ ._, .f_u, .cmov, .tmp2t, .tmp1t, ._, ._ },
132577 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
132578 .{ ._, .f_nb, .cmov, .tmp2t, .tmp1t, ._, ._ },
132579 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
132580 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
132581 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132582 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
132583 } },
132584 }, .{
132585 .required_features = .{ .sahf, .x87, null, null },
132586 .dst_constraints = .{ .{ .float = .qword }, .any },
132587 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
132588 .patterns = &.{
132589 .{ .src = .{ .to_mem, .none, .none } },
132590 },
132591 .extra_temps = .{
132592 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132593 .{ .type = .f64, .kind = .{ .reg = .st7 } },
132594 .{ .type = .f64, .kind = .{ .reg = .st6 } },
132595 .{ .type = .u16, .kind = .{ .reg = .ax } },
132596 .unused,
132597 .unused,
132598 .unused,
132599 .unused,
132600 .unused,
132601 .unused,
132602 .unused,
132603 },
132604 .dst_temps = .{ .mem, .unused },
132605 .clobbers = .{ .eflags = true },
132606 .each = .{ .once = &.{
132607 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
132608 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
132609 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
132610 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
132611 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132612 .{ ._, ._, .sahf, ._, ._, ._, ._ },
132613 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
132614 .{ ._, .f_, .xam, ._, ._, ._, ._ },
132615 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132616 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
132617 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132618 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
132619 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
132620 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
132621 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132622 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
132623 } },
132624 }, .{
132625 .required_features = .{ .x87, null, null, null },
132626 .dst_constraints = .{ .{ .float = .qword }, .any },
132627 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
132628 .patterns = &.{
132629 .{ .src = .{ .to_mem, .none, .none } },
132630 },
132631 .extra_temps = .{
132632 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132633 .{ .type = .f64, .kind = .{ .reg = .st7 } },
132634 .{ .type = .f64, .kind = .{ .reg = .st6 } },
132635 .{ .type = .u16, .kind = .{ .reg = .ax } },
132636 .unused,
132637 .unused,
132638 .unused,
132639 .unused,
132640 .unused,
132641 .unused,
132642 .unused,
132643 },
132644 .dst_temps = .{ .mem, .unused },
132645 .clobbers = .{ .eflags = true },
132646 .each = .{ .once = &.{
132647 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
132648 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
132649 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
132650 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
132651 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132652 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
132653 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132654 .{ ._, .f_, .xam, ._, ._, ._, ._ },
132655 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132656 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
132657 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132658 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
132659 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
132660 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
132661 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132662 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
132663 } },
132664 }, .{
132665 .required_features = .{ .x87, .cmov, null, null },
132666 .dst_constraints = .{ .{ .float = .tbyte }, .any },
132667 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
132668 .patterns = &.{
132669 .{ .src = .{ .to_mem, .none, .none } },
132670 },
132671 .extra_temps = .{
132672 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132673 .{ .type = .f80, .kind = .{ .reg = .st7 } },
132674 .{ .type = .f80, .kind = .{ .reg = .st6 } },
132675 .unused,
132676 .unused,
132677 .unused,
132678 .unused,
132679 .unused,
132680 .unused,
132681 .unused,
132682 .unused,
132683 },
132684 .dst_temps = .{ .{ .rc = .x87 }, .unused },
132685 .clobbers = .{ .eflags = true },
132686 .each = .{ .once = &.{
132687 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132688 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
132689 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
132690 .{ ._, .f_, .ucomi, .tmp2t, .tmp2t, ._, ._ },
132691 .{ ._, .f_u, .cmov, .tmp2t, .tmp1t, ._, ._ },
132692 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
132693 .{ ._, .f_nb, .cmov, .tmp2t, .tmp1t, ._, ._ },
132694 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
132695 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132696 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132697 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
132698 } },
132699 }, .{
132700 .required_features = .{ .sahf, .x87, null, null },
132701 .dst_constraints = .{ .{ .float = .tbyte }, .any },
132702 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
132703 .patterns = &.{
132704 .{ .src = .{ .to_mem, .none, .none } },
132705 },
132706 .extra_temps = .{
132707 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132708 .{ .type = .f80, .kind = .{ .reg = .st7 } },
132709 .{ .type = .f80, .kind = .{ .reg = .st6 } },
132710 .{ .type = .u16, .kind = .{ .reg = .ax } },
132711 .unused,
132712 .unused,
132713 .unused,
132714 .unused,
132715 .unused,
132716 .unused,
132717 .unused,
132718 },
132719 .dst_temps = .{ .{ .rc = .x87 }, .unused },
132720 .clobbers = .{ .eflags = true },
132721 .each = .{ .once = &.{
132722 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132723 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
132724 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
132725 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
132726 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132727 .{ ._, ._, .sahf, ._, ._, ._, ._ },
132728 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
132729 .{ ._, .f_, .xam, ._, ._, ._, ._ },
132730 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132731 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
132732 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132733 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
132734 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
132735 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132736 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132737 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
132738 } },
132739 }, .{
132740 .required_features = .{ .x87, null, null, null },
132741 .dst_constraints = .{ .{ .float = .tbyte }, .any },
132742 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
132743 .patterns = &.{
132744 .{ .src = .{ .to_mem, .none, .none } },
132745 },
132746 .extra_temps = .{
132747 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132748 .{ .type = .f80, .kind = .{ .reg = .st7 } },
132749 .{ .type = .f80, .kind = .{ .reg = .st6 } },
132750 .{ .type = .u16, .kind = .{ .reg = .ax } },
132751 .unused,
132752 .unused,
132753 .unused,
132754 .unused,
132755 .unused,
132756 .unused,
132757 .unused,
132758 },
132759 .dst_temps = .{ .{ .rc = .x87 }, .unused },
132760 .clobbers = .{ .eflags = true },
132761 .each = .{ .once = &.{
132762 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132763 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
132764 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
132765 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
132766 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132767 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
132768 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132769 .{ ._, .f_, .xam, ._, ._, ._, ._ },
132770 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
132771 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
132772 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
132773 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
132774 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
132775 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132776 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132777 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
132778 } },
132779 }, .{
132780 .required_features = .{ .avx, null, null, null },
132781 .dst_constraints = .{ .{ .float = .xword }, .any },
132782 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
132783 .patterns = &.{
132784 .{ .src = .{ .to_mem, .none, .none } },
132785 },
132786 .call_frame = .{ .alignment = .@"16" },
132787 .extra_temps = .{
132788 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132789 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
132790 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
132791 .unused,
132792 .unused,
132793 .unused,
132794 .unused,
132795 .unused,
132796 .unused,
132797 .unused,
132798 .unused,
132799 },
132800 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
132801 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
132802 .each = .{ .once = &.{
132803 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132804 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132805 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132806 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
132807 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132808 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132809 } },
132810 }, .{
132811 .required_features = .{ .sse2, null, null, null },
132812 .dst_constraints = .{ .{ .float = .xword }, .any },
132813 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
132814 .patterns = &.{
132815 .{ .src = .{ .to_mem, .none, .none } },
132816 },
132817 .call_frame = .{ .alignment = .@"16" },
132818 .extra_temps = .{
132819 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132820 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
132821 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
132822 .unused,
132823 .unused,
132824 .unused,
132825 .unused,
132826 .unused,
132827 .unused,
132828 .unused,
132829 .unused,
132830 },
132831 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
132832 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
132833 .each = .{ .once = &.{
132834 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132835 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132836 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132837 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
132838 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132839 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132840 } },
132841 }, .{
132842 .required_features = .{ .sse, null, null, null },
132843 .dst_constraints = .{ .{ .float = .xword }, .any },
132844 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
132845 .patterns = &.{
132846 .{ .src = .{ .to_mem, .none, .none } },
132847 },
132848 .call_frame = .{ .alignment = .@"16" },
132849 .extra_temps = .{
132850 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
132851 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
132852 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
132853 .unused,
132854 .unused,
132855 .unused,
132856 .unused,
132857 .unused,
132858 .unused,
132859 .unused,
132860 .unused,
132861 },
132862 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
132863 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
132864 .each = .{ .once = &.{
132865 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
132866 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
132867 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
132868 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
132869 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
132870 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
132871 } },
132872 } },
132873 .Max => comptime &.{ .{
132874 .required_features = .{ .avx, null, null, null },
132875 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132876 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
132877 .patterns = &.{
132878 .{ .src = .{ .to_sse, .none, .none } },
132879 },
132880 .extra_temps = .{
132881 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132882 .unused,
132883 .unused,
132884 .unused,
132885 .unused,
132886 .unused,
132887 .unused,
132888 .unused,
132889 .unused,
132890 .unused,
132891 .unused,
132892 },
132893 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
132894 .each = .{ .once = &.{
132895 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
132896 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
132897 } },
132898 }, .{
132899 .required_features = .{ .sse4_1, null, null, null },
132900 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132901 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
132902 .patterns = &.{
132903 .{ .src = .{ .to_mut_sse, .none, .none } },
132904 },
132905 .extra_temps = .{
132906 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132907 .unused,
132908 .unused,
132909 .unused,
132910 .unused,
132911 .unused,
132912 .unused,
132913 .unused,
132914 .unused,
132915 .unused,
132916 .unused,
132917 },
132918 .dst_temps = .{ .{ .ref = .src0 }, .unused },
132919 .each = .{ .once = &.{
132920 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
132921 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
132922 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
132923 } },
132924 }, .{
132925 .required_features = .{ .sse2, null, null, null },
132926 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
132927 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any },
132928 .patterns = &.{
132929 .{ .src = .{ .to_mut_sse, .none, .none } },
132930 },
132931 .extra_temps = .{
132932 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132933 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
132934 .unused,
132935 .unused,
132936 .unused,
132937 .unused,
132938 .unused,
132939 .unused,
132940 .unused,
132941 .unused,
132942 .unused,
132943 },
132944 .dst_temps = .{ .{ .ref = .src0 }, .unused },
132945 .each = .{ .once = &.{
132946 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
132947 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
132948 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
132949 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
132950 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
132951 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
132952 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
132953 } },
132954 }, .{
132955 .required_features = .{ .avx, null, null, null },
132956 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132957 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any },
132958 .patterns = &.{
132959 .{ .src = .{ .to_sse, .none, .none } },
132960 },
132961 .extra_temps = .{
132962 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132963 .unused,
132964 .unused,
132965 .unused,
132966 .unused,
132967 .unused,
132968 .unused,
132969 .unused,
132970 .unused,
132971 .unused,
132972 .unused,
132973 },
132974 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
132975 .each = .{ .once = &.{
132976 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
132977 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
132978 } },
132979 }, .{
132980 .required_features = .{ .sse2, null, null, null },
132981 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
132982 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any },
132983 .patterns = &.{
132984 .{ .src = .{ .to_mut_sse, .none, .none } },
132985 },
132986 .extra_temps = .{
132987 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
132988 .unused,
132989 .unused,
132990 .unused,
132991 .unused,
132992 .unused,
132993 .unused,
132994 .unused,
132995 .unused,
132996 .unused,
132997 .unused,
132998 },
132999 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133000 .each = .{ .once = &.{
133001 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
133002 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133003 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133004 } },
133005 }, .{
133006 .required_features = .{ .avx, null, null, null },
133007 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133008 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133009 .patterns = &.{
133010 .{ .src = .{ .to_sse, .none, .none } },
133011 },
133012 .extra_temps = .{
133013 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133014 .unused,
133015 .unused,
133016 .unused,
133017 .unused,
133018 .unused,
133019 .unused,
133020 .unused,
133021 .unused,
133022 .unused,
133023 .unused,
133024 },
133025 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133026 .each = .{ .once = &.{
133027 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133028 .{ ._, .vp_b, .maxs, .tmp0x, .src0x, .tmp0x, ._ },
133029 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
133030 .{ ._, .vp_b, .maxs, .dst0x, .tmp0x, .dst0x, ._ },
133031 } },
133032 }, .{
133033 .required_features = .{ .sse4_1, null, null, null },
133034 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133035 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133036 .patterns = &.{
133037 .{ .src = .{ .to_mut_sse, .none, .none } },
133038 },
133039 .extra_temps = .{
133040 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133041 .unused,
133042 .unused,
133043 .unused,
133044 .unused,
133045 .unused,
133046 .unused,
133047 .unused,
133048 .unused,
133049 .unused,
133050 .unused,
133051 },
133052 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133053 .each = .{ .once = &.{
133054 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133055 .{ ._, .p_b, .maxs, .tmp0x, .src0x, ._, ._ },
133056 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
133057 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133058 } },
133059 }, .{
133060 .required_features = .{ .sse2, null, null, null },
133061 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133062 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133063 .patterns = &.{
133064 .{ .src = .{ .to_mut_sse, .none, .none } },
133065 },
133066 .extra_temps = .{
133067 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133068 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133069 .unused,
133070 .unused,
133071 .unused,
133072 .unused,
133073 .unused,
133074 .unused,
133075 .unused,
133076 .unused,
133077 .unused,
133078 },
133079 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133080 .each = .{ .once = &.{
133081 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133082 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
133083 .{ ._, .p_b, .cmpgt, .tmp1x, .src0x, ._, ._ },
133084 .{ ._, .p_, .@"and", .tmp0x, .tmp1x, ._, ._ },
133085 .{ ._, .p_, .andn, .tmp1x, .src0x, ._, ._ },
133086 .{ ._, .p_, .@"or", .tmp0x, .tmp1x, ._, ._ },
133087 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
133088 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
133089 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133090 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133091 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133092 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133093 } },
133094 }, .{
133095 .required_features = .{ .avx, null, null, null },
133096 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133097 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133098 .patterns = &.{
133099 .{ .src = .{ .to_sse, .none, .none } },
133100 },
133101 .extra_temps = .{
133102 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133103 .unused,
133104 .unused,
133105 .unused,
133106 .unused,
133107 .unused,
133108 .unused,
133109 .unused,
133110 .unused,
133111 .unused,
133112 .unused,
133113 },
133114 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133115 .each = .{ .once = &.{
133116 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133117 .{ ._, .vp_b, .maxu, .tmp0x, .src0x, .tmp0x, ._ },
133118 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
133119 .{ ._, .vp_b, .maxu, .dst0x, .tmp0x, .dst0x, ._ },
133120 } },
133121 }, .{
133122 .required_features = .{ .sse2, null, null, null },
133123 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133124 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133125 .patterns = &.{
133126 .{ .src = .{ .to_mut_sse, .none, .none } },
133127 },
133128 .extra_temps = .{
133129 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133130 .unused,
133131 .unused,
133132 .unused,
133133 .unused,
133134 .unused,
133135 .unused,
133136 .unused,
133137 .unused,
133138 .unused,
133139 .unused,
133140 },
133141 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133142 .each = .{ .once = &.{
133143 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133144 .{ ._, .p_b, .maxu, .tmp0x, .src0x, ._, ._ },
133145 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
133146 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133147 } },
133148 }, .{
133149 .required_features = .{ .avx, null, null, null },
133150 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133151 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133152 .patterns = &.{
133153 .{ .src = .{ .to_sse, .none, .none } },
133154 },
133155 .extra_temps = .{
133156 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133157 .unused,
133158 .unused,
133159 .unused,
133160 .unused,
133161 .unused,
133162 .unused,
133163 .unused,
133164 .unused,
133165 .unused,
133166 .unused,
133167 },
133168 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133169 .each = .{ .once = &.{
133170 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133171 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
133172 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
133173 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
133174 } },
133175 }, .{
133176 .required_features = .{ .sse4_1, null, null, null },
133177 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133178 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133179 .patterns = &.{
133180 .{ .src = .{ .to_mut_sse, .none, .none } },
133181 },
133182 .extra_temps = .{
133183 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133184 .unused,
133185 .unused,
133186 .unused,
133187 .unused,
133188 .unused,
133189 .unused,
133190 .unused,
133191 .unused,
133192 .unused,
133193 .unused,
133194 },
133195 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133196 .each = .{ .once = &.{
133197 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133198 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133199 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133200 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133201 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133202 } },
133203 }, .{
133204 .required_features = .{ .sse2, null, null, null },
133205 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133206 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133207 .patterns = &.{
133208 .{ .src = .{ .to_mut_sse, .none, .none } },
133209 },
133210 .extra_temps = .{
133211 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133212 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133213 .unused,
133214 .unused,
133215 .unused,
133216 .unused,
133217 .unused,
133218 .unused,
133219 .unused,
133220 .unused,
133221 .unused,
133222 },
133223 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133224 .each = .{ .once = &.{
133225 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133226 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
133227 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133228 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133229 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133230 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133231 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133232 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133233 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
133234 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133235 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133236 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133237 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133238 } },
133239 }, .{
133240 .required_features = .{ .avx, null, null, null },
133241 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133242 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133243 .patterns = &.{
133244 .{ .src = .{ .to_sse, .none, .none } },
133245 },
133246 .extra_temps = .{
133247 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133248 .unused,
133249 .unused,
133250 .unused,
133251 .unused,
133252 .unused,
133253 .unused,
133254 .unused,
133255 .unused,
133256 .unused,
133257 .unused,
133258 },
133259 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133260 .each = .{ .once = &.{
133261 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133262 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
133263 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
133264 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
133265 } },
133266 }, .{
133267 .required_features = .{ .sse2, null, null, null },
133268 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133269 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any },
133270 .patterns = &.{
133271 .{ .src = .{ .to_mut_sse, .none, .none } },
133272 },
133273 .extra_temps = .{
133274 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133275 .unused,
133276 .unused,
133277 .unused,
133278 .unused,
133279 .unused,
133280 .unused,
133281 .unused,
133282 .unused,
133283 .unused,
133284 .unused,
133285 },
133286 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133287 .each = .{ .once = &.{
133288 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
133289 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133290 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133291 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133292 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133293 } },
133294 }, .{
133295 .required_features = .{ .avx, null, null, null },
133296 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133297 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133298 .patterns = &.{
133299 .{ .src = .{ .to_sse, .none, .none } },
133300 },
133301 .extra_temps = .{
133302 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133303 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133304 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
133305 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133306 .unused,
133307 .unused,
133308 .unused,
133309 .unused,
133310 .unused,
133311 .unused,
133312 .unused,
133313 },
133314 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133315 .each = .{ .once = &.{
133316 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133317 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
133318 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
133319 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
133320 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133321 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
133322 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
133323 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
133324 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
133325 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
133326 } },
133327 }, .{
133328 .required_features = .{ .sse4_1, null, null, null },
133329 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133330 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133331 .patterns = &.{
133332 .{ .src = .{ .to_mut_sse, .none, .none } },
133333 },
133334 .extra_temps = .{
133335 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133336 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133337 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
133338 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133339 .unused,
133340 .unused,
133341 .unused,
133342 .unused,
133343 .unused,
133344 .unused,
133345 .unused,
133346 },
133347 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133348 .each = .{ .once = &.{
133349 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133350 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133351 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
133352 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
133353 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133354 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
133355 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
133356 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
133357 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
133358 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
133359 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
133360 } },
133361 }, .{
133362 .required_features = .{ .sse2, null, null, null },
133363 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133364 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133365 .patterns = &.{
133366 .{ .src = .{ .to_mut_sse, .none, .none } },
133367 },
133368 .extra_temps = .{
133369 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133370 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133371 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
133372 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133373 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133374 .unused,
133375 .unused,
133376 .unused,
133377 .unused,
133378 .unused,
133379 .unused,
133380 },
133381 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133382 .each = .{ .once = &.{
133383 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133384 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133385 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
133386 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
133387 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133388 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
133389 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
133390 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
133391 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
133392 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
133393 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
133394 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
133395 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
133396 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
133397 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
133398 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
133399 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
133400 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
133401 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
133402 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
133403 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
133404 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
133405 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
133406 } },
133407 }, .{
133408 .required_features = .{ .avx, null, null, null },
133409 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133410 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133411 .patterns = &.{
133412 .{ .src = .{ .to_sse, .none, .none } },
133413 },
133414 .extra_temps = .{
133415 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133416 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133417 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133418 .unused,
133419 .unused,
133420 .unused,
133421 .unused,
133422 .unused,
133423 .unused,
133424 .unused,
133425 .unused,
133426 },
133427 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133428 .each = .{ .once = &.{
133429 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133430 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
133431 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
133432 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
133433 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
133434 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
133435 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
133436 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
133437 } },
133438 }, .{
133439 .required_features = .{ .sse2, null, null, null },
133440 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133441 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133442 .patterns = &.{
133443 .{ .src = .{ .to_mut_sse, .none, .none } },
133444 },
133445 .extra_temps = .{
133446 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133447 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133448 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133449 .unused,
133450 .unused,
133451 .unused,
133452 .unused,
133453 .unused,
133454 .unused,
133455 .unused,
133456 .unused,
133457 },
133458 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133459 .each = .{ .once = &.{
133460 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133461 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133462 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
133463 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
133464 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
133465 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
133466 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
133467 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
133468 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
133469 } },
133470 }, .{
133471 .required_features = .{ .avx, null, null, null },
133472 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133473 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133474 .patterns = &.{
133475 .{ .src = .{ .to_sse, .none, .none } },
133476 },
133477 .extra_temps = .{
133478 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133479 .unused,
133480 .unused,
133481 .unused,
133482 .unused,
133483 .unused,
133484 .unused,
133485 .unused,
133486 .unused,
133487 .unused,
133488 .unused,
133489 },
133490 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133491 .each = .{ .once = &.{
133492 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133493 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
133494 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133495 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
133496 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
133497 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
133498 } },
133499 }, .{
133500 .required_features = .{ .sse4_1, null, null, null },
133501 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133502 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133503 .patterns = &.{
133504 .{ .src = .{ .to_mut_sse, .none, .none } },
133505 },
133506 .extra_temps = .{
133507 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133508 .unused,
133509 .unused,
133510 .unused,
133511 .unused,
133512 .unused,
133513 .unused,
133514 .unused,
133515 .unused,
133516 .unused,
133517 .unused,
133518 },
133519 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133520 .each = .{ .once = &.{
133521 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133522 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133523 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133524 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133525 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133526 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133527 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133528 } },
133529 }, .{
133530 .required_features = .{ .sse2, null, null, null },
133531 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133532 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133533 .patterns = &.{
133534 .{ .src = .{ .to_mut_sse, .none, .none } },
133535 },
133536 .extra_temps = .{
133537 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133538 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133539 .unused,
133540 .unused,
133541 .unused,
133542 .unused,
133543 .unused,
133544 .unused,
133545 .unused,
133546 .unused,
133547 .unused,
133548 },
133549 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133550 .each = .{ .once = &.{
133551 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133552 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
133553 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133554 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133555 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133556 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133557 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133558 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
133559 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133560 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133561 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133562 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133563 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133564 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133565 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
133566 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133567 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133568 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133569 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133570 } },
133571 }, .{
133572 .required_features = .{ .avx, null, null, null },
133573 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133574 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133575 .patterns = &.{
133576 .{ .src = .{ .to_sse, .none, .none } },
133577 },
133578 .extra_temps = .{
133579 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133580 .unused,
133581 .unused,
133582 .unused,
133583 .unused,
133584 .unused,
133585 .unused,
133586 .unused,
133587 .unused,
133588 .unused,
133589 .unused,
133590 },
133591 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133592 .each = .{ .once = &.{
133593 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133594 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
133595 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133596 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
133597 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
133598 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
133599 } },
133600 }, .{
133601 .required_features = .{ .sse2, null, null, null },
133602 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133603 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any },
133604 .patterns = &.{
133605 .{ .src = .{ .to_mut_sse, .none, .none } },
133606 },
133607 .extra_temps = .{
133608 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133609 .unused,
133610 .unused,
133611 .unused,
133612 .unused,
133613 .unused,
133614 .unused,
133615 .unused,
133616 .unused,
133617 .unused,
133618 .unused,
133619 },
133620 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133621 .each = .{ .once = &.{
133622 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
133623 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133624 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133625 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133626 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133627 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133628 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133629 } },
133630 }, .{
133631 .required_features = .{ .avx, null, null, null },
133632 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133633 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133634 .patterns = &.{
133635 .{ .src = .{ .to_sse, .none, .none } },
133636 },
133637 .extra_temps = .{
133638 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133639 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133640 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
133641 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133642 .unused,
133643 .unused,
133644 .unused,
133645 .unused,
133646 .unused,
133647 .unused,
133648 .unused,
133649 },
133650 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133651 .each = .{ .once = &.{
133652 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133653 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
133654 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
133655 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
133656 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133657 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
133658 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133659 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
133660 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
133661 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
133662 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
133663 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
133664 } },
133665 }, .{
133666 .required_features = .{ .sse4_1, null, null, null },
133667 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133668 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133669 .patterns = &.{
133670 .{ .src = .{ .to_mut_sse, .none, .none } },
133671 },
133672 .extra_temps = .{
133673 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133674 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133675 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
133676 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133677 .unused,
133678 .unused,
133679 .unused,
133680 .unused,
133681 .unused,
133682 .unused,
133683 .unused,
133684 },
133685 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133686 .each = .{ .once = &.{
133687 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133688 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133689 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
133690 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
133691 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133692 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
133693 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133694 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
133695 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
133696 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
133697 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
133698 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
133699 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
133700 } },
133701 }, .{
133702 .required_features = .{ .sse2, null, null, null },
133703 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133704 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133705 .patterns = &.{
133706 .{ .src = .{ .to_mut_sse, .none, .none } },
133707 },
133708 .extra_temps = .{
133709 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133710 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133711 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
133712 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133713 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133714 .unused,
133715 .unused,
133716 .unused,
133717 .unused,
133718 .unused,
133719 .unused,
133720 },
133721 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133722 .each = .{ .once = &.{
133723 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133724 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133725 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
133726 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
133727 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133728 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
133729 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
133730 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
133731 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
133732 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
133733 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
133734 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
133735 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
133736 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
133737 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
133738 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
133739 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
133740 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
133741 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
133742 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
133743 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
133744 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
133745 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
133746 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
133747 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
133748 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
133749 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
133750 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
133751 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
133752 } },
133753 }, .{
133754 .required_features = .{ .avx, null, null, null },
133755 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133756 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133757 .patterns = &.{
133758 .{ .src = .{ .to_sse, .none, .none } },
133759 },
133760 .extra_temps = .{
133761 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133762 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133763 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133764 .unused,
133765 .unused,
133766 .unused,
133767 .unused,
133768 .unused,
133769 .unused,
133770 .unused,
133771 .unused,
133772 },
133773 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133774 .each = .{ .once = &.{
133775 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133776 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
133777 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
133778 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
133779 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
133780 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
133781 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
133782 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
133783 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
133784 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
133785 } },
133786 }, .{
133787 .required_features = .{ .sse2, null, null, null },
133788 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133789 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133790 .patterns = &.{
133791 .{ .src = .{ .to_mut_sse, .none, .none } },
133792 },
133793 .extra_temps = .{
133794 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
133795 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
133796 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133797 .unused,
133798 .unused,
133799 .unused,
133800 .unused,
133801 .unused,
133802 .unused,
133803 .unused,
133804 .unused,
133805 },
133806 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133807 .each = .{ .once = &.{
133808 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
133809 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
133810 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
133811 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
133812 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
133813 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
133814 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
133815 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
133816 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
133817 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
133818 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
133819 } },
133820 }, .{
133821 .required_features = .{ .avx, null, null, null },
133822 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133823 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133824 .patterns = &.{
133825 .{ .src = .{ .to_sse, .none, .none } },
133826 },
133827 .extra_temps = .{
133828 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133829 .unused,
133830 .unused,
133831 .unused,
133832 .unused,
133833 .unused,
133834 .unused,
133835 .unused,
133836 .unused,
133837 .unused,
133838 .unused,
133839 },
133840 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133841 .each = .{ .once = &.{
133842 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
133843 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
133844 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
133845 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
133846 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133847 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
133848 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
133849 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
133850 } },
133851 }, .{
133852 .required_features = .{ .sse4_1, null, null, null },
133853 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133854 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133855 .patterns = &.{
133856 .{ .src = .{ .to_mut_sse, .none, .none } },
133857 },
133858 .extra_temps = .{
133859 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133860 .unused,
133861 .unused,
133862 .unused,
133863 .unused,
133864 .unused,
133865 .unused,
133866 .unused,
133867 .unused,
133868 .unused,
133869 .unused,
133870 },
133871 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133872 .each = .{ .once = &.{
133873 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
133874 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133875 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
133876 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133877 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133878 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133879 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133880 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133881 .{ ._, .p_b, .maxs, .dst0x, .tmp0x, ._, ._ },
133882 } },
133883 }, .{
133884 .required_features = .{ .sse2, null, null, null },
133885 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133886 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133887 .patterns = &.{
133888 .{ .src = .{ .to_mut_sse, .none, .none } },
133889 },
133890 .extra_temps = .{
133891 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133892 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
133893 .unused,
133894 .unused,
133895 .unused,
133896 .unused,
133897 .unused,
133898 .unused,
133899 .unused,
133900 .unused,
133901 .unused,
133902 },
133903 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133904 .each = .{ .once = &.{
133905 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
133906 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
133907 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133908 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133909 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133910 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133911 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
133912 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
133913 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133914 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133915 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133916 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133917 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133918 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
133919 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133920 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133921 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133922 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133923 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133924 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133925 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
133926 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
133927 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
133928 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
133929 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
133930 } },
133931 }, .{
133932 .required_features = .{ .avx, null, null, null },
133933 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133934 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133935 .patterns = &.{
133936 .{ .src = .{ .to_sse, .none, .none } },
133937 },
133938 .extra_temps = .{
133939 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133940 .unused,
133941 .unused,
133942 .unused,
133943 .unused,
133944 .unused,
133945 .unused,
133946 .unused,
133947 .unused,
133948 .unused,
133949 .unused,
133950 },
133951 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
133952 .each = .{ .once = &.{
133953 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
133954 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
133955 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
133956 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
133957 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133958 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
133959 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
133960 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
133961 } },
133962 }, .{
133963 .required_features = .{ .sse2, null, null, null },
133964 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
133965 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
133966 .patterns = &.{
133967 .{ .src = .{ .to_mut_sse, .none, .none } },
133968 },
133969 .extra_temps = .{
133970 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
133971 .unused,
133972 .unused,
133973 .unused,
133974 .unused,
133975 .unused,
133976 .unused,
133977 .unused,
133978 .unused,
133979 .unused,
133980 .unused,
133981 },
133982 .dst_temps = .{ .{ .ref = .src0 }, .unused },
133983 .each = .{ .once = &.{
133984 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
133985 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133986 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
133987 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133988 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
133989 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133990 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
133991 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
133992 .{ ._, .p_b, .maxu, .dst0x, .tmp0x, ._, ._ },
133993 } },
133994 }, .{
133995 .required_features = .{ .avx2, null, null, null },
133996 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
133997 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
133998 .patterns = &.{
133999 .{ .src = .{ .to_sse, .none, .none } },
134000 },
134001 .extra_temps = .{
134002 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134003 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134004 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134005 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134006 .unused,
134007 .unused,
134008 .unused,
134009 .unused,
134010 .unused,
134011 .unused,
134012 .unused,
134013 },
134014 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134015 .each = .{ .once = &.{
134016 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134017 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
134018 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134019 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134020 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134021 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134022 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134023 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134024 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134025 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134026 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134027 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134028 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
134029 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134030 } },
134031 }, .{
134032 .required_features = .{ .avx, null, null, null },
134033 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134034 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134035 .patterns = &.{
134036 .{ .src = .{ .to_sse, .none, .none } },
134037 },
134038 .extra_temps = .{
134039 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134040 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134041 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134042 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134043 .unused,
134044 .unused,
134045 .unused,
134046 .unused,
134047 .unused,
134048 .unused,
134049 .unused,
134050 },
134051 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134052 .each = .{ .once = &.{
134053 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134054 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
134055 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134056 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134057 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134058 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134059 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134060 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134061 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134062 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134063 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134064 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134065 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
134066 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134067 } },
134068 }, .{
134069 .required_features = .{ .avx2, null, null, null },
134070 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134071 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134072 .patterns = &.{
134073 .{ .src = .{ .to_sse, .none, .none } },
134074 },
134075 .extra_temps = .{
134076 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134077 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134078 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
134079 .unused,
134080 .unused,
134081 .unused,
134082 .unused,
134083 .unused,
134084 .unused,
134085 .unused,
134086 .unused,
134087 },
134088 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134089 .each = .{ .once = &.{
134090 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134091 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
134092 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134093 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134094 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134095 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134096 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134097 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134098 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
134099 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134100 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
134101 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134102 } },
134103 }, .{
134104 .required_features = .{ .avx, null, null, null },
134105 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134106 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134107 .patterns = &.{
134108 .{ .src = .{ .to_sse, .none, .none } },
134109 },
134110 .extra_temps = .{
134111 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134112 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134113 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
134114 .unused,
134115 .unused,
134116 .unused,
134117 .unused,
134118 .unused,
134119 .unused,
134120 .unused,
134121 .unused,
134122 },
134123 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134124 .each = .{ .once = &.{
134125 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134126 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
134127 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134128 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134129 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134130 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134131 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134132 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134133 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
134134 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134135 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
134136 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134137 } },
134138 }, .{
134139 .required_features = .{ .avx2, null, null, null },
134140 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134141 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134142 .patterns = &.{
134143 .{ .src = .{ .to_sse, .none, .none } },
134144 },
134145 .extra_temps = .{
134146 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134147 .unused,
134148 .unused,
134149 .unused,
134150 .unused,
134151 .unused,
134152 .unused,
134153 .unused,
134154 .unused,
134155 .unused,
134156 .unused,
134157 },
134158 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134159 .each = .{ .once = &.{
134160 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
134161 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
134162 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134163 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134164 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134165 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134166 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
134167 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134168 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
134169 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134170 } },
134171 }, .{
134172 .required_features = .{ .avx, null, null, null },
134173 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134174 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134175 .patterns = &.{
134176 .{ .src = .{ .to_sse, .none, .none } },
134177 },
134178 .extra_temps = .{
134179 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134180 .unused,
134181 .unused,
134182 .unused,
134183 .unused,
134184 .unused,
134185 .unused,
134186 .unused,
134187 .unused,
134188 .unused,
134189 .unused,
134190 },
134191 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134192 .each = .{ .once = &.{
134193 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
134194 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .tmp0x, ._ },
134195 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134196 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134197 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134198 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134199 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
134200 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134201 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
134202 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134203 } },
134204 }, .{
134205 .required_features = .{ .avx2, null, null, null },
134206 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134207 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134208 .patterns = &.{
134209 .{ .src = .{ .to_sse, .none, .none } },
134210 },
134211 .extra_temps = .{
134212 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
134213 .unused,
134214 .unused,
134215 .unused,
134216 .unused,
134217 .unused,
134218 .unused,
134219 .unused,
134220 .unused,
134221 .unused,
134222 .unused,
134223 },
134224 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134225 .each = .{ .once = &.{
134226 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
134227 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
134228 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134229 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134230 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134231 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134232 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
134233 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134234 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
134235 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134236 } },
134237 }, .{
134238 .required_features = .{ .avx, null, null, null },
134239 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134240 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134241 .patterns = &.{
134242 .{ .src = .{ .to_sse, .none, .none } },
134243 },
134244 .extra_temps = .{
134245 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
134246 .unused,
134247 .unused,
134248 .unused,
134249 .unused,
134250 .unused,
134251 .unused,
134252 .unused,
134253 .unused,
134254 .unused,
134255 .unused,
134256 },
134257 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
134258 .each = .{ .once = &.{
134259 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
134260 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .tmp0x, ._ },
134261 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134262 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134263 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134264 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134265 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
134266 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134267 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
134268 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134269 } },
134270 }, .{
134271 .required_features = .{ .avx512f, null, null, null },
134272 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134273 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
134274 .patterns = &.{
134275 .{ .src = .{ .to_mem, .none, .none } },
134276 },
134277 .extra_temps = .{
134278 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134279 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134280 .{ .type = .vector_64_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134281 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
134282 .unused,
134283 .unused,
134284 .unused,
134285 .unused,
134286 .unused,
134287 .unused,
134288 .unused,
134289 },
134290 .dst_temps = .{ .{ .rc = .sse }, .unused },
134291 .each = .{ .once = &.{
134292 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134293 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134294 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
134295 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134296 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
134297 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
134298 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134299 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
134300 .{ ._, .vp_b, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
134301 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134302 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134303 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134304 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134305 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134306 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134307 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134308 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134309 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
134310 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134311 } },
134312 }, .{
134313 .required_features = .{ .avx512f, null, null, null },
134314 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134315 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
134316 .patterns = &.{
134317 .{ .src = .{ .to_mem, .none, .none } },
134318 },
134319 .extra_temps = .{
134320 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
134321 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134322 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
134323 .unused,
134324 .unused,
134325 .unused,
134326 .unused,
134327 .unused,
134328 .unused,
134329 .unused,
134330 .unused,
134331 },
134332 .dst_temps = .{ .{ .rc = .sse }, .unused },
134333 .each = .{ .once = &.{
134334 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134335 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134336 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
134337 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
134338 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
134339 .{ ._, .vp_b, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
134340 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134341 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134342 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134343 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134344 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134345 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134346 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
134347 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134348 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
134349 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134350 } },
134351 }, .{
134352 .required_features = .{ .avx512f, null, null, null },
134353 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134354 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
134355 .patterns = &.{
134356 .{ .src = .{ .to_mem, .none, .none } },
134357 },
134358 .extra_temps = .{
134359 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134360 .unused,
134361 .unused,
134362 .unused,
134363 .unused,
134364 .unused,
134365 .unused,
134366 .unused,
134367 .unused,
134368 .unused,
134369 .unused,
134370 },
134371 .dst_temps = .{ .{ .rc = .sse }, .unused },
134372 .each = .{ .once = &.{
134373 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
134374 .{ ._, .vp_b, .maxs, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
134375 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
134376 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134377 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134378 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134379 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134380 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134381 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
134382 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134383 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
134384 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
134385 } },
134386 }, .{
134387 .required_features = .{ .avx512f, null, null, null },
134388 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134389 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
134390 .patterns = &.{
134391 .{ .src = .{ .to_mem, .none, .none } },
134392 },
134393 .extra_temps = .{
134394 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
134395 .unused,
134396 .unused,
134397 .unused,
134398 .unused,
134399 .unused,
134400 .unused,
134401 .unused,
134402 .unused,
134403 .unused,
134404 .unused,
134405 },
134406 .dst_temps = .{ .{ .rc = .sse }, .unused },
134407 .each = .{ .once = &.{
134408 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
134409 .{ ._, .vp_b, .maxu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
134410 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
134411 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134412 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134413 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134414 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
134415 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134416 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
134417 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134418 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
134419 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
134420 } },
134421 }, .{
134422 .required_features = .{ .avx2, null, null, null },
134423 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134424 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134425 .patterns = &.{
134426 .{ .src = .{ .to_mem, .none, .none } },
134427 },
134428 .extra_temps = .{
134429 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134430 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134431 .unused,
134432 .unused,
134433 .unused,
134434 .unused,
134435 .unused,
134436 .unused,
134437 .unused,
134438 .unused,
134439 .unused,
134440 },
134441 .dst_temps = .{ .{ .rc = .sse }, .unused },
134442 .clobbers = .{ .eflags = true },
134443 .each = .{ .once = &.{
134444 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
134445 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
134446 .{ .@"0:", .vp_b, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134447 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
134448 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134449 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
134450 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134451 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134452 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134453 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134454 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134455 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134456 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134457 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
134458 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134459 } },
134460 }, .{
134461 .required_features = .{ .avx, null, null, null },
134462 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134463 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
134464 .patterns = &.{
134465 .{ .src = .{ .to_mem, .none, .none } },
134466 },
134467 .extra_temps = .{
134468 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134469 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134470 .unused,
134471 .unused,
134472 .unused,
134473 .unused,
134474 .unused,
134475 .unused,
134476 .unused,
134477 .unused,
134478 .unused,
134479 },
134480 .dst_temps = .{ .{ .rc = .sse }, .unused },
134481 .clobbers = .{ .eflags = true },
134482 .each = .{ .once = &.{
134483 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134484 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134485 .{ .@"0:", .vp_b, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
134486 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134487 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134488 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134489 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134490 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134491 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134492 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134493 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134494 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
134495 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
134496 } },
134497 }, .{
134498 .required_features = .{ .sse4_1, null, null, null },
134499 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134500 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
134501 .patterns = &.{
134502 .{ .src = .{ .to_mem, .none, .none } },
134503 },
134504 .extra_temps = .{
134505 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134506 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134507 .unused,
134508 .unused,
134509 .unused,
134510 .unused,
134511 .unused,
134512 .unused,
134513 .unused,
134514 .unused,
134515 .unused,
134516 },
134517 .dst_temps = .{ .{ .rc = .sse }, .unused },
134518 .clobbers = .{ .eflags = true },
134519 .each = .{ .once = &.{
134520 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134521 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134522 .{ .@"0:", .p_b, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134523 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134524 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134525 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134526 .{ ._, .p_b, .maxs, .dst0x, .tmp1x, ._, ._ },
134527 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134528 .{ ._, .p_b, .maxs, .dst0x, .tmp1x, ._, ._ },
134529 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134530 .{ ._, .p_b, .maxs, .dst0x, .tmp1x, ._, ._ },
134531 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
134532 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
134533 .{ ._, .p_b, .maxs, .dst0x, .tmp1x, ._, ._ },
134534 } },
134535 }, .{
134536 .required_features = .{ .sse2, null, null, null },
134537 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134538 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
134539 .patterns = &.{
134540 .{ .src = .{ .to_mem, .none, .none } },
134541 },
134542 .extra_temps = .{
134543 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134544 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134545 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134546 .unused,
134547 .unused,
134548 .unused,
134549 .unused,
134550 .unused,
134551 .unused,
134552 .unused,
134553 .unused,
134554 },
134555 .dst_temps = .{ .{ .rc = .sse }, .unused },
134556 .clobbers = .{ .eflags = true },
134557 .each = .{ .once = &.{
134558 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134559 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134560 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
134561 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
134562 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
134563 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
134564 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
134565 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
134566 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134567 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134568 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134569 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
134570 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
134571 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
134572 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
134573 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
134574 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134575 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
134576 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
134577 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
134578 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
134579 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
134580 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134581 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
134582 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
134583 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
134584 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
134585 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
134586 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
134587 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
134588 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
134589 .{ ._, .p_b, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
134590 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
134591 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
134592 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
134593 } },
134594 }, .{
134595 .required_features = .{ .avx2, null, null, null },
134596 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134597 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134598 .patterns = &.{
134599 .{ .src = .{ .to_mem, .none, .none } },
134600 },
134601 .extra_temps = .{
134602 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134603 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
134604 .unused,
134605 .unused,
134606 .unused,
134607 .unused,
134608 .unused,
134609 .unused,
134610 .unused,
134611 .unused,
134612 .unused,
134613 },
134614 .dst_temps = .{ .{ .rc = .sse }, .unused },
134615 .clobbers = .{ .eflags = true },
134616 .each = .{ .once = &.{
134617 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
134618 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
134619 .{ .@"0:", .vp_b, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134620 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
134621 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134622 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
134623 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134624 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134625 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134626 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134627 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134628 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134629 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134630 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
134631 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134632 } },
134633 }, .{
134634 .required_features = .{ .avx, null, null, null },
134635 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134636 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
134637 .patterns = &.{
134638 .{ .src = .{ .to_mem, .none, .none } },
134639 },
134640 .extra_temps = .{
134641 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134642 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
134643 .unused,
134644 .unused,
134645 .unused,
134646 .unused,
134647 .unused,
134648 .unused,
134649 .unused,
134650 .unused,
134651 .unused,
134652 },
134653 .dst_temps = .{ .{ .rc = .sse }, .unused },
134654 .clobbers = .{ .eflags = true },
134655 .each = .{ .once = &.{
134656 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134657 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134658 .{ .@"0:", .vp_b, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
134659 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134660 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134661 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134662 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134663 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134664 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134665 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134666 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134667 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
134668 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
134669 } },
134670 }, .{
134671 .required_features = .{ .sse2, null, null, null },
134672 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134673 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
134674 .patterns = &.{
134675 .{ .src = .{ .to_mem, .none, .none } },
134676 },
134677 .extra_temps = .{
134678 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134679 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
134680 .unused,
134681 .unused,
134682 .unused,
134683 .unused,
134684 .unused,
134685 .unused,
134686 .unused,
134687 .unused,
134688 .unused,
134689 },
134690 .dst_temps = .{ .{ .rc = .sse }, .unused },
134691 .clobbers = .{ .eflags = true },
134692 .each = .{ .once = &.{
134693 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
134694 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
134695 .{ .@"0:", .p_b, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134696 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134697 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134698 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134699 .{ ._, .p_b, .maxu, .dst0x, .tmp1x, ._, ._ },
134700 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
134701 .{ ._, .p_b, .maxu, .dst0x, .tmp1x, ._, ._ },
134702 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
134703 .{ ._, .p_b, .maxu, .dst0x, .tmp1x, ._, ._ },
134704 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
134705 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
134706 .{ ._, .p_b, .maxu, .dst0x, .tmp1x, ._, ._ },
134707 } },
134708 }, .{
134709 .required_features = .{ .avx512f, null, null, null },
134710 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134711 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .byte } }, .any, .any },
134712 .patterns = &.{
134713 .{ .src = .{ .to_mem, .none, .none } },
134714 },
134715 .extra_temps = .{
134716 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134717 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134718 .{ .type = .vector_64_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134719 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
134720 .unused,
134721 .unused,
134722 .unused,
134723 .unused,
134724 .unused,
134725 .unused,
134726 .unused,
134727 },
134728 .dst_temps = .{ .{ .rc = .sse }, .unused },
134729 .clobbers = .{ .eflags = true },
134730 .each = .{ .once = &.{
134731 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134732 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134733 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
134734 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134735 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
134736 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
134737 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134738 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
134739 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
134740 .{ .@"0:", .vp_b, .maxs, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
134741 .{ ._, .vp_b, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134742 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
134743 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134744 .{ ._, .vp_b, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
134745 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134746 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134747 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134748 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134749 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134750 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134751 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134752 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134753 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
134754 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134755 } },
134756 }, .{
134757 .required_features = .{ .avx2, null, null, null },
134758 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134759 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134760 .patterns = &.{
134761 .{ .src = .{ .to_mem, .none, .none } },
134762 },
134763 .extra_temps = .{
134764 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134765 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134766 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134767 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134768 .unused,
134769 .unused,
134770 .unused,
134771 .unused,
134772 .unused,
134773 .unused,
134774 .unused,
134775 },
134776 .dst_temps = .{ .{ .rc = .sse }, .unused },
134777 .clobbers = .{ .eflags = true },
134778 .each = .{ .once = &.{
134779 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134780 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134781 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134782 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
134783 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134784 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
134785 .{ .@"0:", .vp_b, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134786 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
134787 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134788 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134789 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134790 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134791 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134792 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134793 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134794 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134795 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134796 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
134797 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134798 } },
134799 }, .{
134800 .required_features = .{ .avx, null, null, null },
134801 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134802 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134803 .patterns = &.{
134804 .{ .src = .{ .to_mem, .none, .none } },
134805 },
134806 .extra_temps = .{
134807 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134808 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134809 .{ .type = .vector_32_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134810 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134811 .unused,
134812 .unused,
134813 .unused,
134814 .unused,
134815 .unused,
134816 .unused,
134817 .unused,
134818 },
134819 .dst_temps = .{ .{ .rc = .sse }, .unused },
134820 .clobbers = .{ .eflags = true },
134821 .each = .{ .once = &.{
134822 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134823 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
134824 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134825 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
134826 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
134827 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
134828 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
134829 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134830 .{ .@"0:", .vp_b, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
134831 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134832 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134833 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134834 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134835 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134836 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134837 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134838 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134839 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
134840 .{ ._, .vp_b, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
134841 } },
134842 }, .{
134843 .required_features = .{ .sse4_1, null, null, null },
134844 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134845 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
134846 .patterns = &.{
134847 .{ .src = .{ .to_mem, .none, .none } },
134848 },
134849 .extra_temps = .{
134850 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134851 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134852 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134853 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134854 .unused,
134855 .unused,
134856 .unused,
134857 .unused,
134858 .unused,
134859 .unused,
134860 .unused,
134861 },
134862 .dst_temps = .{ .{ .rc = .sse }, .unused },
134863 .clobbers = .{ .eflags = true },
134864 .each = .{ .once = &.{
134865 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134866 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
134867 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134868 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
134869 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
134870 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
134871 .{ .@"0:", .p_b, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
134872 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134873 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134874 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134875 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
134876 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134877 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
134878 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134879 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
134880 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
134881 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
134882 .{ ._, .p_b, .maxs, .dst0x, .tmp3x, ._, ._ },
134883 } },
134884 }, .{
134885 .required_features = .{ .sse2, null, null, null },
134886 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
134887 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any },
134888 .patterns = &.{
134889 .{ .src = .{ .to_mem, .none, .none } },
134890 },
134891 .extra_temps = .{
134892 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134893 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134894 .{ .type = .vector_16_i8, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
134895 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134896 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
134897 .unused,
134898 .unused,
134899 .unused,
134900 .unused,
134901 .unused,
134902 .unused,
134903 },
134904 .dst_temps = .{ .{ .rc = .sse }, .unused },
134905 .clobbers = .{ .eflags = true },
134906 .each = .{ .once = &.{
134907 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134908 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
134909 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
134910 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
134911 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
134912 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
134913 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
134914 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
134915 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
134916 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
134917 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
134918 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
134919 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
134920 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134921 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134922 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
134923 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
134924 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
134925 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
134926 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
134927 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
134928 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
134929 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
134930 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
134931 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
134932 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
134933 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
134934 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
134935 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
134936 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
134937 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
134938 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
134939 .{ ._, ._dqa, .mov, .tmp3x, .dst0x, ._, ._ },
134940 .{ ._, .p_w, .srl, .tmp3x, .ui(8), ._, ._ },
134941 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
134942 .{ ._, .p_b, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
134943 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
134944 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
134945 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
134946 } },
134947 }, .{
134948 .required_features = .{ .avx512f, null, null, null },
134949 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134950 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .byte } }, .any, .any },
134951 .patterns = &.{
134952 .{ .src = .{ .to_mem, .none, .none } },
134953 },
134954 .extra_temps = .{
134955 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
134956 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
134957 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
134958 .unused,
134959 .unused,
134960 .unused,
134961 .unused,
134962 .unused,
134963 .unused,
134964 .unused,
134965 .unused,
134966 },
134967 .dst_temps = .{ .{ .rc = .sse }, .unused },
134968 .clobbers = .{ .eflags = true },
134969 .each = .{ .once = &.{
134970 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
134971 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
134972 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
134973 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
134974 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
134975 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
134976 .{ .@"0:", .vp_b, .maxu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
134977 .{ ._, .vp_b, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
134978 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
134979 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
134980 .{ ._, .vp_b, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
134981 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
134982 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134983 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134984 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134985 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
134986 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134987 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
134988 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134989 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
134990 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
134991 } },
134992 }, .{
134993 .required_features = .{ .avx2, null, null, null },
134994 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
134995 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
134996 .patterns = &.{
134997 .{ .src = .{ .to_mem, .none, .none } },
134998 },
134999 .extra_temps = .{
135000 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135001 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135002 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
135003 .unused,
135004 .unused,
135005 .unused,
135006 .unused,
135007 .unused,
135008 .unused,
135009 .unused,
135010 .unused,
135011 },
135012 .dst_temps = .{ .{ .rc = .sse }, .unused },
135013 .clobbers = .{ .eflags = true },
135014 .each = .{ .once = &.{
135015 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135016 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
135017 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
135018 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
135019 .{ .@"0:", .vp_b, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
135020 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
135021 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135022 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
135023 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135024 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135025 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135026 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135027 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135028 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
135029 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135030 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
135031 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135032 } },
135033 }, .{
135034 .required_features = .{ .avx, null, null, null },
135035 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
135036 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any },
135037 .patterns = &.{
135038 .{ .src = .{ .to_mem, .none, .none } },
135039 },
135040 .extra_temps = .{
135041 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135042 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135043 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
135044 .unused,
135045 .unused,
135046 .unused,
135047 .unused,
135048 .unused,
135049 .unused,
135050 .unused,
135051 .unused,
135052 },
135053 .dst_temps = .{ .{ .rc = .sse }, .unused },
135054 .clobbers = .{ .eflags = true },
135055 .each = .{ .once = &.{
135056 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135057 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
135058 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
135059 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
135060 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
135061 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135062 .{ .@"0:", .vp_b, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
135063 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
135064 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135065 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135066 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135067 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135068 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135069 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
135070 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135071 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
135072 .{ ._, .vp_b, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
135073 } },
135074 }, .{
135075 .required_features = .{ .sse2, null, null, null },
135076 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
135077 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any },
135078 .patterns = &.{
135079 .{ .src = .{ .to_mem, .none, .none } },
135080 },
135081 .extra_temps = .{
135082 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135083 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135084 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
135085 .unused,
135086 .unused,
135087 .unused,
135088 .unused,
135089 .unused,
135090 .unused,
135091 .unused,
135092 .unused,
135093 },
135094 .dst_temps = .{ .{ .rc = .sse }, .unused },
135095 .clobbers = .{ .eflags = true },
135096 .each = .{ .once = &.{
135097 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135098 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
135099 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
135100 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
135101 .{ .@"0:", .p_b, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
135102 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
135103 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135104 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135105 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
135106 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135107 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
135108 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
135109 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
135110 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
135111 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
135112 .{ ._, .p_b, .maxu, .dst0x, .tmp2x, ._, ._ },
135113 } },
135114 }, .{
135115 .required_features = .{ .cmov, .slow_incdec, null, null },
135116 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
135117 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
135118 .patterns = &.{
135119 .{ .src = .{ .to_mem, .none, .none } },
135120 },
135121 .extra_temps = .{
135122 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135123 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
135124 .unused,
135125 .unused,
135126 .unused,
135127 .unused,
135128 .unused,
135129 .unused,
135130 .unused,
135131 .unused,
135132 .unused,
135133 },
135134 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135135 .clobbers = .{ .eflags = true },
135136 .each = .{ .once = &.{
135137 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
135138 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
135139 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
135140 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
135141 .{ ._, ._l, .cmov, .dst0d, .tmp1d, ._, ._ },
135142 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
135143 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135144 } },
135145 }, .{
135146 .required_features = .{ .cmov, null, null, null },
135147 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
135148 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
135149 .patterns = &.{
135150 .{ .src = .{ .to_mem, .none, .none } },
135151 },
135152 .extra_temps = .{
135153 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135154 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
135155 .unused,
135156 .unused,
135157 .unused,
135158 .unused,
135159 .unused,
135160 .unused,
135161 .unused,
135162 .unused,
135163 .unused,
135164 },
135165 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135166 .clobbers = .{ .eflags = true },
135167 .each = .{ .once = &.{
135168 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
135169 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
135170 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
135171 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
135172 .{ ._, ._l, .cmov, .dst0d, .tmp1d, ._, ._ },
135173 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
135174 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
135175 } },
135176 }, .{
135177 .required_features = .{ .slow_incdec, null, null, null },
135178 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
135179 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
135180 .patterns = &.{
135181 .{ .src = .{ .to_mem, .none, .none } },
135182 },
135183 .extra_temps = .{
135184 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135185 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
135186 .unused,
135187 .unused,
135188 .unused,
135189 .unused,
135190 .unused,
135191 .unused,
135192 .unused,
135193 .unused,
135194 .unused,
135195 },
135196 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135197 .clobbers = .{ .eflags = true },
135198 .each = .{ .once = &.{
135199 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
135200 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
135201 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
135202 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
135203 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
135204 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
135205 .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
135206 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135207 } },
135208 }, .{
135209 .dst_constraints = .{ .{ .signed_int = .byte }, .any },
135210 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any },
135211 .patterns = &.{
135212 .{ .src = .{ .to_mem, .none, .none } },
135213 },
135214 .extra_temps = .{
135215 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135216 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
135217 .unused,
135218 .unused,
135219 .unused,
135220 .unused,
135221 .unused,
135222 .unused,
135223 .unused,
135224 .unused,
135225 .unused,
135226 },
135227 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135228 .clobbers = .{ .eflags = true },
135229 .each = .{ .once = &.{
135230 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
135231 .{ ._, ._, .movsx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
135232 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
135233 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
135234 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
135235 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
135236 .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
135237 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
135238 } },
135239 }, .{
135240 .required_features = .{ .cmov, .slow_incdec, null, null },
135241 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
135242 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
135243 .patterns = &.{
135244 .{ .src = .{ .to_mem, .none, .none } },
135245 },
135246 .extra_temps = .{
135247 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135248 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
135249 .unused,
135250 .unused,
135251 .unused,
135252 .unused,
135253 .unused,
135254 .unused,
135255 .unused,
135256 .unused,
135257 .unused,
135258 },
135259 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135260 .clobbers = .{ .eflags = true },
135261 .each = .{ .once = &.{
135262 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
135263 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
135264 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
135265 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
135266 .{ ._, ._b, .cmov, .dst0d, .tmp1d, ._, ._ },
135267 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
135268 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135269 } },
135270 }, .{
135271 .required_features = .{ .cmov, null, null, null },
135272 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
135273 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
135274 .patterns = &.{
135275 .{ .src = .{ .to_mem, .none, .none } },
135276 },
135277 .extra_temps = .{
135278 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135279 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
135280 .unused,
135281 .unused,
135282 .unused,
135283 .unused,
135284 .unused,
135285 .unused,
135286 .unused,
135287 .unused,
135288 .unused,
135289 },
135290 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135291 .clobbers = .{ .eflags = true },
135292 .each = .{ .once = &.{
135293 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
135294 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
135295 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
135296 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
135297 .{ ._, ._b, .cmov, .dst0d, .tmp1d, ._, ._ },
135298 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
135299 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
135300 } },
135301 }, .{
135302 .required_features = .{ .slow_incdec, null, null, null },
135303 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
135304 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
135305 .patterns = &.{
135306 .{ .src = .{ .to_mem, .none, .none } },
135307 },
135308 .extra_temps = .{
135309 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135310 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
135311 .unused,
135312 .unused,
135313 .unused,
135314 .unused,
135315 .unused,
135316 .unused,
135317 .unused,
135318 .unused,
135319 .unused,
135320 },
135321 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135322 .clobbers = .{ .eflags = true },
135323 .each = .{ .once = &.{
135324 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
135325 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
135326 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
135327 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
135328 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
135329 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
135330 .{ .@"1:", ._, .sub, .tmp0d, .si(1), ._, ._ },
135331 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
135332 } },
135333 }, .{
135334 .dst_constraints = .{ .{ .unsigned_int = .byte }, .any },
135335 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any },
135336 .patterns = &.{
135337 .{ .src = .{ .to_mem, .none, .none } },
135338 },
135339 .extra_temps = .{
135340 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
135341 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
135342 .unused,
135343 .unused,
135344 .unused,
135345 .unused,
135346 .unused,
135347 .unused,
135348 .unused,
135349 .unused,
135350 .unused,
135351 },
135352 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
135353 .clobbers = .{ .eflags = true },
135354 .each = .{ .once = &.{
135355 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
135356 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
135357 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ },
135358 .{ ._, ._, .cmp, .dst0b, .tmp1b, ._, ._ },
135359 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
135360 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
135361 .{ .@"1:", ._c, .de, .tmp0d, ._, ._, ._ },
135362 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
135363 } },
135364 }, .{
135365 .required_features = .{ .avx, null, null, null },
135366 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135367 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any },
135368 .patterns = &.{
135369 .{ .src = .{ .to_sse, .none, .none } },
135370 },
135371 .extra_temps = .{
135372 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135373 .unused,
135374 .unused,
135375 .unused,
135376 .unused,
135377 .unused,
135378 .unused,
135379 .unused,
135380 .unused,
135381 .unused,
135382 .unused,
135383 },
135384 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135385 .each = .{ .once = &.{
135386 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135387 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .tmp0x, ._ },
135388 } },
135389 }, .{
135390 .required_features = .{ .sse2, null, null, null },
135391 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135392 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any },
135393 .patterns = &.{
135394 .{ .src = .{ .to_mut_sse, .none, .none } },
135395 },
135396 .extra_temps = .{
135397 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135398 .unused,
135399 .unused,
135400 .unused,
135401 .unused,
135402 .unused,
135403 .unused,
135404 .unused,
135405 .unused,
135406 .unused,
135407 .unused,
135408 },
135409 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135410 .each = .{ .once = &.{
135411 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135412 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
135413 } },
135414 }, .{
135415 .required_features = .{ .avx, null, null, null },
135416 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135417 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
135418 .patterns = &.{
135419 .{ .src = .{ .to_sse, .none, .none } },
135420 },
135421 .extra_temps = .{
135422 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135423 .unused,
135424 .unused,
135425 .unused,
135426 .unused,
135427 .unused,
135428 .unused,
135429 .unused,
135430 .unused,
135431 .unused,
135432 .unused,
135433 },
135434 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135435 .each = .{ .once = &.{
135436 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135437 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .tmp0x, ._ },
135438 } },
135439 }, .{
135440 .required_features = .{ .sse4_1, null, null, null },
135441 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135442 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
135443 .patterns = &.{
135444 .{ .src = .{ .to_mut_sse, .none, .none } },
135445 },
135446 .extra_temps = .{
135447 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135448 .unused,
135449 .unused,
135450 .unused,
135451 .unused,
135452 .unused,
135453 .unused,
135454 .unused,
135455 .unused,
135456 .unused,
135457 .unused,
135458 },
135459 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135460 .each = .{ .once = &.{
135461 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135462 .{ ._, .p_w, .maxu, .dst0x, .tmp0x, ._, ._ },
135463 } },
135464 }, .{
135465 .required_features = .{ .sse2, null, null, null },
135466 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135467 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any },
135468 .patterns = &.{
135469 .{ .src = .{ .to_mut_sse, .none, .none } },
135470 },
135471 .extra_temps = .{
135472 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135473 .unused,
135474 .unused,
135475 .unused,
135476 .unused,
135477 .unused,
135478 .unused,
135479 .unused,
135480 .unused,
135481 .unused,
135482 .unused,
135483 },
135484 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135485 .each = .{ .once = &.{
135486 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135487 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
135488 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
135489 } },
135490 }, .{
135491 .required_features = .{ .avx, null, null, null },
135492 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135493 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
135494 .patterns = &.{
135495 .{ .src = .{ .to_sse, .none, .none } },
135496 },
135497 .extra_temps = .{
135498 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135499 .unused,
135500 .unused,
135501 .unused,
135502 .unused,
135503 .unused,
135504 .unused,
135505 .unused,
135506 .unused,
135507 .unused,
135508 .unused,
135509 },
135510 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135511 .each = .{ .once = &.{
135512 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135513 .{ ._, .vp_w, .maxs, .tmp0x, .src0x, .tmp0x, ._ },
135514 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
135515 .{ ._, .vp_w, .maxs, .dst0x, .tmp0x, .dst0x, ._ },
135516 } },
135517 }, .{
135518 .required_features = .{ .sse2, null, null, null },
135519 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135520 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
135521 .patterns = &.{
135522 .{ .src = .{ .to_sse, .none, .none } },
135523 },
135524 .extra_temps = .{
135525 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135526 .unused,
135527 .unused,
135528 .unused,
135529 .unused,
135530 .unused,
135531 .unused,
135532 .unused,
135533 .unused,
135534 .unused,
135535 .unused,
135536 },
135537 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135538 .each = .{ .once = &.{
135539 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135540 .{ ._, .p_w, .maxs, .tmp0x, .src0x, ._, ._ },
135541 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
135542 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
135543 } },
135544 }, .{
135545 .required_features = .{ .avx, null, null, null },
135546 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135547 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
135548 .patterns = &.{
135549 .{ .src = .{ .to_sse, .none, .none } },
135550 },
135551 .extra_temps = .{
135552 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135553 .unused,
135554 .unused,
135555 .unused,
135556 .unused,
135557 .unused,
135558 .unused,
135559 .unused,
135560 .unused,
135561 .unused,
135562 .unused,
135563 },
135564 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135565 .each = .{ .once = &.{
135566 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135567 .{ ._, .vp_w, .maxu, .tmp0x, .src0x, .tmp0x, ._ },
135568 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
135569 .{ ._, .vp_w, .maxu, .dst0x, .tmp0x, .dst0x, ._ },
135570 } },
135571 }, .{
135572 .required_features = .{ .sse4_1, null, null, null },
135573 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135574 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
135575 .patterns = &.{
135576 .{ .src = .{ .to_mut_sse, .none, .none } },
135577 },
135578 .extra_temps = .{
135579 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135580 .unused,
135581 .unused,
135582 .unused,
135583 .unused,
135584 .unused,
135585 .unused,
135586 .unused,
135587 .unused,
135588 .unused,
135589 .unused,
135590 },
135591 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135592 .each = .{ .once = &.{
135593 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135594 .{ ._, .p_w, .maxu, .tmp0x, .src0x, ._, ._ },
135595 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
135596 .{ ._, .p_w, .maxu, .dst0x, .tmp0x, ._, ._ },
135597 } },
135598 }, .{
135599 .required_features = .{ .sse2, null, null, null },
135600 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135601 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
135602 .patterns = &.{
135603 .{ .src = .{ .to_sse, .none, .none } },
135604 },
135605 .extra_temps = .{
135606 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135607 .unused,
135608 .unused,
135609 .unused,
135610 .unused,
135611 .unused,
135612 .unused,
135613 .unused,
135614 .unused,
135615 .unused,
135616 .unused,
135617 },
135618 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135619 .each = .{ .once = &.{
135620 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
135621 .{ ._, .p_w, .subus, .tmp0x, .src0x, ._, ._ },
135622 .{ ._, .p_w, .add, .tmp0x, .src0x, ._, ._ },
135623 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
135624 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
135625 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
135626 } },
135627 }, .{
135628 .required_features = .{ .avx, null, null, null },
135629 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135630 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
135631 .patterns = &.{
135632 .{ .src = .{ .to_sse, .none, .none } },
135633 },
135634 .extra_temps = .{
135635 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135636 .unused,
135637 .unused,
135638 .unused,
135639 .unused,
135640 .unused,
135641 .unused,
135642 .unused,
135643 .unused,
135644 .unused,
135645 .unused,
135646 },
135647 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135648 .each = .{ .once = &.{
135649 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135650 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .tmp0x, ._ },
135651 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
135652 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
135653 } },
135654 }, .{
135655 .required_features = .{ .sse2, null, null, null },
135656 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135657 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any },
135658 .patterns = &.{
135659 .{ .src = .{ .to_mut_sse, .none, .none } },
135660 },
135661 .extra_temps = .{
135662 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135663 .unused,
135664 .unused,
135665 .unused,
135666 .unused,
135667 .unused,
135668 .unused,
135669 .unused,
135670 .unused,
135671 .unused,
135672 .unused,
135673 },
135674 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135675 .each = .{ .once = &.{
135676 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135677 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
135678 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
135679 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
135680 } },
135681 }, .{
135682 .required_features = .{ .avx, null, null, null },
135683 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135684 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
135685 .patterns = &.{
135686 .{ .src = .{ .to_sse, .none, .none } },
135687 },
135688 .extra_temps = .{
135689 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135690 .unused,
135691 .unused,
135692 .unused,
135693 .unused,
135694 .unused,
135695 .unused,
135696 .unused,
135697 .unused,
135698 .unused,
135699 .unused,
135700 },
135701 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135702 .each = .{ .once = &.{
135703 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135704 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .tmp0x, ._ },
135705 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
135706 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
135707 } },
135708 }, .{
135709 .required_features = .{ .sse4_1, null, null, null },
135710 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135711 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
135712 .patterns = &.{
135713 .{ .src = .{ .to_mut_sse, .none, .none } },
135714 },
135715 .extra_temps = .{
135716 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135717 .unused,
135718 .unused,
135719 .unused,
135720 .unused,
135721 .unused,
135722 .unused,
135723 .unused,
135724 .unused,
135725 .unused,
135726 .unused,
135727 },
135728 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135729 .each = .{ .once = &.{
135730 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135731 .{ ._, .p_w, .maxu, .dst0x, .tmp0x, ._, ._ },
135732 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
135733 .{ ._, .p_w, .maxu, .dst0x, .tmp0x, ._, ._ },
135734 } },
135735 }, .{
135736 .required_features = .{ .sse2, null, null, null },
135737 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135738 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any },
135739 .patterns = &.{
135740 .{ .src = .{ .to_mut_sse, .none, .none } },
135741 },
135742 .extra_temps = .{
135743 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135744 .unused,
135745 .unused,
135746 .unused,
135747 .unused,
135748 .unused,
135749 .unused,
135750 .unused,
135751 .unused,
135752 .unused,
135753 .unused,
135754 },
135755 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135756 .each = .{ .once = &.{
135757 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
135758 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
135759 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
135760 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
135761 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
135762 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
135763 } },
135764 }, .{
135765 .required_features = .{ .avx2, null, null, null },
135766 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135767 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
135768 .patterns = &.{
135769 .{ .src = .{ .mem, .none, .none } },
135770 .{ .src = .{ .to_sse, .none, .none } },
135771 },
135772 .extra_temps = .{
135773 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135774 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
135775 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135776 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
135777 .unused,
135778 .unused,
135779 .unused,
135780 .unused,
135781 .unused,
135782 .unused,
135783 .unused,
135784 },
135785 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135786 .each = .{ .once = &.{
135787 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135788 .{ ._, .vp_w, .broadcast, .tmp2x, .lea(.tmp0w), ._, ._ },
135789 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
135790 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
135791 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
135792 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
135793 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
135794 } },
135795 }, .{
135796 .required_features = .{ .avx, null, null, null },
135797 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135798 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
135799 .patterns = &.{
135800 .{ .src = .{ .mem, .none, .none } },
135801 .{ .src = .{ .to_sse, .none, .none } },
135802 },
135803 .extra_temps = .{
135804 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135805 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
135806 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135807 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
135808 .unused,
135809 .unused,
135810 .unused,
135811 .unused,
135812 .unused,
135813 .unused,
135814 .unused,
135815 },
135816 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135817 .each = .{ .once = &.{
135818 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135819 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
135820 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
135821 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
135822 .{ ._, .vp_, .@"or", .dst0x, .dst0x, .lea(.tmp0x), ._ },
135823 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
135824 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
135825 } },
135826 }, .{
135827 .required_features = .{ .sse4_1, null, null, null },
135828 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135829 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
135830 .patterns = &.{
135831 .{ .src = .{ .to_mut_sse, .none, .none } },
135832 },
135833 .extra_temps = .{
135834 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135835 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
135836 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
135837 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135838 .unused,
135839 .unused,
135840 .unused,
135841 .unused,
135842 .unused,
135843 .unused,
135844 .unused,
135845 },
135846 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135847 .each = .{ .once = &.{
135848 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135849 .{ ._, ._, .movddup, .tmp3x, .lea(.tmp0q), ._, ._ },
135850 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
135851 .{ ._, .p_, .xor, .dst0x, .tmp3x, ._, ._ },
135852 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
135853 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
135854 .{ ._, .p_, .xor, .dst0x, .tmp3x, ._, ._ },
135855 } },
135856 }, .{
135857 .required_features = .{ .sse2, null, null, null },
135858 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135859 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
135860 .patterns = &.{
135861 .{ .src = .{ .to_mut_sse, .none, .none } },
135862 },
135863 .extra_temps = .{
135864 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135865 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135866 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
135867 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135868 .unused,
135869 .unused,
135870 .unused,
135871 .unused,
135872 .unused,
135873 .unused,
135874 .unused,
135875 },
135876 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135877 .each = .{ .once = &.{
135878 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135879 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
135880 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
135881 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
135882 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135883 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
135884 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
135885 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
135886 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
135887 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
135888 } },
135889 }, .{
135890 .required_features = .{ .avx, null, null, null },
135891 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135892 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
135893 .patterns = &.{
135894 .{ .src = .{ .to_sse, .none, .none } },
135895 },
135896 .extra_temps = .{
135897 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135898 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135899 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
135900 .unused,
135901 .unused,
135902 .unused,
135903 .unused,
135904 .unused,
135905 .unused,
135906 .unused,
135907 .unused,
135908 },
135909 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
135910 .each = .{ .once = &.{
135911 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135912 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
135913 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
135914 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
135915 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
135916 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
135917 } },
135918 }, .{
135919 .required_features = .{ .sse4_1, null, null, null },
135920 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135921 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
135922 .patterns = &.{
135923 .{ .src = .{ .to_mut_sse, .none, .none } },
135924 },
135925 .extra_temps = .{
135926 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135927 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135928 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
135929 .unused,
135930 .unused,
135931 .unused,
135932 .unused,
135933 .unused,
135934 .unused,
135935 .unused,
135936 .unused,
135937 },
135938 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135939 .each = .{ .once = &.{
135940 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135941 .{ ._, .p_w, .cmpeq, .tmp2x, .tmp2x, ._, ._ },
135942 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
135943 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135944 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
135945 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
135946 } },
135947 }, .{
135948 .required_features = .{ .sse2, null, null, null },
135949 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
135950 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
135951 .patterns = &.{
135952 .{ .src = .{ .to_mut_sse, .none, .none } },
135953 },
135954 .extra_temps = .{
135955 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135956 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
135957 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
135958 .unused,
135959 .unused,
135960 .unused,
135961 .unused,
135962 .unused,
135963 .unused,
135964 .unused,
135965 .unused,
135966 },
135967 .dst_temps = .{ .{ .ref = .src0 }, .unused },
135968 .each = .{ .once = &.{
135969 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
135970 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
135971 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135972 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
135973 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
135974 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
135975 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
135976 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
135977 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
135978 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
135979 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
135980 } },
135981 }, .{
135982 .required_features = .{ .avx2, null, null, null },
135983 .dst_constraints = .{ .{ .signed_int = .word }, .any },
135984 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
135985 .patterns = &.{
135986 .{ .src = .{ .to_sse, .none, .none } },
135987 },
135988 .extra_temps = .{
135989 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
135990 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
135991 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
135992 .unused,
135993 .unused,
135994 .unused,
135995 .unused,
135996 .unused,
135997 .unused,
135998 .unused,
135999 .unused,
136000 },
136001 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136002 .each = .{ .once = &.{
136003 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136004 .{ ._, .vp_w, .broadcast, .tmp2x, .lea(.tmp0w), ._, ._ },
136005 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
136006 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136007 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136008 } },
136009 }, .{
136010 .required_features = .{ .avx, null, null, null },
136011 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136012 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
136013 .patterns = &.{
136014 .{ .src = .{ .to_sse, .none, .none } },
136015 },
136016 .extra_temps = .{
136017 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136018 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136019 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136020 .unused,
136021 .unused,
136022 .unused,
136023 .unused,
136024 .unused,
136025 .unused,
136026 .unused,
136027 .unused,
136028 },
136029 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136030 .each = .{ .once = &.{
136031 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136032 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
136033 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp2x, ._ },
136034 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136035 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136036 } },
136037 }, .{
136038 .required_features = .{ .sse4_1, null, null, null },
136039 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136040 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
136041 .patterns = &.{
136042 .{ .src = .{ .to_mut_sse, .none, .none } },
136043 },
136044 .extra_temps = .{
136045 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136046 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136047 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136048 .unused,
136049 .unused,
136050 .unused,
136051 .unused,
136052 .unused,
136053 .unused,
136054 .unused,
136055 .unused,
136056 },
136057 .dst_temps = .{ .{ .ref = .src0 }, .unused },
136058 .each = .{ .once = &.{
136059 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136060 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
136061 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136062 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136063 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136064 } },
136065 }, .{
136066 .required_features = .{ .sse2, null, null, null },
136067 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136068 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
136069 .patterns = &.{
136070 .{ .src = .{ .to_mut_sse, .none, .none } },
136071 },
136072 .extra_temps = .{
136073 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136074 .unused,
136075 .unused,
136076 .unused,
136077 .unused,
136078 .unused,
136079 .unused,
136080 .unused,
136081 .unused,
136082 .unused,
136083 .unused,
136084 },
136085 .dst_temps = .{ .{ .ref = .src0 }, .unused },
136086 .each = .{ .once = &.{
136087 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
136088 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
136089 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
136090 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
136091 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
136092 .{ ._, .p_w, .maxs, .dst0x, .tmp0x, ._, ._ },
136093 } },
136094 }, .{
136095 .required_features = .{ .avx, null, null, null },
136096 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136097 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
136098 .patterns = &.{
136099 .{ .src = .{ .to_sse, .none, .none } },
136100 },
136101 .extra_temps = .{
136102 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136103 .unused,
136104 .unused,
136105 .unused,
136106 .unused,
136107 .unused,
136108 .unused,
136109 .unused,
136110 .unused,
136111 .unused,
136112 .unused,
136113 },
136114 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136115 .each = .{ .once = &.{
136116 .{ ._, .vp_w, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
136117 .{ ._, .vp_, .xor, .dst0x, .src0x, .tmp0x, ._ },
136118 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136119 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136120 } },
136121 }, .{
136122 .required_features = .{ .sse4_1, null, null, null },
136123 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136124 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
136125 .patterns = &.{
136126 .{ .src = .{ .to_mut_sse, .none, .none } },
136127 },
136128 .extra_temps = .{
136129 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136130 .unused,
136131 .unused,
136132 .unused,
136133 .unused,
136134 .unused,
136135 .unused,
136136 .unused,
136137 .unused,
136138 .unused,
136139 .unused,
136140 },
136141 .dst_temps = .{ .{ .ref = .src0 }, .unused },
136142 .each = .{ .once = &.{
136143 .{ ._, .p_w, .cmpeq, .tmp0x, .tmp0x, ._, ._ },
136144 .{ ._, .p_, .xor, .dst0x, .tmp0x, ._, ._ },
136145 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136146 .{ ._, .p_, .xor, .dst0x, .tmp0x, ._, ._ },
136147 } },
136148 }, .{
136149 .required_features = .{ .sse2, null, null, null },
136150 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136151 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
136152 .patterns = &.{
136153 .{ .src = .{ .to_mut_sse, .none, .none } },
136154 },
136155 .extra_temps = .{
136156 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136157 .unused,
136158 .unused,
136159 .unused,
136160 .unused,
136161 .unused,
136162 .unused,
136163 .unused,
136164 .unused,
136165 .unused,
136166 .unused,
136167 },
136168 .dst_temps = .{ .{ .ref = .src0 }, .unused },
136169 .each = .{ .once = &.{
136170 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
136171 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
136172 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
136173 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
136174 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
136175 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
136176 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
136177 .{ ._, .p_w, .subus, .dst0x, .tmp0x, ._, ._ },
136178 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
136179 } },
136180 }, .{
136181 .required_features = .{ .avx2, null, null, null },
136182 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136183 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
136184 .patterns = &.{
136185 .{ .src = .{ .mem, .none, .none } },
136186 .{ .src = .{ .to_sse, .none, .none } },
136187 },
136188 .extra_temps = .{
136189 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136190 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136191 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
136192 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
136193 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136194 .unused,
136195 .unused,
136196 .unused,
136197 .unused,
136198 .unused,
136199 .unused,
136200 },
136201 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136202 .each = .{ .once = &.{
136203 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136204 .{ ._, .vp_w, .broadcast, .tmp2y, .lea(.tmp0w), ._, ._ },
136205 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
136206 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
136207 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136208 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
136209 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
136210 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136211 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136212 } },
136213 }, .{
136214 .required_features = .{ .avx, null, null, null },
136215 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136216 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
136217 .patterns = &.{
136218 .{ .src = .{ .mem, .none, .none } },
136219 .{ .src = .{ .to_sse, .none, .none } },
136220 },
136221 .extra_temps = .{
136222 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136223 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136224 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
136225 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
136226 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136227 .unused,
136228 .unused,
136229 .unused,
136230 .unused,
136231 .unused,
136232 .unused,
136233 },
136234 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136235 .each = .{ .once = &.{
136236 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136237 .{ ._, .v_ss, .broadcast, .tmp2y, .lea(.tmp0d), ._, ._ },
136238 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
136239 .{ ._, .v_ps, .xor, .dst0y, .tmp2y, .src0y, ._ },
136240 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136241 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
136242 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
136243 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136244 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136245 } },
136246 }, .{
136247 .required_features = .{ .avx2, null, null, null },
136248 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136249 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
136250 .patterns = &.{
136251 .{ .src = .{ .to_sse, .none, .none } },
136252 },
136253 .extra_temps = .{
136254 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136255 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136256 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136257 .unused,
136258 .unused,
136259 .unused,
136260 .unused,
136261 .unused,
136262 .unused,
136263 .unused,
136264 .unused,
136265 },
136266 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136267 .each = .{ .once = &.{
136268 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136269 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
136270 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
136271 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136272 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
136273 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136274 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136275 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136276 } },
136277 }, .{
136278 .required_features = .{ .avx, null, null, null },
136279 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136280 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
136281 .patterns = &.{
136282 .{ .src = .{ .to_sse, .none, .none } },
136283 },
136284 .extra_temps = .{
136285 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136286 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136287 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136288 .unused,
136289 .unused,
136290 .unused,
136291 .unused,
136292 .unused,
136293 .unused,
136294 .unused,
136295 .unused,
136296 },
136297 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136298 .each = .{ .once = &.{
136299 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136300 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
136301 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
136302 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136303 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
136304 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136305 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136306 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136307 } },
136308 }, .{
136309 .required_features = .{ .avx2, null, null, null },
136310 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136311 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
136312 .patterns = &.{
136313 .{ .src = .{ .to_sse, .none, .none } },
136314 },
136315 .extra_temps = .{
136316 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136317 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136318 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136319 .unused,
136320 .unused,
136321 .unused,
136322 .unused,
136323 .unused,
136324 .unused,
136325 .unused,
136326 .unused,
136327 },
136328 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136329 .each = .{ .once = &.{
136330 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
136331 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .tmp0x, ._ },
136332 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
136333 .{ ._, .vp_w, .broadcast, .tmp0x, .lea(.tmp1w), ._, ._ },
136334 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136335 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136336 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136337 } },
136338 }, .{
136339 .required_features = .{ .avx, null, null, null },
136340 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136341 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
136342 .patterns = &.{
136343 .{ .src = .{ .to_sse, .none, .none } },
136344 },
136345 .extra_temps = .{
136346 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136347 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136348 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136349 .unused,
136350 .unused,
136351 .unused,
136352 .unused,
136353 .unused,
136354 .unused,
136355 .unused,
136356 .unused,
136357 },
136358 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136359 .each = .{ .once = &.{
136360 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
136361 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .tmp0x, ._ },
136362 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
136363 .{ ._, .v_ss, .broadcast, .tmp0x, .lea(.tmp1d), ._, ._ },
136364 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136365 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136366 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136367 } },
136368 }, .{
136369 .required_features = .{ .avx2, null, null, null },
136370 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136371 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
136372 .patterns = &.{
136373 .{ .src = .{ .to_sse, .none, .none } },
136374 },
136375 .extra_temps = .{
136376 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136377 .unused,
136378 .unused,
136379 .unused,
136380 .unused,
136381 .unused,
136382 .unused,
136383 .unused,
136384 .unused,
136385 .unused,
136386 .unused,
136387 },
136388 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136389 .each = .{ .once = &.{
136390 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
136391 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .tmp0x, ._ },
136392 .{ ._, .vp_w, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
136393 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136394 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136395 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136396 } },
136397 }, .{
136398 .required_features = .{ .avx, null, null, null },
136399 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136400 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
136401 .patterns = &.{
136402 .{ .src = .{ .to_sse, .none, .none } },
136403 },
136404 .extra_temps = .{
136405 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136406 .unused,
136407 .unused,
136408 .unused,
136409 .unused,
136410 .unused,
136411 .unused,
136412 .unused,
136413 .unused,
136414 .unused,
136415 .unused,
136416 },
136417 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
136418 .each = .{ .once = &.{
136419 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
136420 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .tmp0x, ._ },
136421 .{ ._, .vp_w, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
136422 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136423 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136424 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136425 } },
136426 }, .{
136427 .required_features = .{ .avx512f, null, null, null },
136428 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136429 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
136430 .patterns = &.{
136431 .{ .src = .{ .to_mem, .none, .none } },
136432 },
136433 .extra_temps = .{
136434 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136435 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136436 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
136437 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
136438 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
136439 .unused,
136440 .unused,
136441 .unused,
136442 .unused,
136443 .unused,
136444 .unused,
136445 },
136446 .dst_temps = .{ .{ .rc = .sse }, .unused },
136447 .each = .{ .once = &.{
136448 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136449 .{ ._, .vp_w, .broadcast, .tmp2y, .lea(.tmp0w), ._, ._ },
136450 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
136451 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
136452 .{ ._, .vp_, .xor, .tmp4y, .tmp2y, .memd(.src0y, 32), ._ },
136453 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136454 .{ ._, .vp_, .@"or", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
136455 .{ ._, .vp_w, .minu, .dst0y, .dst0y, .tmp4y, ._ },
136456 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
136457 .{ ._, .vp_w, .minu, .dst0x, .dst0x, .tmp4x, ._ },
136458 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
136459 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136460 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136461 } },
136462 }, .{
136463 .required_features = .{ .avx512f, null, null, null },
136464 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136465 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
136466 .patterns = &.{
136467 .{ .src = .{ .to_mem, .none, .none } },
136468 },
136469 .extra_temps = .{
136470 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136471 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136472 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
136473 .unused,
136474 .unused,
136475 .unused,
136476 .unused,
136477 .unused,
136478 .unused,
136479 .unused,
136480 .unused,
136481 },
136482 .dst_temps = .{ .{ .rc = .sse }, .unused },
136483 .each = .{ .once = &.{
136484 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136485 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
136486 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
136487 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
136488 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
136489 .{ ._, .vp_w, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
136490 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
136491 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
136492 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
136493 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136494 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136495 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136496 } },
136497 }, .{
136498 .required_features = .{ .avx512f, null, null, null },
136499 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136500 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
136501 .patterns = &.{
136502 .{ .src = .{ .to_mem, .none, .none } },
136503 },
136504 .extra_temps = .{
136505 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136506 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
136507 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136508 .unused,
136509 .unused,
136510 .unused,
136511 .unused,
136512 .unused,
136513 .unused,
136514 .unused,
136515 .unused,
136516 },
136517 .dst_temps = .{ .{ .rc = .sse }, .unused },
136518 .each = .{ .once = &.{
136519 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
136520 .{ ._, .vp_w, .maxs, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
136521 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
136522 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
136523 .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ },
136524 .{ ._, .vp_w, .broadcast, .tmp0x, .lea(.tmp1w), ._, ._ },
136525 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136526 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136527 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136528 } },
136529 }, .{
136530 .required_features = .{ .avx512f, null, null, null },
136531 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136532 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
136533 .patterns = &.{
136534 .{ .src = .{ .to_mem, .none, .none } },
136535 },
136536 .extra_temps = .{
136537 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136538 .unused,
136539 .unused,
136540 .unused,
136541 .unused,
136542 .unused,
136543 .unused,
136544 .unused,
136545 .unused,
136546 .unused,
136547 .unused,
136548 },
136549 .dst_temps = .{ .{ .rc = .sse }, .unused },
136550 .each = .{ .once = &.{
136551 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
136552 .{ ._, .vp_w, .maxu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
136553 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
136554 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
136555 .{ ._, .vp_w, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
136556 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136557 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136558 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp0x, ._ },
136559 } },
136560 }, .{
136561 .required_features = .{ .avx2, null, null, null },
136562 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136563 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
136564 .patterns = &.{
136565 .{ .src = .{ .to_mem, .none, .none } },
136566 },
136567 .extra_temps = .{
136568 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136569 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136570 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136571 .unused,
136572 .unused,
136573 .unused,
136574 .unused,
136575 .unused,
136576 .unused,
136577 .unused,
136578 .unused,
136579 },
136580 .dst_temps = .{ .{ .rc = .sse }, .unused },
136581 .clobbers = .{ .eflags = true },
136582 .each = .{ .once = &.{
136583 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
136584 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
136585 .{ .@"0:", .vp_w, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136586 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
136587 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136588 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
136589 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
136590 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136591 .{ ._, .vp_w, .broadcast, .tmp1x, .lea(.tmp0w), ._, ._ },
136592 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
136593 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136594 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
136595 } },
136596 }, .{
136597 .required_features = .{ .avx, null, null, null },
136598 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136599 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
136600 .patterns = &.{
136601 .{ .src = .{ .to_mem, .none, .none } },
136602 },
136603 .extra_temps = .{
136604 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136605 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136606 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136607 .unused,
136608 .unused,
136609 .unused,
136610 .unused,
136611 .unused,
136612 .unused,
136613 .unused,
136614 .unused,
136615 },
136616 .dst_temps = .{ .{ .rc = .sse }, .unused },
136617 .clobbers = .{ .eflags = true },
136618 .each = .{ .once = &.{
136619 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136620 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136621 .{ .@"0:", .vp_w, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
136622 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136623 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136624 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136625 .{ ._, .v_ss, .broadcast, .tmp2x, .lea(.tmp0d), ._, ._ },
136626 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136627 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136628 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
136629 } },
136630 }, .{
136631 .required_features = .{ .sse4_1, null, null, null },
136632 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136633 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
136634 .patterns = &.{
136635 .{ .src = .{ .to_mem, .none, .none } },
136636 },
136637 .extra_temps = .{
136638 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136639 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136640 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136641 .unused,
136642 .unused,
136643 .unused,
136644 .unused,
136645 .unused,
136646 .unused,
136647 .unused,
136648 .unused,
136649 },
136650 .dst_temps = .{ .{ .rc = .sse }, .unused },
136651 .clobbers = .{ .eflags = true },
136652 .each = .{ .once = &.{
136653 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136654 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136655 .{ .@"0:", .p_w, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
136656 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136657 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136658 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136659 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
136660 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136661 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136662 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
136663 } },
136664 }, .{
136665 .required_features = .{ .sse2, null, null, null },
136666 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136667 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
136668 .patterns = &.{
136669 .{ .src = .{ .to_mem, .none, .none } },
136670 },
136671 .extra_temps = .{
136672 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136673 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136674 .unused,
136675 .unused,
136676 .unused,
136677 .unused,
136678 .unused,
136679 .unused,
136680 .unused,
136681 .unused,
136682 .unused,
136683 },
136684 .dst_temps = .{ .{ .rc = .sse }, .unused },
136685 .clobbers = .{ .eflags = true },
136686 .each = .{ .once = &.{
136687 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136688 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136689 .{ .@"0:", .p_w, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
136690 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136691 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136692 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136693 .{ ._, .p_w, .maxs, .dst0x, .tmp1x, ._, ._ },
136694 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136695 .{ ._, .p_w, .maxs, .dst0x, .tmp1x, ._, ._ },
136696 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
136697 .{ ._, .p_w, .maxs, .dst0x, .tmp1x, ._, ._ },
136698 } },
136699 }, .{
136700 .required_features = .{ .avx2, null, null, null },
136701 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136702 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
136703 .patterns = &.{
136704 .{ .src = .{ .to_mem, .none, .none } },
136705 },
136706 .extra_temps = .{
136707 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136708 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136709 .unused,
136710 .unused,
136711 .unused,
136712 .unused,
136713 .unused,
136714 .unused,
136715 .unused,
136716 .unused,
136717 .unused,
136718 },
136719 .dst_temps = .{ .{ .rc = .sse }, .unused },
136720 .clobbers = .{ .eflags = true },
136721 .each = .{ .once = &.{
136722 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
136723 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
136724 .{ .@"0:", .vp_w, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136725 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
136726 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136727 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
136728 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
136729 .{ ._, .vp_w, .cmpeq, .tmp1x, .tmp1x, .tmp1x, ._ },
136730 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
136731 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136732 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
136733 } },
136734 }, .{
136735 .required_features = .{ .avx, null, null, null },
136736 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136737 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
136738 .patterns = &.{
136739 .{ .src = .{ .to_mem, .none, .none } },
136740 },
136741 .extra_temps = .{
136742 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136743 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136744 .unused,
136745 .unused,
136746 .unused,
136747 .unused,
136748 .unused,
136749 .unused,
136750 .unused,
136751 .unused,
136752 .unused,
136753 },
136754 .dst_temps = .{ .{ .rc = .sse }, .unused },
136755 .clobbers = .{ .eflags = true },
136756 .each = .{ .once = &.{
136757 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136758 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136759 .{ ._, .vp_w, .cmpeq, .tmp1x, .tmp1x, .tmp1x, ._ },
136760 .{ .@"0:", .vp_w, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
136761 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136762 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136763 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
136764 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136765 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp1x, ._ },
136766 } },
136767 }, .{
136768 .required_features = .{ .sse4_1, null, null, null },
136769 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136770 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
136771 .patterns = &.{
136772 .{ .src = .{ .to_mem, .none, .none } },
136773 },
136774 .extra_temps = .{
136775 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136776 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136777 .unused,
136778 .unused,
136779 .unused,
136780 .unused,
136781 .unused,
136782 .unused,
136783 .unused,
136784 .unused,
136785 .unused,
136786 },
136787 .dst_temps = .{ .{ .rc = .sse }, .unused },
136788 .clobbers = .{ .eflags = true },
136789 .each = .{ .once = &.{
136790 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136791 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136792 .{ ._, .p_w, .cmpeq, .tmp1x, .tmp1x, ._, ._ },
136793 .{ .@"0:", .p_w, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
136794 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136795 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136796 .{ ._, .p_, .xor, .dst0x, .tmp1x, ._, ._ },
136797 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136798 .{ ._, .p_, .xor, .dst0x, .tmp1x, ._, ._ },
136799 } },
136800 }, .{
136801 .required_features = .{ .sse2, null, null, null },
136802 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
136803 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
136804 .patterns = &.{
136805 .{ .src = .{ .to_mem, .none, .none } },
136806 },
136807 .extra_temps = .{
136808 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136809 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
136810 .unused,
136811 .unused,
136812 .unused,
136813 .unused,
136814 .unused,
136815 .unused,
136816 .unused,
136817 .unused,
136818 .unused,
136819 },
136820 .dst_temps = .{ .{ .rc = .sse }, .unused },
136821 .clobbers = .{ .eflags = true },
136822 .each = .{ .once = &.{
136823 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
136824 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
136825 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
136826 .{ ._, .p_w, .subus, .tmp1x, .dst0x, ._, ._ },
136827 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
136828 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136829 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136830 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136831 .{ ._, .p_w, .subus, .dst0x, .tmp1x, ._, ._ },
136832 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
136833 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
136834 .{ ._, .p_w, .subus, .dst0x, .tmp1x, ._, ._ },
136835 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
136836 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
136837 .{ ._, .p_w, .subus, .dst0x, .tmp1x, ._, ._ },
136838 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
136839 } },
136840 }, .{
136841 .required_features = .{ .avx512f, null, null, null },
136842 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136843 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .word } }, .any, .any },
136844 .patterns = &.{
136845 .{ .src = .{ .to_mem, .none, .none } },
136846 },
136847 .extra_temps = .{
136848 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136849 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136850 .{ .type = .vector_32_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136851 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
136852 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136853 .unused,
136854 .unused,
136855 .unused,
136856 .unused,
136857 .unused,
136858 .unused,
136859 },
136860 .dst_temps = .{ .{ .rc = .sse }, .unused },
136861 .clobbers = .{ .eflags = true },
136862 .each = .{ .once = &.{
136863 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136864 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
136865 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
136866 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136867 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
136868 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
136869 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136870 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
136871 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
136872 .{ .@"0:", .vp_w, .maxs, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
136873 .{ ._, .vp_w, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136874 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
136875 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136876 .{ ._, .vp_w, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
136877 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
136878 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136879 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
136880 .{ ._, .vp_w, .broadcast, .tmp3x, .lea(.tmp0w), ._, ._ },
136881 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
136882 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136883 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
136884 } },
136885 }, .{
136886 .required_features = .{ .avx2, null, null, null },
136887 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136888 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
136889 .patterns = &.{
136890 .{ .src = .{ .to_mem, .none, .none } },
136891 },
136892 .extra_temps = .{
136893 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136894 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136895 .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136896 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136897 .{ .type = .i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136898 .unused,
136899 .unused,
136900 .unused,
136901 .unused,
136902 .unused,
136903 .unused,
136904 },
136905 .dst_temps = .{ .{ .rc = .sse }, .unused },
136906 .clobbers = .{ .eflags = true },
136907 .each = .{ .once = &.{
136908 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136909 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
136910 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136911 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
136912 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136913 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
136914 .{ .@"0:", .vp_w, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
136915 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
136916 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136917 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
136918 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136919 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
136920 .{ ._, .vp_w, .broadcast, .tmp3x, .lea(.tmp0w), ._, ._ },
136921 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
136922 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136923 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
136924 } },
136925 }, .{
136926 .required_features = .{ .avx, null, null, null },
136927 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136928 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any },
136929 .patterns = &.{
136930 .{ .src = .{ .to_mem, .none, .none } },
136931 },
136932 .extra_temps = .{
136933 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136934 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136935 .{ .type = .vector_16_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136936 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136937 .{ .type = .vector_2_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136938 .unused,
136939 .unused,
136940 .unused,
136941 .unused,
136942 .unused,
136943 .unused,
136944 },
136945 .dst_temps = .{ .{ .rc = .sse }, .unused },
136946 .clobbers = .{ .eflags = true },
136947 .each = .{ .once = &.{
136948 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136949 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
136950 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136951 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
136952 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
136953 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
136954 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
136955 .{ ._, .vp_w, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
136956 .{ .@"0:", .vp_w, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
136957 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136958 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136959 .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ },
136960 .{ ._, .v_ss, .broadcast, .tmp3x, .lea(.tmp0d), ._, ._ },
136961 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
136962 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
136963 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp3x, ._ },
136964 } },
136965 }, .{
136966 .required_features = .{ .sse4_1, null, null, null },
136967 .dst_constraints = .{ .{ .signed_int = .word }, .any },
136968 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
136969 .patterns = &.{
136970 .{ .src = .{ .to_mem, .none, .none } },
136971 },
136972 .extra_temps = .{
136973 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
136974 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
136975 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
136976 .{ .type = .vector_4_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smax, .outside = .smax } } },
136977 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
136978 .unused,
136979 .unused,
136980 .unused,
136981 .unused,
136982 .unused,
136983 .unused,
136984 },
136985 .dst_temps = .{ .{ .rc = .sse }, .unused },
136986 .clobbers = .{ .eflags = true },
136987 .each = .{ .once = &.{
136988 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
136989 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
136990 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
136991 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
136992 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
136993 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
136994 .{ .@"0:", .p_w, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
136995 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
136996 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
136997 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
136998 .{ ._, ._, .movddup, .tmp4x, .lea(.tmp0q), ._, ._ },
136999 .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
137000 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
137001 .{ ._, .p_, .xor, .dst0x, .tmp4x, ._, ._ },
137002 } },
137003 }, .{
137004 .required_features = .{ .sse2, null, null, null },
137005 .dst_constraints = .{ .{ .signed_int = .word }, .any },
137006 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any },
137007 .patterns = &.{
137008 .{ .src = .{ .to_mem, .none, .none } },
137009 },
137010 .extra_temps = .{
137011 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137012 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137013 .{ .type = .vector_8_i16, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
137014 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
137015 .unused,
137016 .unused,
137017 .unused,
137018 .unused,
137019 .unused,
137020 .unused,
137021 .unused,
137022 },
137023 .dst_temps = .{ .{ .rc = .sse }, .unused },
137024 .clobbers = .{ .eflags = true },
137025 .each = .{ .once = &.{
137026 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137027 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
137028 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
137029 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
137030 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
137031 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
137032 .{ .@"0:", .p_w, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
137033 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137034 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137035 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137036 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
137037 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137038 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
137039 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b01), ._ },
137040 .{ ._, .p_w, .maxs, .dst0x, .tmp3x, ._, ._ },
137041 } },
137042 }, .{
137043 .required_features = .{ .avx512f, null, null, null },
137044 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
137045 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .word } }, .any, .any },
137046 .patterns = &.{
137047 .{ .src = .{ .to_mem, .none, .none } },
137048 },
137049 .extra_temps = .{
137050 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137051 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137052 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
137053 .unused,
137054 .unused,
137055 .unused,
137056 .unused,
137057 .unused,
137058 .unused,
137059 .unused,
137060 .unused,
137061 },
137062 .dst_temps = .{ .{ .rc = .sse }, .unused },
137063 .clobbers = .{ .eflags = true },
137064 .each = .{ .once = &.{
137065 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137066 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
137067 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
137068 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
137069 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
137070 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
137071 .{ .@"0:", .vp_w, .maxu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
137072 .{ ._, .vp_w, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
137073 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
137074 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137075 .{ ._, .vp_w, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
137076 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
137077 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
137078 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
137079 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137080 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
137081 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137082 } },
137083 }, .{
137084 .required_features = .{ .avx2, null, null, null },
137085 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
137086 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
137087 .patterns = &.{
137088 .{ .src = .{ .to_mem, .none, .none } },
137089 },
137090 .extra_temps = .{
137091 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137092 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137093 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
137094 .unused,
137095 .unused,
137096 .unused,
137097 .unused,
137098 .unused,
137099 .unused,
137100 .unused,
137101 .unused,
137102 },
137103 .dst_temps = .{ .{ .rc = .sse }, .unused },
137104 .clobbers = .{ .eflags = true },
137105 .each = .{ .once = &.{
137106 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137107 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
137108 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
137109 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
137110 .{ .@"0:", .vp_w, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
137111 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
137112 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137113 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
137114 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
137115 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
137116 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137117 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
137118 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137119 } },
137120 }, .{
137121 .required_features = .{ .avx, null, null, null },
137122 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
137123 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any },
137124 .patterns = &.{
137125 .{ .src = .{ .to_mem, .none, .none } },
137126 },
137127 .extra_temps = .{
137128 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137129 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137130 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
137131 .unused,
137132 .unused,
137133 .unused,
137134 .unused,
137135 .unused,
137136 .unused,
137137 .unused,
137138 .unused,
137139 },
137140 .dst_temps = .{ .{ .rc = .sse }, .unused },
137141 .clobbers = .{ .eflags = true },
137142 .each = .{ .once = &.{
137143 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137144 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
137145 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
137146 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
137147 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
137148 .{ ._, .vp_w, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
137149 .{ .@"0:", .vp_w, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
137150 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137151 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137152 .{ ._, .vp_w, .cmpeq, .tmp2x, .tmp2x, .tmp2x, ._ },
137153 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137154 .{ ._, .vph_w, .minposu, .dst0x, .dst0x, ._, ._ },
137155 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
137156 } },
137157 }, .{
137158 .required_features = .{ .sse4_1, null, null, null },
137159 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
137160 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
137161 .patterns = &.{
137162 .{ .src = .{ .to_mem, .none, .none } },
137163 },
137164 .extra_temps = .{
137165 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137166 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137167 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
137168 .unused,
137169 .unused,
137170 .unused,
137171 .unused,
137172 .unused,
137173 .unused,
137174 .unused,
137175 .unused,
137176 },
137177 .dst_temps = .{ .{ .rc = .sse }, .unused },
137178 .clobbers = .{ .eflags = true },
137179 .each = .{ .once = &.{
137180 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137181 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
137182 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
137183 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
137184 .{ ._, .p_w, .cmpeq, .tmp2x, .tmp2x, ._, ._ },
137185 .{ .@"0:", .p_w, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
137186 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137187 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137188 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137189 .{ ._, .ph_w, .minposu, .dst0x, .dst0x, ._, ._ },
137190 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137191 } },
137192 }, .{
137193 .required_features = .{ .sse2, null, null, null },
137194 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
137195 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any },
137196 .patterns = &.{
137197 .{ .src = .{ .to_mem, .none, .none } },
137198 },
137199 .extra_temps = .{
137200 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137201 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
137202 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
137203 .unused,
137204 .unused,
137205 .unused,
137206 .unused,
137207 .unused,
137208 .unused,
137209 .unused,
137210 .unused,
137211 },
137212 .dst_temps = .{ .{ .rc = .sse }, .unused },
137213 .clobbers = .{ .eflags = true },
137214 .each = .{ .once = &.{
137215 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137216 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
137217 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
137218 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
137219 .{ .@"0:", ._dqa, .mov, .tmp2x, .memi(.src0x, .tmp0), ._, ._ },
137220 .{ ._, .p_w, .subus, .tmp2x, .dst0x, ._, ._ },
137221 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
137222 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
137223 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137224 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
137225 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
137226 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
137227 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
137228 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
137229 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
137230 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
137231 .{ ._, .p_w, .subus, .dst0x, .tmp2x, ._, ._ },
137232 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
137233 } },
137234 }, .{
137235 .required_features = .{ .cmov, null, null, null },
137236 .dst_constraints = .{ .{ .signed_int = .word }, .any },
137237 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
137238 .patterns = &.{
137239 .{ .src = .{ .to_mem, .none, .none } },
137240 },
137241 .extra_temps = .{
137242 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137243 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
137244 .unused,
137245 .unused,
137246 .unused,
137247 .unused,
137248 .unused,
137249 .unused,
137250 .unused,
137251 .unused,
137252 .unused,
137253 },
137254 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
137255 .clobbers = .{ .eflags = true },
137256 .each = .{ .once = &.{
137257 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
137258 .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
137259 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
137260 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
137261 .{ ._, ._l, .cmov, .dst0d, .tmp1d, ._, ._ },
137262 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
137263 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137264 } },
137265 }, .{
137266 .dst_constraints = .{ .{ .signed_int = .word }, .any },
137267 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any },
137268 .patterns = &.{
137269 .{ .src = .{ .to_mem, .none, .none } },
137270 },
137271 .extra_temps = .{
137272 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137273 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
137274 .unused,
137275 .unused,
137276 .unused,
137277 .unused,
137278 .unused,
137279 .unused,
137280 .unused,
137281 .unused,
137282 .unused,
137283 },
137284 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
137285 .clobbers = .{ .eflags = true },
137286 .each = .{ .once = &.{
137287 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
137288 .{ ._, ._, .movsx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
137289 .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
137290 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
137291 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
137292 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
137293 .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
137294 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137295 } },
137296 }, .{
137297 .required_features = .{ .cmov, null, null, null },
137298 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
137299 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
137300 .patterns = &.{
137301 .{ .src = .{ .to_mem, .none, .none } },
137302 },
137303 .extra_temps = .{
137304 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137305 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
137306 .unused,
137307 .unused,
137308 .unused,
137309 .unused,
137310 .unused,
137311 .unused,
137312 .unused,
137313 .unused,
137314 .unused,
137315 },
137316 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
137317 .clobbers = .{ .eflags = true },
137318 .each = .{ .once = &.{
137319 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
137320 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
137321 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
137322 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
137323 .{ ._, ._b, .cmov, .dst0d, .tmp1d, ._, ._ },
137324 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
137325 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137326 } },
137327 }, .{
137328 .dst_constraints = .{ .{ .unsigned_int = .word }, .any },
137329 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any },
137330 .patterns = &.{
137331 .{ .src = .{ .to_mem, .none, .none } },
137332 },
137333 .extra_temps = .{
137334 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
137335 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
137336 .unused,
137337 .unused,
137338 .unused,
137339 .unused,
137340 .unused,
137341 .unused,
137342 .unused,
137343 .unused,
137344 .unused,
137345 },
137346 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
137347 .clobbers = .{ .eflags = true },
137348 .each = .{ .once = &.{
137349 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
137350 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
137351 .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ },
137352 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
137353 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
137354 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
137355 .{ .@"1:", ._, .sub, .tmp0d, .si(2), ._, ._ },
137356 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
137357 } },
137358 }, .{
137359 .required_features = .{ .avx, null, null, null },
137360 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137361 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
137362 .patterns = &.{
137363 .{ .src = .{ .to_sse, .none, .none } },
137364 },
137365 .extra_temps = .{
137366 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137367 .unused,
137368 .unused,
137369 .unused,
137370 .unused,
137371 .unused,
137372 .unused,
137373 .unused,
137374 .unused,
137375 .unused,
137376 .unused,
137377 },
137378 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137379 .each = .{ .once = &.{
137380 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137381 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .tmp0x, ._ },
137382 } },
137383 }, .{
137384 .required_features = .{ .sse4_1, null, null, null },
137385 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137386 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
137387 .patterns = &.{
137388 .{ .src = .{ .to_mut_sse, .none, .none } },
137389 },
137390 .extra_temps = .{
137391 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137392 .unused,
137393 .unused,
137394 .unused,
137395 .unused,
137396 .unused,
137397 .unused,
137398 .unused,
137399 .unused,
137400 .unused,
137401 .unused,
137402 },
137403 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137404 .each = .{ .once = &.{
137405 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137406 .{ ._, .p_d, .maxs, .dst0x, .tmp0x, ._, ._ },
137407 } },
137408 }, .{
137409 .required_features = .{ .sse2, null, null, null },
137410 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137411 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any },
137412 .patterns = &.{
137413 .{ .src = .{ .to_mut_sse, .none, .none } },
137414 },
137415 .extra_temps = .{
137416 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137417 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137418 .unused,
137419 .unused,
137420 .unused,
137421 .unused,
137422 .unused,
137423 .unused,
137424 .unused,
137425 .unused,
137426 .unused,
137427 },
137428 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137429 .each = .{ .once = &.{
137430 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137431 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
137432 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
137433 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
137434 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
137435 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
137436 } },
137437 }, .{
137438 .required_features = .{ .avx, null, null, null },
137439 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137440 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
137441 .patterns = &.{
137442 .{ .src = .{ .to_sse, .none, .none } },
137443 },
137444 .extra_temps = .{
137445 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
137446 .unused,
137447 .unused,
137448 .unused,
137449 .unused,
137450 .unused,
137451 .unused,
137452 .unused,
137453 .unused,
137454 .unused,
137455 .unused,
137456 },
137457 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137458 .each = .{ .once = &.{
137459 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137460 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .tmp0x, ._ },
137461 } },
137462 }, .{
137463 .required_features = .{ .sse4_1, null, null, null },
137464 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137465 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
137466 .patterns = &.{
137467 .{ .src = .{ .to_mut_sse, .none, .none } },
137468 },
137469 .extra_temps = .{
137470 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
137471 .unused,
137472 .unused,
137473 .unused,
137474 .unused,
137475 .unused,
137476 .unused,
137477 .unused,
137478 .unused,
137479 .unused,
137480 .unused,
137481 },
137482 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137483 .each = .{ .once = &.{
137484 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137485 .{ ._, .p_d, .maxu, .dst0x, .tmp0x, ._, ._ },
137486 } },
137487 }, .{
137488 .required_features = .{ .sse3, null, null, null },
137489 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137490 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
137491 .patterns = &.{
137492 .{ .src = .{ .to_mut_sse, .none, .none } },
137493 },
137494 .extra_temps = .{
137495 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137496 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137497 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137498 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137499 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137500 .unused,
137501 .unused,
137502 .unused,
137503 .unused,
137504 .unused,
137505 .unused,
137506 },
137507 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137508 .each = .{ .once = &.{
137509 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137510 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
137511 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137512 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137513 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
137514 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
137515 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
137516 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
137517 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
137518 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137519 } },
137520 }, .{
137521 .required_features = .{ .sse2, null, null, null },
137522 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137523 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .qword, .is = .dword } }, .any, .any },
137524 .patterns = &.{
137525 .{ .src = .{ .to_mut_sse, .none, .none } },
137526 },
137527 .extra_temps = .{
137528 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137529 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137530 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137531 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137532 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137533 .unused,
137534 .unused,
137535 .unused,
137536 .unused,
137537 .unused,
137538 .unused,
137539 },
137540 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137541 .each = .{ .once = &.{
137542 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137543 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
137544 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137545 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137546 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
137547 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
137548 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
137549 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
137550 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
137551 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137552 } },
137553 }, .{
137554 .required_features = .{ .avx, null, null, null },
137555 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137556 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137557 .patterns = &.{
137558 .{ .src = .{ .to_sse, .none, .none } },
137559 },
137560 .extra_temps = .{
137561 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137562 .unused,
137563 .unused,
137564 .unused,
137565 .unused,
137566 .unused,
137567 .unused,
137568 .unused,
137569 .unused,
137570 .unused,
137571 .unused,
137572 },
137573 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137574 .each = .{ .once = &.{
137575 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137576 .{ ._, .vp_d, .maxs, .tmp0x, .src0x, .tmp0x, ._ },
137577 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
137578 .{ ._, .vp_d, .maxs, .dst0x, .tmp0x, .dst0x, ._ },
137579 } },
137580 }, .{
137581 .required_features = .{ .sse4_1, null, null, null },
137582 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137583 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137584 .patterns = &.{
137585 .{ .src = .{ .to_sse, .none, .none } },
137586 },
137587 .extra_temps = .{
137588 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137589 .unused,
137590 .unused,
137591 .unused,
137592 .unused,
137593 .unused,
137594 .unused,
137595 .unused,
137596 .unused,
137597 .unused,
137598 .unused,
137599 },
137600 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137601 .each = .{ .once = &.{
137602 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137603 .{ ._, .p_d, .maxs, .tmp0x, .src0x, ._, ._ },
137604 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
137605 .{ ._, .p_d, .maxs, .dst0x, .tmp0x, ._, ._ },
137606 } },
137607 }, .{
137608 .required_features = .{ .sse2, null, null, null },
137609 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137610 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137611 .patterns = &.{
137612 .{ .src = .{ .to_mut_sse, .none, .none } },
137613 },
137614 .extra_temps = .{
137615 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137616 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137617 .unused,
137618 .unused,
137619 .unused,
137620 .unused,
137621 .unused,
137622 .unused,
137623 .unused,
137624 .unused,
137625 .unused,
137626 },
137627 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137628 .each = .{ .once = &.{
137629 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137630 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
137631 .{ ._, .p_d, .cmpgt, .tmp1x, .src0x, ._, ._ },
137632 .{ ._, .p_, .@"and", .tmp0x, .tmp1x, ._, ._ },
137633 .{ ._, .p_, .andn, .tmp1x, .src0x, ._, ._ },
137634 .{ ._, .p_, .@"or", .tmp0x, .tmp1x, ._, ._ },
137635 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
137636 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
137637 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
137638 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
137639 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
137640 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
137641 } },
137642 }, .{
137643 .required_features = .{ .avx, null, null, null },
137644 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137645 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137646 .patterns = &.{
137647 .{ .src = .{ .to_sse, .none, .none } },
137648 },
137649 .extra_temps = .{
137650 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
137651 .unused,
137652 .unused,
137653 .unused,
137654 .unused,
137655 .unused,
137656 .unused,
137657 .unused,
137658 .unused,
137659 .unused,
137660 .unused,
137661 },
137662 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137663 .each = .{ .once = &.{
137664 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137665 .{ ._, .vp_d, .maxu, .tmp0x, .src0x, .tmp0x, ._ },
137666 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
137667 .{ ._, .vp_d, .maxu, .dst0x, .tmp0x, .dst0x, ._ },
137668 } },
137669 }, .{
137670 .required_features = .{ .sse4_1, null, null, null },
137671 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137672 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137673 .patterns = &.{
137674 .{ .src = .{ .to_mut_sse, .none, .none } },
137675 },
137676 .extra_temps = .{
137677 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
137678 .unused,
137679 .unused,
137680 .unused,
137681 .unused,
137682 .unused,
137683 .unused,
137684 .unused,
137685 .unused,
137686 .unused,
137687 .unused,
137688 },
137689 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137690 .each = .{ .once = &.{
137691 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
137692 .{ ._, .p_d, .maxu, .tmp0x, .src0x, ._, ._ },
137693 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
137694 .{ ._, .p_d, .maxu, .dst0x, .tmp0x, ._, ._ },
137695 } },
137696 }, .{
137697 .required_features = .{ .sse3, null, null, null },
137698 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137699 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137700 .patterns = &.{
137701 .{ .src = .{ .to_mut_sse, .none, .none } },
137702 },
137703 .extra_temps = .{
137704 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137705 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137706 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137707 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137708 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137709 .unused,
137710 .unused,
137711 .unused,
137712 .unused,
137713 .unused,
137714 .unused,
137715 },
137716 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137717 .each = .{ .once = &.{
137718 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137719 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
137720 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137721 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137722 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
137723 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
137724 .{ ._, .p_, .@"and", .tmp3x, .tmp4x, ._, ._ },
137725 .{ ._, .p_, .andn, .tmp4x, .dst0x, ._, ._ },
137726 .{ ._, .p_, .@"or", .tmp3x, .tmp4x, ._, ._ },
137727 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
137728 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
137729 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
137730 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
137731 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
137732 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
137733 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137734 } },
137735 }, .{
137736 .required_features = .{ .sse2, null, null, null },
137737 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137738 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137739 .patterns = &.{
137740 .{ .src = .{ .to_mut_sse, .none, .none } },
137741 },
137742 .extra_temps = .{
137743 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137744 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137745 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137746 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137747 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137748 .unused,
137749 .unused,
137750 .unused,
137751 .unused,
137752 .unused,
137753 .unused,
137754 },
137755 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137756 .each = .{ .once = &.{
137757 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137758 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
137759 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137760 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137761 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
137762 .{ ._, .p_d, .cmpgt, .tmp4x, .dst0x, ._, ._ },
137763 .{ ._, .p_, .@"and", .tmp3x, .tmp4x, ._, ._ },
137764 .{ ._, .p_, .andn, .tmp4x, .dst0x, ._, ._ },
137765 .{ ._, .p_, .@"or", .tmp3x, .tmp4x, ._, ._ },
137766 .{ ._, .p_w, .shufl, .dst0x, .dst0x, .ui(0b11_10), ._ },
137767 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
137768 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
137769 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
137770 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
137771 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
137772 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137773 } },
137774 }, .{
137775 .required_features = .{ .avx, null, null, null },
137776 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137777 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137778 .patterns = &.{
137779 .{ .src = .{ .to_sse, .none, .none } },
137780 },
137781 .extra_temps = .{
137782 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
137783 .unused,
137784 .unused,
137785 .unused,
137786 .unused,
137787 .unused,
137788 .unused,
137789 .unused,
137790 .unused,
137791 .unused,
137792 .unused,
137793 },
137794 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137795 .each = .{ .once = &.{
137796 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137797 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .tmp0x, ._ },
137798 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
137799 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
137800 } },
137801 }, .{
137802 .required_features = .{ .sse4_1, null, null, null },
137803 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137804 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137805 .patterns = &.{
137806 .{ .src = .{ .to_mut_sse, .none, .none } },
137807 },
137808 .extra_temps = .{
137809 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137810 .unused,
137811 .unused,
137812 .unused,
137813 .unused,
137814 .unused,
137815 .unused,
137816 .unused,
137817 .unused,
137818 .unused,
137819 .unused,
137820 },
137821 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137822 .each = .{ .once = &.{
137823 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137824 .{ ._, .p_d, .maxs, .dst0x, .tmp0x, ._, ._ },
137825 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
137826 .{ ._, .p_d, .maxs, .dst0x, .tmp0x, ._, ._ },
137827 } },
137828 }, .{
137829 .required_features = .{ .sse2, null, null, null },
137830 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137831 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137832 .patterns = &.{
137833 .{ .src = .{ .to_mut_sse, .none, .none } },
137834 },
137835 .extra_temps = .{
137836 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137837 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137838 .unused,
137839 .unused,
137840 .unused,
137841 .unused,
137842 .unused,
137843 .unused,
137844 .unused,
137845 .unused,
137846 .unused,
137847 },
137848 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137849 .each = .{ .once = &.{
137850 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137851 .{ ._, ._dqa, .mov, .tmp1x, .src0x, ._, ._ },
137852 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
137853 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
137854 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
137855 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
137856 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
137857 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
137858 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp0x, ._, ._ },
137859 .{ ._, .p_, .@"and", .dst0x, .tmp1x, ._, ._ },
137860 .{ ._, .p_, .andn, .tmp1x, .tmp0x, ._, ._ },
137861 .{ ._, .p_, .@"or", .dst0x, .tmp1x, ._, ._ },
137862 } },
137863 }, .{
137864 .required_features = .{ .avx, null, null, null },
137865 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137866 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137867 .patterns = &.{
137868 .{ .src = .{ .to_sse, .none, .none } },
137869 },
137870 .extra_temps = .{
137871 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
137872 .unused,
137873 .unused,
137874 .unused,
137875 .unused,
137876 .unused,
137877 .unused,
137878 .unused,
137879 .unused,
137880 .unused,
137881 .unused,
137882 },
137883 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
137884 .each = .{ .once = &.{
137885 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137886 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .tmp0x, ._ },
137887 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
137888 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
137889 } },
137890 }, .{
137891 .required_features = .{ .sse4_1, null, null, null },
137892 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137893 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137894 .patterns = &.{
137895 .{ .src = .{ .to_mut_sse, .none, .none } },
137896 },
137897 .extra_temps = .{
137898 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
137899 .unused,
137900 .unused,
137901 .unused,
137902 .unused,
137903 .unused,
137904 .unused,
137905 .unused,
137906 .unused,
137907 .unused,
137908 .unused,
137909 },
137910 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137911 .each = .{ .once = &.{
137912 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
137913 .{ ._, .p_d, .maxu, .dst0x, .tmp0x, ._, ._ },
137914 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
137915 .{ ._, .p_d, .maxu, .dst0x, .tmp0x, ._, ._ },
137916 } },
137917 }, .{
137918 .required_features = .{ .sse3, null, null, null },
137919 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137920 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137921 .patterns = &.{
137922 .{ .src = .{ .to_mut_sse, .none, .none } },
137923 },
137924 .extra_temps = .{
137925 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137926 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137927 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137928 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137929 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137930 .unused,
137931 .unused,
137932 .unused,
137933 .unused,
137934 .unused,
137935 .unused,
137936 },
137937 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137938 .each = .{ .once = &.{
137939 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137940 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
137941 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137942 .{ ._, .p_d, .shuf, .tmp3x, .src0x, .ui(0b11_10), ._ },
137943 .{ ._, ._dqa, .mov, .tmp4x, .src0x, ._, ._ },
137944 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
137945 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
137946 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
137947 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
137948 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137949 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
137950 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
137951 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
137952 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
137953 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
137954 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137955 } },
137956 }, .{
137957 .required_features = .{ .sse2, null, null, null },
137958 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
137959 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
137960 .patterns = &.{
137961 .{ .src = .{ .to_mut_sse, .none, .none } },
137962 },
137963 .extra_temps = .{
137964 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
137965 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
137966 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137967 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137968 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
137969 .unused,
137970 .unused,
137971 .unused,
137972 .unused,
137973 .unused,
137974 .unused,
137975 },
137976 .dst_temps = .{ .{ .ref = .src0 }, .unused },
137977 .each = .{ .once = &.{
137978 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
137979 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
137980 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137981 .{ ._, .p_d, .shuf, .tmp3x, .src0x, .ui(0b11_10), ._ },
137982 .{ ._, ._dqa, .mov, .tmp4x, .src0x, ._, ._ },
137983 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
137984 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
137985 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
137986 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
137987 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
137988 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
137989 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
137990 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
137991 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
137992 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
137993 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
137994 } },
137995 }, .{
137996 .required_features = .{ .avx2, null, null, null },
137997 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
137998 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
137999 .patterns = &.{
138000 .{ .src = .{ .to_sse, .none, .none } },
138001 },
138002 .extra_temps = .{
138003 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138004 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138005 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
138006 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138007 .unused,
138008 .unused,
138009 .unused,
138010 .unused,
138011 .unused,
138012 .unused,
138013 .unused,
138014 },
138015 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138016 .each = .{ .once = &.{
138017 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138018 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
138019 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
138020 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
138021 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
138022 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138023 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138024 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138025 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138026 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138027 } },
138028 }, .{
138029 .required_features = .{ .avx, null, null, null },
138030 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138031 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138032 .patterns = &.{
138033 .{ .src = .{ .to_sse, .none, .none } },
138034 },
138035 .extra_temps = .{
138036 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138037 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138038 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
138039 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138040 .unused,
138041 .unused,
138042 .unused,
138043 .unused,
138044 .unused,
138045 .unused,
138046 .unused,
138047 },
138048 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138049 .each = .{ .once = &.{
138050 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138051 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
138052 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
138053 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
138054 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
138055 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138056 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138057 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138058 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138059 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138060 } },
138061 }, .{
138062 .required_features = .{ .avx2, null, null, null },
138063 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138064 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138065 .patterns = &.{
138066 .{ .src = .{ .to_sse, .none, .none } },
138067 },
138068 .extra_temps = .{
138069 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138070 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138071 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138072 .unused,
138073 .unused,
138074 .unused,
138075 .unused,
138076 .unused,
138077 .unused,
138078 .unused,
138079 .unused,
138080 },
138081 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138082 .each = .{ .once = &.{
138083 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138084 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
138085 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
138086 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138087 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138088 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138089 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138090 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138091 } },
138092 }, .{
138093 .required_features = .{ .avx, null, null, null },
138094 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138095 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138096 .patterns = &.{
138097 .{ .src = .{ .to_sse, .none, .none } },
138098 },
138099 .extra_temps = .{
138100 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138101 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138102 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138103 .unused,
138104 .unused,
138105 .unused,
138106 .unused,
138107 .unused,
138108 .unused,
138109 .unused,
138110 .unused,
138111 },
138112 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138113 .each = .{ .once = &.{
138114 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138115 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
138116 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
138117 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138118 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138119 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138120 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138121 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138122 } },
138123 }, .{
138124 .required_features = .{ .avx2, null, null, null },
138125 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138126 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138127 .patterns = &.{
138128 .{ .src = .{ .to_sse, .none, .none } },
138129 },
138130 .extra_temps = .{
138131 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138132 .unused,
138133 .unused,
138134 .unused,
138135 .unused,
138136 .unused,
138137 .unused,
138138 .unused,
138139 .unused,
138140 .unused,
138141 .unused,
138142 },
138143 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138144 .each = .{ .once = &.{
138145 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
138146 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .tmp0x, ._ },
138147 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138148 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
138149 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138150 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
138151 } },
138152 }, .{
138153 .required_features = .{ .avx, null, null, null },
138154 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138155 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138156 .patterns = &.{
138157 .{ .src = .{ .to_sse, .none, .none } },
138158 },
138159 .extra_temps = .{
138160 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138161 .unused,
138162 .unused,
138163 .unused,
138164 .unused,
138165 .unused,
138166 .unused,
138167 .unused,
138168 .unused,
138169 .unused,
138170 .unused,
138171 },
138172 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138173 .each = .{ .once = &.{
138174 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
138175 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .tmp0x, ._ },
138176 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138177 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
138178 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138179 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
138180 } },
138181 }, .{
138182 .required_features = .{ .avx2, null, null, null },
138183 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138184 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138185 .patterns = &.{
138186 .{ .src = .{ .to_sse, .none, .none } },
138187 },
138188 .extra_temps = .{
138189 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138190 .unused,
138191 .unused,
138192 .unused,
138193 .unused,
138194 .unused,
138195 .unused,
138196 .unused,
138197 .unused,
138198 .unused,
138199 .unused,
138200 },
138201 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138202 .each = .{ .once = &.{
138203 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
138204 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .tmp0x, ._ },
138205 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138206 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
138207 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138208 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
138209 } },
138210 }, .{
138211 .required_features = .{ .avx, null, null, null },
138212 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138213 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138214 .patterns = &.{
138215 .{ .src = .{ .to_sse, .none, .none } },
138216 },
138217 .extra_temps = .{
138218 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138219 .unused,
138220 .unused,
138221 .unused,
138222 .unused,
138223 .unused,
138224 .unused,
138225 .unused,
138226 .unused,
138227 .unused,
138228 .unused,
138229 },
138230 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
138231 .each = .{ .once = &.{
138232 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
138233 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .tmp0x, ._ },
138234 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138235 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
138236 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138237 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
138238 } },
138239 }, .{
138240 .required_features = .{ .avx512f, null, null, null },
138241 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138242 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
138243 .patterns = &.{
138244 .{ .src = .{ .to_mem, .none, .none } },
138245 },
138246 .extra_temps = .{
138247 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138248 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138249 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
138250 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
138251 .unused,
138252 .unused,
138253 .unused,
138254 .unused,
138255 .unused,
138256 .unused,
138257 .unused,
138258 },
138259 .dst_temps = .{ .{ .rc = .sse }, .unused },
138260 .each = .{ .once = &.{
138261 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138262 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
138263 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
138264 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
138265 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
138266 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
138267 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
138268 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
138269 .{ ._, .vp_d, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
138270 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
138271 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138272 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138273 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138274 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138275 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138276 } },
138277 }, .{
138278 .required_features = .{ .avx512f, null, null, null },
138279 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138280 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
138281 .patterns = &.{
138282 .{ .src = .{ .to_mem, .none, .none } },
138283 },
138284 .extra_temps = .{
138285 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
138286 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138287 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
138288 .unused,
138289 .unused,
138290 .unused,
138291 .unused,
138292 .unused,
138293 .unused,
138294 .unused,
138295 .unused,
138296 },
138297 .dst_temps = .{ .{ .rc = .sse }, .unused },
138298 .each = .{ .once = &.{
138299 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138300 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
138301 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
138302 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
138303 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
138304 .{ ._, .vp_d, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
138305 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
138306 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138307 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138308 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138309 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138310 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138311 } },
138312 }, .{
138313 .required_features = .{ .avx512f, null, null, null },
138314 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138315 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
138316 .patterns = &.{
138317 .{ .src = .{ .to_mem, .none, .none } },
138318 },
138319 .extra_temps = .{
138320 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138321 .unused,
138322 .unused,
138323 .unused,
138324 .unused,
138325 .unused,
138326 .unused,
138327 .unused,
138328 .unused,
138329 .unused,
138330 .unused,
138331 },
138332 .dst_temps = .{ .{ .rc = .sse }, .unused },
138333 .each = .{ .once = &.{
138334 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
138335 .{ ._, .vp_d, .maxs, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
138336 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
138337 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
138338 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138339 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
138340 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138341 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp0x, ._ },
138342 } },
138343 }, .{
138344 .required_features = .{ .avx512f, null, null, null },
138345 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138346 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
138347 .patterns = &.{
138348 .{ .src = .{ .to_mem, .none, .none } },
138349 },
138350 .extra_temps = .{
138351 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138352 .unused,
138353 .unused,
138354 .unused,
138355 .unused,
138356 .unused,
138357 .unused,
138358 .unused,
138359 .unused,
138360 .unused,
138361 .unused,
138362 },
138363 .dst_temps = .{ .{ .rc = .sse }, .unused },
138364 .each = .{ .once = &.{
138365 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
138366 .{ ._, .vp_d, .maxu, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
138367 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
138368 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
138369 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138370 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
138371 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
138372 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp0x, ._ },
138373 } },
138374 }, .{
138375 .required_features = .{ .avx2, null, null, null },
138376 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138377 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138378 .patterns = &.{
138379 .{ .src = .{ .to_mem, .none, .none } },
138380 },
138381 .extra_temps = .{
138382 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138383 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138384 .unused,
138385 .unused,
138386 .unused,
138387 .unused,
138388 .unused,
138389 .unused,
138390 .unused,
138391 .unused,
138392 .unused,
138393 },
138394 .dst_temps = .{ .{ .rc = .sse }, .unused },
138395 .clobbers = .{ .eflags = true },
138396 .each = .{ .once = &.{
138397 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
138398 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
138399 .{ .@"0:", .vp_d, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
138400 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
138401 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138402 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
138403 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
138404 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138405 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
138406 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138407 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
138408 } },
138409 }, .{
138410 .required_features = .{ .avx, null, null, null },
138411 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138412 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138413 .patterns = &.{
138414 .{ .src = .{ .to_mem, .none, .none } },
138415 },
138416 .extra_temps = .{
138417 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138418 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138419 .unused,
138420 .unused,
138421 .unused,
138422 .unused,
138423 .unused,
138424 .unused,
138425 .unused,
138426 .unused,
138427 .unused,
138428 },
138429 .dst_temps = .{ .{ .rc = .sse }, .unused },
138430 .clobbers = .{ .eflags = true },
138431 .each = .{ .once = &.{
138432 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
138433 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
138434 .{ .@"0:", .vp_d, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
138435 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138436 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138437 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138438 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
138439 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138440 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp1x, ._ },
138441 } },
138442 }, .{
138443 .required_features = .{ .sse4_1, null, null, null },
138444 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138445 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138446 .patterns = &.{
138447 .{ .src = .{ .to_mem, .none, .none } },
138448 },
138449 .extra_temps = .{
138450 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138451 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138452 .unused,
138453 .unused,
138454 .unused,
138455 .unused,
138456 .unused,
138457 .unused,
138458 .unused,
138459 .unused,
138460 .unused,
138461 },
138462 .dst_temps = .{ .{ .rc = .sse }, .unused },
138463 .clobbers = .{ .eflags = true },
138464 .each = .{ .once = &.{
138465 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
138466 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
138467 .{ .@"0:", .p_d, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
138468 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138469 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138470 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138471 .{ ._, .p_d, .maxs, .dst0x, .tmp1x, ._, ._ },
138472 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138473 .{ ._, .p_d, .maxs, .dst0x, .tmp1x, ._, ._ },
138474 } },
138475 }, .{
138476 .required_features = .{ .sse2, null, null, null },
138477 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138478 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138479 .patterns = &.{
138480 .{ .src = .{ .to_mem, .none, .none } },
138481 },
138482 .extra_temps = .{
138483 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138484 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138485 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138486 .unused,
138487 .unused,
138488 .unused,
138489 .unused,
138490 .unused,
138491 .unused,
138492 .unused,
138493 .unused,
138494 },
138495 .dst_temps = .{ .{ .rc = .sse }, .unused },
138496 .clobbers = .{ .eflags = true },
138497 .each = .{ .once = &.{
138498 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
138499 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
138500 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
138501 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
138502 .{ ._, .p_d, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
138503 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
138504 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
138505 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
138506 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138507 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138508 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138509 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
138510 .{ ._, .p_d, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
138511 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
138512 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
138513 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
138514 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138515 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
138516 .{ ._, .p_d, .cmpgt, .tmp2x, .tmp1x, ._, ._ },
138517 .{ ._, .p_, .@"and", .dst0x, .tmp2x, ._, ._ },
138518 .{ ._, .p_, .andn, .tmp2x, .tmp1x, ._, ._ },
138519 .{ ._, .p_, .@"or", .dst0x, .tmp2x, ._, ._ },
138520 } },
138521 }, .{
138522 .required_features = .{ .avx2, null, null, null },
138523 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138524 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138525 .patterns = &.{
138526 .{ .src = .{ .to_mem, .none, .none } },
138527 },
138528 .extra_temps = .{
138529 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138530 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138531 .unused,
138532 .unused,
138533 .unused,
138534 .unused,
138535 .unused,
138536 .unused,
138537 .unused,
138538 .unused,
138539 .unused,
138540 },
138541 .dst_temps = .{ .{ .rc = .sse }, .unused },
138542 .clobbers = .{ .eflags = true },
138543 .each = .{ .once = &.{
138544 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
138545 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
138546 .{ .@"0:", .vp_d, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
138547 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
138548 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138549 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
138550 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
138551 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138552 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
138553 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138554 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
138555 } },
138556 }, .{
138557 .required_features = .{ .avx, null, null, null },
138558 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138559 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138560 .patterns = &.{
138561 .{ .src = .{ .to_mem, .none, .none } },
138562 },
138563 .extra_temps = .{
138564 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138565 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138566 .unused,
138567 .unused,
138568 .unused,
138569 .unused,
138570 .unused,
138571 .unused,
138572 .unused,
138573 .unused,
138574 .unused,
138575 },
138576 .dst_temps = .{ .{ .rc = .sse }, .unused },
138577 .clobbers = .{ .eflags = true },
138578 .each = .{ .once = &.{
138579 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
138580 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
138581 .{ .@"0:", .vp_d, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
138582 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138583 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138584 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138585 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
138586 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138587 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp1x, ._ },
138588 } },
138589 }, .{
138590 .required_features = .{ .sse4_1, null, null, null },
138591 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138592 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138593 .patterns = &.{
138594 .{ .src = .{ .to_mem, .none, .none } },
138595 },
138596 .extra_temps = .{
138597 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138598 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138599 .unused,
138600 .unused,
138601 .unused,
138602 .unused,
138603 .unused,
138604 .unused,
138605 .unused,
138606 .unused,
138607 .unused,
138608 },
138609 .dst_temps = .{ .{ .rc = .sse }, .unused },
138610 .clobbers = .{ .eflags = true },
138611 .each = .{ .once = &.{
138612 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
138613 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
138614 .{ .@"0:", .p_d, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
138615 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138616 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138617 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138618 .{ ._, .p_d, .maxu, .dst0x, .tmp1x, ._, ._ },
138619 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
138620 .{ ._, .p_d, .maxu, .dst0x, .tmp1x, ._, ._ },
138621 } },
138622 }, .{
138623 .required_features = .{ .sse3, null, null, null },
138624 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138625 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138626 .patterns = &.{
138627 .{ .src = .{ .to_mem, .none, .none } },
138628 },
138629 .extra_temps = .{
138630 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138631 .{ .type = .vector_2_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
138632 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138633 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138634 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138635 .unused,
138636 .unused,
138637 .unused,
138638 .unused,
138639 .unused,
138640 .unused,
138641 },
138642 .dst_temps = .{ .{ .rc = .sse }, .unused },
138643 .clobbers = .{ .eflags = true },
138644 .each = .{ .once = &.{
138645 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138646 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
138647 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
138648 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
138649 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
138650 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
138651 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
138652 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138653 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138654 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138655 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138656 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138657 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138658 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138659 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138660 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138661 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138662 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138663 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138664 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138665 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138666 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138667 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138668 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138669 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138670 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138671 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
138672 } },
138673 }, .{
138674 .required_features = .{ .sse2, null, null, null },
138675 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138676 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138677 .patterns = &.{
138678 .{ .src = .{ .to_mem, .none, .none } },
138679 },
138680 .extra_temps = .{
138681 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138682 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
138683 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138684 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138685 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138686 .unused,
138687 .unused,
138688 .unused,
138689 .unused,
138690 .unused,
138691 .unused,
138692 },
138693 .dst_temps = .{ .{ .rc = .sse }, .unused },
138694 .clobbers = .{ .eflags = true },
138695 .each = .{ .once = &.{
138696 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138697 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
138698 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
138699 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
138700 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
138701 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
138702 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
138703 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138704 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138705 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138706 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138707 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138708 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138709 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138710 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138711 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138712 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138713 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138714 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138715 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138716 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138717 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138718 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138719 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138720 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138721 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138722 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
138723 } },
138724 }, .{
138725 .required_features = .{ .avx512f, null, null, null },
138726 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138727 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .dword } }, .any, .any },
138728 .patterns = &.{
138729 .{ .src = .{ .to_mem, .none, .none } },
138730 },
138731 .extra_temps = .{
138732 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138733 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138734 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
138735 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
138736 .unused,
138737 .unused,
138738 .unused,
138739 .unused,
138740 .unused,
138741 .unused,
138742 .unused,
138743 },
138744 .dst_temps = .{ .{ .rc = .sse }, .unused },
138745 .clobbers = .{ .eflags = true },
138746 .each = .{ .once = &.{
138747 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138748 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
138749 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
138750 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
138751 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
138752 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
138753 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
138754 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
138755 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
138756 .{ .@"0:", .vp_d, .maxs, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
138757 .{ ._, .vp_d, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
138758 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
138759 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138760 .{ ._, .vp_d, .maxs, .dst0y, .dst0y, .tmp3y, ._ },
138761 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
138762 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138763 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138764 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138765 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138766 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138767 } },
138768 }, .{
138769 .required_features = .{ .avx2, null, null, null },
138770 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138771 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138772 .patterns = &.{
138773 .{ .src = .{ .to_mem, .none, .none } },
138774 },
138775 .extra_temps = .{
138776 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138777 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138778 .{ .type = .vector_16_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
138779 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
138780 .unused,
138781 .unused,
138782 .unused,
138783 .unused,
138784 .unused,
138785 .unused,
138786 .unused,
138787 },
138788 .dst_temps = .{ .{ .rc = .sse }, .unused },
138789 .clobbers = .{ .eflags = true },
138790 .each = .{ .once = &.{
138791 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138792 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
138793 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
138794 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
138795 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
138796 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
138797 .{ .@"0:", .vp_d, .maxs, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
138798 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
138799 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138800 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
138801 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138802 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138803 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138804 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138805 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138806 } },
138807 }, .{
138808 .required_features = .{ .avx, null, null, null },
138809 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138810 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138811 .patterns = &.{
138812 .{ .src = .{ .to_mem, .none, .none } },
138813 },
138814 .extra_temps = .{
138815 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138816 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138817 .{ .type = .vector_8_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
138818 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138819 .unused,
138820 .unused,
138821 .unused,
138822 .unused,
138823 .unused,
138824 .unused,
138825 .unused,
138826 },
138827 .dst_temps = .{ .{ .rc = .sse }, .unused },
138828 .clobbers = .{ .eflags = true },
138829 .each = .{ .once = &.{
138830 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138831 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
138832 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
138833 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
138834 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
138835 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
138836 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
138837 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138838 .{ .@"0:", .vp_d, .maxs, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
138839 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138840 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138841 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138842 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138843 .{ ._, .vp_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138844 .{ ._, .vp_d, .maxs, .dst0x, .dst0x, .tmp3x, ._ },
138845 } },
138846 }, .{
138847 .required_features = .{ .sse4_1, null, null, null },
138848 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138849 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138850 .patterns = &.{
138851 .{ .src = .{ .to_mem, .none, .none } },
138852 },
138853 .extra_temps = .{
138854 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138855 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138856 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
138857 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138858 .unused,
138859 .unused,
138860 .unused,
138861 .unused,
138862 .unused,
138863 .unused,
138864 .unused,
138865 },
138866 .dst_temps = .{ .{ .rc = .sse }, .unused },
138867 .clobbers = .{ .eflags = true },
138868 .each = .{ .once = &.{
138869 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138870 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
138871 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
138872 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
138873 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
138874 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
138875 .{ .@"0:", .p_d, .maxs, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
138876 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138877 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138878 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138879 .{ ._, .p_d, .maxs, .dst0x, .tmp3x, ._, ._ },
138880 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138881 .{ ._, .p_d, .maxs, .dst0x, .tmp3x, ._, ._ },
138882 } },
138883 }, .{
138884 .required_features = .{ .sse2, null, null, null },
138885 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
138886 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any },
138887 .patterns = &.{
138888 .{ .src = .{ .to_mem, .none, .none } },
138889 },
138890 .extra_temps = .{
138891 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138892 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138893 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
138894 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138895 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
138896 .unused,
138897 .unused,
138898 .unused,
138899 .unused,
138900 .unused,
138901 .unused,
138902 },
138903 .dst_temps = .{ .{ .rc = .sse }, .unused },
138904 .clobbers = .{ .eflags = true },
138905 .each = .{ .once = &.{
138906 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138907 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
138908 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
138909 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
138910 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
138911 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
138912 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
138913 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138914 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138915 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138916 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138917 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138918 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
138919 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138920 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138921 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138922 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138923 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138924 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138925 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138926 .{ ._, .p_w, .shufl, .tmp3x, .dst0x, .ui(0b11_10), ._ },
138927 .{ ._, ._dqa, .mov, .tmp4x, .dst0x, ._, ._ },
138928 .{ ._, .p_d, .cmpgt, .tmp4x, .tmp3x, ._, ._ },
138929 .{ ._, .p_, .@"and", .dst0x, .tmp4x, ._, ._ },
138930 .{ ._, .p_, .andn, .tmp4x, .tmp3x, ._, ._ },
138931 .{ ._, .p_, .@"or", .dst0x, .tmp4x, ._, ._ },
138932 } },
138933 }, .{
138934 .required_features = .{ .avx512f, null, null, null },
138935 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138936 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .dword } }, .any, .any },
138937 .patterns = &.{
138938 .{ .src = .{ .to_mem, .none, .none } },
138939 },
138940 .extra_temps = .{
138941 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138942 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138943 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
138944 .unused,
138945 .unused,
138946 .unused,
138947 .unused,
138948 .unused,
138949 .unused,
138950 .unused,
138951 .unused,
138952 },
138953 .dst_temps = .{ .{ .rc = .sse }, .unused },
138954 .clobbers = .{ .eflags = true },
138955 .each = .{ .once = &.{
138956 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138957 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
138958 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
138959 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
138960 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
138961 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
138962 .{ .@"0:", .vp_d, .maxu, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
138963 .{ ._, .vp_d, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
138964 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
138965 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
138966 .{ ._, .vp_d, .maxu, .dst0y, .dst0y, .tmp2y, ._ },
138967 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
138968 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138969 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138970 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138971 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
138972 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
138973 } },
138974 }, .{
138975 .required_features = .{ .avx2, null, null, null },
138976 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
138977 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
138978 .patterns = &.{
138979 .{ .src = .{ .to_mem, .none, .none } },
138980 },
138981 .extra_temps = .{
138982 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
138983 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
138984 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
138985 .unused,
138986 .unused,
138987 .unused,
138988 .unused,
138989 .unused,
138990 .unused,
138991 .unused,
138992 .unused,
138993 },
138994 .dst_temps = .{ .{ .rc = .sse }, .unused },
138995 .clobbers = .{ .eflags = true },
138996 .each = .{ .once = &.{
138997 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
138998 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
138999 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
139000 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
139001 .{ .@"0:", .vp_d, .maxu, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
139002 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
139003 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139004 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
139005 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
139006 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
139007 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
139008 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
139009 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
139010 } },
139011 }, .{
139012 .required_features = .{ .avx, null, null, null },
139013 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
139014 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any },
139015 .patterns = &.{
139016 .{ .src = .{ .to_mem, .none, .none } },
139017 },
139018 .extra_temps = .{
139019 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139020 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
139021 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
139022 .unused,
139023 .unused,
139024 .unused,
139025 .unused,
139026 .unused,
139027 .unused,
139028 .unused,
139029 .unused,
139030 },
139031 .dst_temps = .{ .{ .rc = .sse }, .unused },
139032 .clobbers = .{ .eflags = true },
139033 .each = .{ .once = &.{
139034 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139035 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
139036 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
139037 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
139038 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
139039 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
139040 .{ .@"0:", .vp_d, .maxu, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
139041 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
139042 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139043 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
139044 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
139045 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
139046 .{ ._, .vp_d, .maxu, .dst0x, .dst0x, .tmp2x, ._ },
139047 } },
139048 }, .{
139049 .required_features = .{ .sse4_1, null, null, null },
139050 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
139051 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
139052 .patterns = &.{
139053 .{ .src = .{ .to_mem, .none, .none } },
139054 },
139055 .extra_temps = .{
139056 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139057 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
139058 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
139059 .unused,
139060 .unused,
139061 .unused,
139062 .unused,
139063 .unused,
139064 .unused,
139065 .unused,
139066 .unused,
139067 },
139068 .dst_temps = .{ .{ .rc = .sse }, .unused },
139069 .clobbers = .{ .eflags = true },
139070 .each = .{ .once = &.{
139071 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139072 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
139073 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
139074 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
139075 .{ .@"0:", .p_d, .maxu, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
139076 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
139077 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139078 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
139079 .{ ._, .p_d, .maxu, .dst0x, .tmp2x, ._, ._ },
139080 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
139081 .{ ._, .p_d, .maxu, .dst0x, .tmp2x, ._, ._ },
139082 } },
139083 }, .{
139084 .required_features = .{ .sse3, null, null, null },
139085 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
139086 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
139087 .patterns = &.{
139088 .{ .src = .{ .to_mem, .none, .none } },
139089 },
139090 .extra_temps = .{
139091 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139092 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139093 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
139094 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
139095 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
139096 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
139097 .unused,
139098 .unused,
139099 .unused,
139100 .unused,
139101 .unused,
139102 },
139103 .dst_temps = .{ .{ .rc = .sse }, .unused },
139104 .clobbers = .{ .eflags = true },
139105 .each = .{ .once = &.{
139106 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139107 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
139108 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
139109 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
139110 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
139111 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
139112 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
139113 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
139114 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
139115 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
139116 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
139117 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
139118 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
139119 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
139120 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
139121 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139122 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
139123 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
139124 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
139125 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
139126 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
139127 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
139128 .{ ._, .p_w, .shufl, .tmp4x, .dst0x, .ui(0b11_10), ._ },
139129 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
139130 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
139131 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
139132 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
139133 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
139134 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
139135 } },
139136 }, .{
139137 .required_features = .{ .sse2, null, null, null },
139138 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
139139 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any },
139140 .patterns = &.{
139141 .{ .src = .{ .to_mem, .none, .none } },
139142 },
139143 .extra_temps = .{
139144 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139145 .{ .type = .vector_4_i32, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139146 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
139147 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
139148 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
139149 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
139150 .unused,
139151 .unused,
139152 .unused,
139153 .unused,
139154 .unused,
139155 },
139156 .dst_temps = .{ .{ .rc = .sse }, .unused },
139157 .clobbers = .{ .eflags = true },
139158 .each = .{ .once = &.{
139159 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139160 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
139161 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
139162 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
139163 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
139164 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
139165 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
139166 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
139167 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
139168 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
139169 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
139170 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
139171 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
139172 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
139173 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
139174 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139175 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
139176 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
139177 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
139178 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
139179 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
139180 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
139181 .{ ._, .p_w, .shufl, .tmp4x, .dst0x, .ui(0b11_10), ._ },
139182 .{ ._, ._dqa, .mov, .tmp5x, .dst0x, ._, ._ },
139183 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp4x, ._, ._ },
139184 .{ ._, .p_, .@"and", .dst0x, .tmp5x, ._, ._ },
139185 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
139186 .{ ._, .p_, .@"or", .dst0x, .tmp5x, ._, ._ },
139187 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
139188 } },
139189 }, .{
139190 .required_features = .{ .cmov, null, null, null },
139191 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
139192 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
139193 .patterns = &.{
139194 .{ .src = .{ .to_mem, .none, .none } },
139195 },
139196 .extra_temps = .{
139197 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139198 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
139199 .unused,
139200 .unused,
139201 .unused,
139202 .unused,
139203 .unused,
139204 .unused,
139205 .unused,
139206 .unused,
139207 .unused,
139208 },
139209 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
139210 .clobbers = .{ .eflags = true },
139211 .each = .{ .once = &.{
139212 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
139213 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
139214 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
139215 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
139216 .{ ._, ._l, .cmov, .dst0d, .tmp1d, ._, ._ },
139217 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
139218 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139219 } },
139220 }, .{
139221 .dst_constraints = .{ .{ .signed_int = .dword }, .any },
139222 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any },
139223 .patterns = &.{
139224 .{ .src = .{ .to_mem, .none, .none } },
139225 },
139226 .extra_temps = .{
139227 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139228 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
139229 .unused,
139230 .unused,
139231 .unused,
139232 .unused,
139233 .unused,
139234 .unused,
139235 .unused,
139236 .unused,
139237 .unused,
139238 },
139239 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
139240 .clobbers = .{ .eflags = true },
139241 .each = .{ .once = &.{
139242 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
139243 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
139244 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
139245 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
139246 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
139247 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
139248 .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
139249 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139250 } },
139251 }, .{
139252 .required_features = .{ .cmov, null, null, null },
139253 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
139254 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
139255 .patterns = &.{
139256 .{ .src = .{ .to_mem, .none, .none } },
139257 },
139258 .extra_temps = .{
139259 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139260 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139261 .unused,
139262 .unused,
139263 .unused,
139264 .unused,
139265 .unused,
139266 .unused,
139267 .unused,
139268 .unused,
139269 .unused,
139270 },
139271 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
139272 .clobbers = .{ .eflags = true },
139273 .each = .{ .once = &.{
139274 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
139275 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
139276 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
139277 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
139278 .{ ._, ._b, .cmov, .dst0d, .tmp1d, ._, ._ },
139279 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
139280 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139281 } },
139282 }, .{
139283 .dst_constraints = .{ .{ .unsigned_int = .dword }, .any },
139284 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any },
139285 .patterns = &.{
139286 .{ .src = .{ .to_mem, .none, .none } },
139287 },
139288 .extra_temps = .{
139289 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139290 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139291 .unused,
139292 .unused,
139293 .unused,
139294 .unused,
139295 .unused,
139296 .unused,
139297 .unused,
139298 .unused,
139299 .unused,
139300 },
139301 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
139302 .clobbers = .{ .eflags = true },
139303 .each = .{ .once = &.{
139304 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
139305 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
139306 .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ },
139307 .{ ._, ._, .cmp, .dst0d, .tmp1d, ._, ._ },
139308 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
139309 .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ },
139310 .{ .@"1:", ._, .sub, .tmp0d, .si(4), ._, ._ },
139311 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139312 } },
139313 }, .{
139314 .required_features = .{ .avx, null, null, null },
139315 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139316 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
139317 .patterns = &.{
139318 .{ .src = .{ .to_sse, .none, .none } },
139319 },
139320 .extra_temps = .{
139321 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139322 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139323 .unused,
139324 .unused,
139325 .unused,
139326 .unused,
139327 .unused,
139328 .unused,
139329 .unused,
139330 .unused,
139331 .unused,
139332 },
139333 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139334 .each = .{ .once = &.{
139335 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
139336 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
139337 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
139338 } },
139339 }, .{
139340 .required_features = .{ .sse4_2, null, null, null },
139341 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139342 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
139343 .patterns = &.{
139344 .{ .src = .{ .to_mut_sse, .none, .none } },
139345 },
139346 .extra_temps = .{
139347 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139348 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
139349 .unused,
139350 .unused,
139351 .unused,
139352 .unused,
139353 .unused,
139354 .unused,
139355 .unused,
139356 .unused,
139357 .unused,
139358 },
139359 .dst_temps = .{ .{ .ref = .src0 }, .unused },
139360 .each = .{ .once = &.{
139361 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
139362 .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ },
139363 .{ ._, .p_q, .cmpgt, .tmp1x, .src0x, ._, ._ },
139364 .{ ._, .p_b, .blendv, .dst0x, .tmp0x, .tmp1x, ._ },
139365 } },
139366 }, .{
139367 .required_features = .{ .avx, null, null, null },
139368 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139369 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
139370 .patterns = &.{
139371 .{ .src = .{ .mem, .none, .none } },
139372 .{ .src = .{ .to_sse, .none, .none } },
139373 },
139374 .extra_temps = .{
139375 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139376 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139377 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139378 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139379 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139380 .unused,
139381 .unused,
139382 .unused,
139383 .unused,
139384 .unused,
139385 .unused,
139386 },
139387 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139388 .each = .{ .once = &.{
139389 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139390 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
139391 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
139392 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139393 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139394 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139395 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
139396 } },
139397 }, .{
139398 .required_features = .{ .sse4_2, null, null, null },
139399 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139400 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
139401 .patterns = &.{
139402 .{ .src = .{ .to_mut_sse, .none, .none } },
139403 },
139404 .extra_temps = .{
139405 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139406 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139407 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139408 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139409 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
139410 .unused,
139411 .unused,
139412 .unused,
139413 .unused,
139414 .unused,
139415 .unused,
139416 },
139417 .dst_temps = .{ .{ .ref = .src0 }, .unused },
139418 .each = .{ .once = &.{
139419 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139420 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
139421 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
139422 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139423 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
139424 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
139425 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
139426 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
139427 } },
139428 }, .{
139429 .required_features = .{ .avx2, null, null, null },
139430 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139431 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139432 .patterns = &.{
139433 .{ .src = .{ .to_sse, .none, .none } },
139434 },
139435 .extra_temps = .{
139436 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139437 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139438 .unused,
139439 .unused,
139440 .unused,
139441 .unused,
139442 .unused,
139443 .unused,
139444 .unused,
139445 .unused,
139446 .unused,
139447 },
139448 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139449 .each = .{ .once = &.{
139450 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
139451 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
139452 .{ ._, .vp_b, .blendv, .tmp0x, .src0x, .tmp0x, .tmp1x },
139453 .{ ._, .v_i128, .extract, .dst0x, .src0y, .ui(1), ._ },
139454 .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
139455 .{ ._, .vp_b, .blendv, .dst0x, .tmp0x, .dst0x, .tmp1x },
139456 } },
139457 }, .{
139458 .required_features = .{ .avx, null, null, null },
139459 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139460 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139461 .patterns = &.{
139462 .{ .src = .{ .to_sse, .none, .none } },
139463 },
139464 .extra_temps = .{
139465 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139466 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139467 .unused,
139468 .unused,
139469 .unused,
139470 .unused,
139471 .unused,
139472 .unused,
139473 .unused,
139474 .unused,
139475 .unused,
139476 },
139477 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139478 .each = .{ .once = &.{
139479 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
139480 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
139481 .{ ._, .vp_b, .blendv, .tmp0x, .src0x, .tmp0x, .tmp1x },
139482 .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ },
139483 .{ ._, .vp_q, .cmpgt, .tmp1x, .dst0x, .tmp0x, ._ },
139484 .{ ._, .vp_b, .blendv, .dst0x, .tmp0x, .dst0x, .tmp1x },
139485 } },
139486 }, .{
139487 .required_features = .{ .avx2, null, null, null },
139488 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139489 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139490 .patterns = &.{
139491 .{ .src = .{ .mem, .none, .none } },
139492 .{ .src = .{ .to_sse, .none, .none } },
139493 },
139494 .extra_temps = .{
139495 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139496 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139497 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139498 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139499 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139500 .unused,
139501 .unused,
139502 .unused,
139503 .unused,
139504 .unused,
139505 .unused,
139506 },
139507 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139508 .each = .{ .once = &.{
139509 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139510 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
139511 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
139512 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139513 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139514 .{ ._, .vp_b, .blendv, .tmp3x, .dst0x, .tmp3x, .tmp4x },
139515 .{ ._, .v_i128, .extract, .dst0x, .dst0y, .ui(1), ._ },
139516 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
139517 .{ ._, .vp_b, .blendv, .dst0x, .tmp3x, .dst0x, .tmp4x },
139518 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
139519 } },
139520 }, .{
139521 .required_features = .{ .avx, null, null, null },
139522 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139523 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139524 .patterns = &.{
139525 .{ .src = .{ .mem, .none, .none } },
139526 .{ .src = .{ .to_sse, .none, .none } },
139527 },
139528 .extra_temps = .{
139529 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139530 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139531 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139532 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139533 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139534 .unused,
139535 .unused,
139536 .unused,
139537 .unused,
139538 .unused,
139539 .unused,
139540 },
139541 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139542 .each = .{ .once = &.{
139543 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139544 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
139545 .{ ._, .v_pd, .xor, .dst0y, .tmp2y, .src0y, ._ },
139546 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139547 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139548 .{ ._, .vp_b, .blendv, .tmp3x, .dst0x, .tmp3x, .tmp4x },
139549 .{ ._, .v_f128, .extract, .dst0x, .dst0y, .ui(1), ._ },
139550 .{ ._, .vp_q, .cmpgt, .tmp4x, .dst0x, .tmp3x, ._ },
139551 .{ ._, .vp_b, .blendv, .dst0x, .tmp3x, .dst0x, .tmp4x },
139552 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
139553 } },
139554 }, .{
139555 .required_features = .{ .avx2, null, null, null },
139556 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139557 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139558 .patterns = &.{
139559 .{ .src = .{ .to_sse, .none, .none } },
139560 },
139561 .extra_temps = .{
139562 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139563 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139564 .unused,
139565 .unused,
139566 .unused,
139567 .unused,
139568 .unused,
139569 .unused,
139570 .unused,
139571 .unused,
139572 .unused,
139573 },
139574 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139575 .each = .{ .once = &.{
139576 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
139577 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
139578 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
139579 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
139580 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
139581 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
139582 } },
139583 }, .{
139584 .required_features = .{ .avx, null, null, null },
139585 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139586 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139587 .patterns = &.{
139588 .{ .src = .{ .to_sse, .none, .none } },
139589 },
139590 .extra_temps = .{
139591 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139592 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139593 .unused,
139594 .unused,
139595 .unused,
139596 .unused,
139597 .unused,
139598 .unused,
139599 .unused,
139600 .unused,
139601 .unused,
139602 },
139603 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139604 .each = .{ .once = &.{
139605 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
139606 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .src0x, ._ },
139607 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .tmp0x, .tmp1x },
139608 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
139609 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
139610 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
139611 } },
139612 }, .{
139613 .required_features = .{ .avx2, null, null, null },
139614 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139615 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139616 .patterns = &.{
139617 .{ .src = .{ .mem, .none, .none } },
139618 .{ .src = .{ .to_sse, .none, .none } },
139619 },
139620 .extra_temps = .{
139621 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139622 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139623 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139624 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139625 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139626 .unused,
139627 .unused,
139628 .unused,
139629 .unused,
139630 .unused,
139631 .unused,
139632 },
139633 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139634 .each = .{ .once = &.{
139635 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139636 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
139637 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
139638 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
139639 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139640 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139641 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139642 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139643 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139644 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
139645 } },
139646 }, .{
139647 .required_features = .{ .avx, null, null, null },
139648 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139649 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139650 .patterns = &.{
139651 .{ .src = .{ .mem, .none, .none } },
139652 .{ .src = .{ .to_sse, .none, .none } },
139653 },
139654 .extra_temps = .{
139655 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139656 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139657 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139658 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139659 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139660 .unused,
139661 .unused,
139662 .unused,
139663 .unused,
139664 .unused,
139665 .unused,
139666 },
139667 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
139668 .each = .{ .once = &.{
139669 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139670 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
139671 .{ ._, .v_pd, .xor, .dst0y, .tmp2y, .src0y, ._ },
139672 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
139673 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139674 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139675 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139676 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139677 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139678 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
139679 } },
139680 }, .{
139681 .required_features = .{ .avx512f, null, null, null },
139682 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139683 .src_constraints = .{ .{ .exclusive_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
139684 .patterns = &.{
139685 .{ .src = .{ .to_mem, .none, .none } },
139686 },
139687 .extra_temps = .{
139688 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139689 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
139690 .{ .type = .vector_8_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
139691 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139692 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139693 .unused,
139694 .unused,
139695 .unused,
139696 .unused,
139697 .unused,
139698 .unused,
139699 },
139700 .dst_temps = .{ .{ .rc = .sse }, .unused },
139701 .each = .{ .once = &.{
139702 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139703 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
139704 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
139705 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
139706 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
139707 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
139708 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
139709 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
139710 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
139711 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
139712 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
139713 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139714 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139715 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139716 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139717 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139718 } },
139719 }, .{
139720 .required_features = .{ .avx512f, null, null, null },
139721 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139722 .src_constraints = .{ .{ .exclusive_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
139723 .patterns = &.{
139724 .{ .src = .{ .to_mem, .none, .none } },
139725 },
139726 .extra_temps = .{
139727 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139728 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139729 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139730 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
139731 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139732 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139733 .unused,
139734 .unused,
139735 .unused,
139736 .unused,
139737 .unused,
139738 },
139739 .dst_temps = .{ .{ .rc = .sse }, .unused },
139740 .each = .{ .once = &.{
139741 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139742 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
139743 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
139744 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
139745 .{ ._, .v_dqa, .mov, .tmp4y, .memd(.src0y, 32), ._, ._ },
139746 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
139747 .{ ._, .vp_, .@"and", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
139748 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
139749 .{ ._, .vp_, .xor, .tmp4y, .tmp4y, .tmp2y, ._ },
139750 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp4y, .dst0y, ._ },
139751 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
139752 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
139753 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
139754 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
139755 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
139756 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
139757 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
139758 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
139759 } },
139760 }, .{
139761 .required_features = .{ .avx512f, null, null, null },
139762 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139763 .src_constraints = .{ .{ .exact_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
139764 .patterns = &.{
139765 .{ .src = .{ .to_mem, .none, .none } },
139766 },
139767 .extra_temps = .{
139768 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139769 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139770 .unused,
139771 .unused,
139772 .unused,
139773 .unused,
139774 .unused,
139775 .unused,
139776 .unused,
139777 .unused,
139778 .unused,
139779 },
139780 .dst_temps = .{ .{ .rc = .sse }, .unused },
139781 .each = .{ .once = &.{
139782 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
139783 .{ ._, .v_dqa, .mov, .tmp0y, .memd(.src0y, 32), ._, ._ },
139784 .{ ._, .vp_q, .cmpgt, .tmp1y, .tmp0y, .dst0y, ._ },
139785 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp0y, .tmp1y },
139786 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
139787 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
139788 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
139789 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
139790 .{ ._, .vp_q, .cmpgt, .tmp1x, .tmp0x, .dst0x, ._ },
139791 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
139792 } },
139793 }, .{
139794 .required_features = .{ .avx512f, null, null, null },
139795 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139796 .src_constraints = .{ .{ .exact_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
139797 .patterns = &.{
139798 .{ .src = .{ .to_mem, .none, .none } },
139799 },
139800 .extra_temps = .{
139801 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
139802 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139803 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139804 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139805 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139806 .unused,
139807 .unused,
139808 .unused,
139809 .unused,
139810 .unused,
139811 .unused,
139812 },
139813 .dst_temps = .{ .{ .rc = .sse }, .unused },
139814 .each = .{ .once = &.{
139815 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139816 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
139817 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .mem(.src0y), ._ },
139818 .{ ._, .vp_, .xor, .tmp3y, .tmp2y, .memd(.src0y, 32), ._ },
139819 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
139820 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
139821 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
139822 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139823 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139824 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139825 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139826 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139827 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
139828 } },
139829 }, .{
139830 .required_features = .{ .avx2, null, null, null },
139831 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139832 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139833 .patterns = &.{
139834 .{ .src = .{ .to_mem, .none, .none } },
139835 },
139836 .extra_temps = .{
139837 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139838 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139839 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139840 .unused,
139841 .unused,
139842 .unused,
139843 .unused,
139844 .unused,
139845 .unused,
139846 .unused,
139847 .unused,
139848 },
139849 .dst_temps = .{ .{ .rc = .sse }, .unused },
139850 .clobbers = .{ .eflags = true },
139851 .each = .{ .once = &.{
139852 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
139853 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
139854 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
139855 .{ ._, .vp_q, .cmpgt, .tmp2y, .tmp1y, .dst0y, ._ },
139856 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp1y, .tmp2y },
139857 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
139858 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139859 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
139860 .{ ._, .vp_q, .cmpgt, .tmp2x, .tmp1x, .dst0x, ._ },
139861 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
139862 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
139863 .{ ._, .vp_q, .cmpgt, .tmp2x, .tmp1x, .dst0x, ._ },
139864 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
139865 } },
139866 }, .{
139867 .required_features = .{ .avx, null, null, null },
139868 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139869 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
139870 .patterns = &.{
139871 .{ .src = .{ .to_mem, .none, .none } },
139872 },
139873 .extra_temps = .{
139874 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139875 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139876 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139877 .unused,
139878 .unused,
139879 .unused,
139880 .unused,
139881 .unused,
139882 .unused,
139883 .unused,
139884 .unused,
139885 },
139886 .dst_temps = .{ .{ .rc = .sse }, .unused },
139887 .clobbers = .{ .eflags = true },
139888 .each = .{ .once = &.{
139889 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
139890 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
139891 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
139892 .{ ._, .vp_q, .cmpgt, .tmp2x, .tmp1x, .dst0x, ._ },
139893 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
139894 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
139895 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139896 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
139897 .{ ._, .vp_q, .cmpgt, .tmp2x, .tmp1x, .dst0x, ._ },
139898 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp1x, .tmp2x },
139899 } },
139900 }, .{
139901 .required_features = .{ .sse4_2, null, null, null },
139902 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
139903 .src_constraints = .{ .{ .unaligned_multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
139904 .patterns = &.{
139905 .{ .src = .{ .to_mem, .none, .none } },
139906 },
139907 .extra_temps = .{
139908 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139909 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139910 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
139911 .unused,
139912 .unused,
139913 .unused,
139914 .unused,
139915 .unused,
139916 .unused,
139917 .unused,
139918 .unused,
139919 },
139920 .dst_temps = .{ .{ .rc = .sse }, .unused },
139921 .clobbers = .{ .eflags = true },
139922 .each = .{ .once = &.{
139923 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
139924 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
139925 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
139926 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
139927 .{ ._, .p_q, .cmpgt, .tmp2x, .dst0x, ._, ._ },
139928 .{ ._, .p_b, .blendv, .dst0x, .tmp1x, .tmp2x, ._ },
139929 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
139930 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139931 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
139932 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
139933 .{ ._, .p_q, .cmpgt, .tmp2x, .dst0x, ._, ._ },
139934 .{ ._, .p_b, .blendv, .dst0x, .tmp1x, .tmp2x, ._ },
139935 } },
139936 }, .{
139937 .required_features = .{ .avx2, null, null, null },
139938 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139939 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
139940 .patterns = &.{
139941 .{ .src = .{ .to_mem, .none, .none } },
139942 },
139943 .extra_temps = .{
139944 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139945 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139946 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139947 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139948 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
139949 .unused,
139950 .unused,
139951 .unused,
139952 .unused,
139953 .unused,
139954 .unused,
139955 },
139956 .dst_temps = .{ .{ .rc = .sse }, .unused },
139957 .clobbers = .{ .eflags = true },
139958 .each = .{ .once = &.{
139959 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
139960 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
139961 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
139962 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .memad(.src0y, .add_unaligned_size, -32), ._ },
139963 .{ .@"0:", .vp_, .xor, .tmp3y, .tmp2y, .memi(.src0y, .tmp0), ._ },
139964 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
139965 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
139966 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
139967 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
139968 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
139969 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139970 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139971 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
139972 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
139973 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
139974 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
139975 } },
139976 }, .{
139977 .required_features = .{ .avx, null, null, null },
139978 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
139979 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
139980 .patterns = &.{
139981 .{ .src = .{ .to_mem, .none, .none } },
139982 },
139983 .extra_temps = .{
139984 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
139985 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
139986 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139987 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139988 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
139989 .unused,
139990 .unused,
139991 .unused,
139992 .unused,
139993 .unused,
139994 .unused,
139995 },
139996 .dst_temps = .{ .{ .rc = .sse }, .unused },
139997 .clobbers = .{ .eflags = true },
139998 .each = .{ .once = &.{
139999 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140000 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
140001 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
140002 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .memad(.src0x, .add_unaligned_size, -16), ._ },
140003 .{ .@"0:", .vp_, .xor, .tmp3x, .tmp2x, .memi(.src0x, .tmp0), ._ },
140004 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140005 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140006 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
140007 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140008 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
140009 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140010 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140011 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
140012 } },
140013 }, .{
140014 .required_features = .{ .sse4_2, null, null, null },
140015 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
140016 .src_constraints = .{ .{ .unaligned_multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
140017 .patterns = &.{
140018 .{ .src = .{ .to_mem, .none, .none } },
140019 },
140020 .extra_temps = .{
140021 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140022 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
140023 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140024 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140025 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
140026 .unused,
140027 .unused,
140028 .unused,
140029 .unused,
140030 .unused,
140031 .unused,
140032 },
140033 .dst_temps = .{ .{ .rc = .sse }, .unused },
140034 .clobbers = .{ .eflags = true },
140035 .each = .{ .once = &.{
140036 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140037 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
140038 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
140039 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
140040 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
140041 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
140042 .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ },
140043 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
140044 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
140045 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
140046 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
140047 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140048 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
140049 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
140050 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
140051 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
140052 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
140053 } },
140054 }, .{
140055 .required_features = .{ .avx512f, null, null, null },
140056 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
140057 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .zword, .is = .qword } }, .any, .any },
140058 .patterns = &.{
140059 .{ .src = .{ .to_mem, .none, .none } },
140060 },
140061 .extra_temps = .{
140062 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140063 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140064 .{ .type = .vector_8_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
140065 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140066 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140067 .unused,
140068 .unused,
140069 .unused,
140070 .unused,
140071 .unused,
140072 .unused,
140073 },
140074 .dst_temps = .{ .{ .rc = .sse }, .unused },
140075 .clobbers = .{ .eflags = true },
140076 .each = .{ .once = &.{
140077 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140078 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
140079 .{ ._, .v_dqa, .mov, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
140080 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
140081 .{ ._, .vp_, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
140082 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
140083 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
140084 .{ ._, .vp_, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
140085 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
140086 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
140087 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
140088 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
140089 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
140090 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
140091 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
140092 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140093 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
140094 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140095 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140096 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
140097 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140098 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140099 } },
140100 }, .{
140101 .required_features = .{ .avx2, null, null, null },
140102 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
140103 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
140104 .patterns = &.{
140105 .{ .src = .{ .to_mem, .none, .none } },
140106 },
140107 .extra_temps = .{
140108 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140109 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140110 .{ .type = .vector_4_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
140111 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140112 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140113 .unused,
140114 .unused,
140115 .unused,
140116 .unused,
140117 .unused,
140118 .unused,
140119 },
140120 .dst_temps = .{ .{ .rc = .sse }, .unused },
140121 .clobbers = .{ .eflags = true },
140122 .each = .{ .once = &.{
140123 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140124 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
140125 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
140126 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
140127 .{ ._, .vp_, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
140128 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
140129 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
140130 .{ ._, .vp_q, .cmpgt, .tmp4y, .tmp3y, .dst0y, ._ },
140131 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp3y, .tmp4y },
140132 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
140133 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140134 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
140135 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140136 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140137 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
140138 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140139 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140140 } },
140141 }, .{
140142 .required_features = .{ .avx, null, null, null },
140143 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
140144 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any },
140145 .patterns = &.{
140146 .{ .src = .{ .to_mem, .none, .none } },
140147 },
140148 .extra_temps = .{
140149 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140150 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140151 .{ .type = .vector_4_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
140152 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140153 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140154 .unused,
140155 .unused,
140156 .unused,
140157 .unused,
140158 .unused,
140159 .unused,
140160 },
140161 .dst_temps = .{ .{ .rc = .sse }, .unused },
140162 .clobbers = .{ .eflags = true },
140163 .each = .{ .once = &.{
140164 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140165 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
140166 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
140167 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
140168 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
140169 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
140170 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
140171 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140172 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140173 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
140174 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140175 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140176 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
140177 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140178 .{ ._, .vp_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
140179 .{ ._, .vp_q, .cmpgt, .tmp4x, .tmp3x, .dst0x, ._ },
140180 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp3x, .tmp4x },
140181 } },
140182 }, .{
140183 .required_features = .{ .sse4_2, null, null, null },
140184 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
140185 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
140186 .patterns = &.{
140187 .{ .src = .{ .to_mem, .none, .none } },
140188 },
140189 .extra_temps = .{
140190 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140191 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140192 .{ .type = .vector_2_i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .outside = .smin } } },
140193 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140194 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
140195 .unused,
140196 .unused,
140197 .unused,
140198 .unused,
140199 .unused,
140200 .unused,
140201 },
140202 .dst_temps = .{ .{ .rc = .sse }, .unused },
140203 .clobbers = .{ .eflags = true },
140204 .each = .{ .once = &.{
140205 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140206 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
140207 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
140208 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
140209 .{ ._, .p_, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
140210 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
140211 .{ .@"0:", ._dqa, .mov, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
140212 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
140213 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
140214 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
140215 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
140216 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140217 .{ ._, .p_d, .shuf, .tmp3x, .dst0x, .ui(0b11_10), ._ },
140218 .{ ._, ._dqa, .mov, .tmp4x, .tmp3x, ._, ._ },
140219 .{ ._, .p_q, .cmpgt, .tmp4x, .dst0x, ._, ._ },
140220 .{ ._, .p_b, .blendv, .dst0x, .tmp3x, .tmp4x, ._ },
140221 } },
140222 }, .{
140223 .required_features = .{ .avx512f, null, null, null },
140224 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
140225 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .zword, .is = .qword } }, .any, .any },
140226 .patterns = &.{
140227 .{ .src = .{ .to_mem, .none, .none } },
140228 },
140229 .extra_temps = .{
140230 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140231 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
140232 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140233 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140234 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140235 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140236 .unused,
140237 .unused,
140238 .unused,
140239 .unused,
140240 .unused,
140241 },
140242 .dst_temps = .{ .{ .rc = .sse }, .unused },
140243 .clobbers = .{ .eflags = true },
140244 .each = .{ .once = &.{
140245 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140246 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
140247 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
140248 .{ ._, .v_dqa, .mov, .tmp4y, .memad(.src0y, .add_size, -32), ._, ._ },
140249 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_size, -64), ._, ._ },
140250 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
140251 .{ ._, .vp_, .@"and", .tmp4y, .tmp4y, .lead(.tmp0y, 32), ._ },
140252 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
140253 .{ ._, .vp_, .xor, .tmp4y, .tmp4y, .tmp2y, ._ },
140254 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
140255 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp4y, .dst0y, ._ },
140256 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
140257 .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
140258 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp4y, .dst0y, ._ },
140259 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
140260 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
140261 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140262 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
140263 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
140264 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
140265 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
140266 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
140267 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
140268 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
140269 } },
140270 }, .{
140271 .required_features = .{ .avx2, null, null, null },
140272 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
140273 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
140274 .patterns = &.{
140275 .{ .src = .{ .to_mem, .none, .none } },
140276 },
140277 .extra_temps = .{
140278 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140279 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
140280 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140281 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140282 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140283 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140284 .unused,
140285 .unused,
140286 .unused,
140287 .unused,
140288 .unused,
140289 },
140290 .dst_temps = .{ .{ .rc = .sse }, .unused },
140291 .clobbers = .{ .eflags = true },
140292 .each = .{ .once = &.{
140293 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140294 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
140295 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
140296 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_size, -32), ._, ._ },
140297 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
140298 .{ ._, .vp_, .xor, .dst0y, .dst0y, .tmp2y, ._ },
140299 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
140300 .{ .@"0:", .vp_, .xor, .tmp4y, .tmp2y, .memi(.src0y, .tmp0), ._ },
140301 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp4y, .dst0y, ._ },
140302 .{ ._, .vp_b, .blendv, .dst0y, .dst0y, .tmp4y, .tmp5y },
140303 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
140304 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140305 .{ ._, .v_i128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
140306 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
140307 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
140308 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
140309 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
140310 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
140311 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
140312 } },
140313 }, .{
140314 .required_features = .{ .avx, null, null, null },
140315 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
140316 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any },
140317 .patterns = &.{
140318 .{ .src = .{ .to_mem, .none, .none } },
140319 },
140320 .extra_temps = .{
140321 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140322 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
140323 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
140324 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140325 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140326 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140327 .unused,
140328 .unused,
140329 .unused,
140330 .unused,
140331 .unused,
140332 },
140333 .dst_temps = .{ .{ .rc = .sse }, .unused },
140334 .clobbers = .{ .eflags = true },
140335 .each = .{ .once = &.{
140336 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140337 .{ ._, .v_sd, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
140338 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
140339 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_size, -32), ._, ._ },
140340 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
140341 .{ ._, .v_ps, .xor, .dst0y, .dst0y, .tmp2y, ._ },
140342 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
140343 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
140344 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
140345 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
140346 .{ .@"0:", .vp_, .xor, .tmp4x, .tmp2x, .memi(.src0x, .tmp0), ._ },
140347 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
140348 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
140349 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
140350 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140351 .{ ._, .vp_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
140352 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp4x, .dst0x, ._ },
140353 .{ ._, .vp_b, .blendv, .dst0x, .dst0x, .tmp4x, .tmp5x },
140354 .{ ._, .vp_, .xor, .dst0x, .dst0x, .tmp2x, ._ },
140355 } },
140356 }, .{
140357 .required_features = .{ .sse4_2, null, null, null },
140358 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
140359 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
140360 .patterns = &.{
140361 .{ .src = .{ .to_mem, .none, .none } },
140362 },
140363 .extra_temps = .{
140364 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140365 .{ .type = .i64, .kind = .{ .splat_int_mem = .{ .ref = .src0, .inside = .smin, .outside = .smin } } },
140366 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140367 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140368 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
140369 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
140370 .unused,
140371 .unused,
140372 .unused,
140373 .unused,
140374 .unused,
140375 },
140376 .dst_temps = .{ .{ .rc = .sse }, .unused },
140377 .clobbers = .{ .eflags = true },
140378 .each = .{ .once = &.{
140379 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140380 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
140381 .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ },
140382 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
140383 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
140384 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
140385 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
140386 .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ },
140387 .{ ._, .p_, .xor, .tmp4x, .tmp2x, ._, ._ },
140388 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
140389 .{ ._, .p_q, .cmpgt, .tmp5x, .dst0x, ._, ._ },
140390 .{ ._, .p_b, .blendv, .dst0x, .tmp4x, .tmp5x, ._ },
140391 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
140392 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140393 .{ ._, .p_d, .shuf, .tmp4x, .dst0x, .ui(0b11_10), ._ },
140394 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
140395 .{ ._, .p_q, .cmpgt, .tmp5x, .dst0x, ._, ._ },
140396 .{ ._, .p_b, .blendv, .dst0x, .tmp4x, .tmp5x, ._ },
140397 .{ ._, .p_, .xor, .dst0x, .tmp2x, ._, ._ },
140398 } },
140399 }, .{
140400 .required_features = .{ .@"64bit", .cmov, null, null },
140401 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
140402 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
140403 .patterns = &.{
140404 .{ .src = .{ .to_mem, .none, .none } },
140405 },
140406 .extra_temps = .{
140407 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140408 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
140409 .unused,
140410 .unused,
140411 .unused,
140412 .unused,
140413 .unused,
140414 .unused,
140415 .unused,
140416 .unused,
140417 .unused,
140418 },
140419 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
140420 .clobbers = .{ .eflags = true },
140421 .each = .{ .once = &.{
140422 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
140423 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
140424 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
140425 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
140426 .{ ._, ._l, .cmov, .dst0q, .tmp1q, ._, ._ },
140427 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
140428 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140429 } },
140430 }, .{
140431 .required_features = .{ .@"64bit", null, null, null },
140432 .dst_constraints = .{ .{ .signed_int = .qword }, .any },
140433 .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
140434 .patterns = &.{
140435 .{ .src = .{ .to_mem, .none, .none } },
140436 },
140437 .extra_temps = .{
140438 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140439 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
140440 .unused,
140441 .unused,
140442 .unused,
140443 .unused,
140444 .unused,
140445 .unused,
140446 .unused,
140447 .unused,
140448 .unused,
140449 },
140450 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
140451 .clobbers = .{ .eflags = true },
140452 .each = .{ .once = &.{
140453 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
140454 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
140455 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
140456 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
140457 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
140458 .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
140459 .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
140460 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140461 } },
140462 }, .{
140463 .required_features = .{ .@"64bit", .cmov, null, null },
140464 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
140465 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
140466 .patterns = &.{
140467 .{ .src = .{ .to_mem, .none, .none } },
140468 },
140469 .extra_temps = .{
140470 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140471 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
140472 .unused,
140473 .unused,
140474 .unused,
140475 .unused,
140476 .unused,
140477 .unused,
140478 .unused,
140479 .unused,
140480 .unused,
140481 },
140482 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
140483 .clobbers = .{ .eflags = true },
140484 .each = .{ .once = &.{
140485 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
140486 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
140487 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
140488 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
140489 .{ ._, ._b, .cmov, .dst0q, .tmp1q, ._, ._ },
140490 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
140491 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140492 } },
140493 }, .{
140494 .required_features = .{ .@"64bit", null, null, null },
140495 .dst_constraints = .{ .{ .unsigned_int = .qword }, .any },
140496 .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
140497 .patterns = &.{
140498 .{ .src = .{ .to_mem, .none, .none } },
140499 },
140500 .extra_temps = .{
140501 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
140502 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
140503 .unused,
140504 .unused,
140505 .unused,
140506 .unused,
140507 .unused,
140508 .unused,
140509 .unused,
140510 .unused,
140511 .unused,
140512 },
140513 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
140514 .clobbers = .{ .eflags = true },
140515 .each = .{ .once = &.{
140516 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
140517 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
140518 .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
140519 .{ ._, ._, .cmp, .dst0q, .tmp1q, ._, ._ },
140520 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
140521 .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ },
140522 .{ .@"1:", ._, .sub, .tmp0d, .si(8), ._, ._ },
140523 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140524 } },
140525 }, .{
140526 .required_features = .{ .@"64bit", .cmov, null, null },
140527 .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
140528 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
140529 .patterns = &.{
140530 .{ .src = .{ .to_mem, .none, .none } },
140531 },
140532 .extra_temps = .{
140533 .{ .type = .u32, .kind = .{ .reg = .rdi } },
140534 .{ .type = .usize, .kind = .{ .reg = .rsi } },
140535 .{ .type = .isize, .kind = .{ .reg = .rcx } },
140536 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
140537 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
140538 .unused,
140539 .unused,
140540 .unused,
140541 .unused,
140542 .unused,
140543 .unused,
140544 },
140545 .dst_temps = .{ .mem, .unused },
140546 .clobbers = .{ .eflags = true },
140547 .each = .{ .once = &.{
140548 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
140549 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
140550 .{ .@"0:", ._, .mov, .tmp2p, .sia(1, .dst0, .sub_size_div_8), ._, ._ },
140551 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
140552 .{ ._, ._c, .cl, ._, ._, ._, ._ },
140553 .{ .@"1:", ._, .mov, .tmp4q, .leasiad(.tmp1q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
140554 .{ ._, ._, .sbb, .tmp4q, .leasiad(.tmp3q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
140555 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
140556 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
140557 .{ ._, ._, .mov, .tmp4q, .leaad(.tmp1q, .add_src0_elem_size, -8), ._, ._ },
140558 .{ ._, ._, .sbb, .tmp4q, .leaad(.tmp3q, .add_src0_elem_size, -8), ._, ._ },
140559 .{ ._, ._l, .cmov, .tmp1p, .tmp3p, ._, ._ },
140560 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
140561 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140562 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
140563 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
140564 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
140565 } },
140566 }, .{
140567 .required_features = .{ .@"64bit", null, null, null },
140568 .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
140569 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any },
140570 .patterns = &.{
140571 .{ .src = .{ .to_mem, .none, .none } },
140572 },
140573 .extra_temps = .{
140574 .{ .type = .u32, .kind = .{ .reg = .rdi } },
140575 .{ .type = .usize, .kind = .{ .reg = .rsi } },
140576 .{ .type = .isize, .kind = .{ .reg = .rcx } },
140577 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
140578 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
140579 .unused,
140580 .unused,
140581 .unused,
140582 .unused,
140583 .unused,
140584 .unused,
140585 },
140586 .dst_temps = .{ .mem, .unused },
140587 .clobbers = .{ .eflags = true },
140588 .each = .{ .once = &.{
140589 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
140590 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
140591 .{ .@"0:", ._, .mov, .tmp2p, .sia(1, .dst0, .sub_size_div_8), ._, ._ },
140592 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
140593 .{ ._, ._c, .cl, ._, ._, ._, ._ },
140594 .{ .@"1:", ._, .mov, .tmp4q, .leasiad(.tmp1q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
140595 .{ ._, ._, .sbb, .tmp4q, .leasiad(.tmp3q, .@"8", .tmp2, .add_src0_elem_size, -8), ._, ._ },
140596 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
140597 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
140598 .{ ._, ._, .mov, .tmp4q, .leaad(.tmp1q, .add_src0_elem_size, -8), ._, ._ },
140599 .{ ._, ._, .sbb, .tmp4q, .leaad(.tmp3q, .add_src0_elem_size, -8), ._, ._ },
140600 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
140601 .{ ._, ._, .mov, .tmp1p, .tmp3p, ._, ._ },
140602 .{ .@"1:", ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
140603 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140604 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
140605 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
140606 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
140607 } },
140608 }, .{
140609 .required_features = .{ .@"64bit", .cmov, null, null },
140610 .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any },
140611 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
140612 .patterns = &.{
140613 .{ .src = .{ .to_mem, .none, .none } },
140614 },
140615 .extra_temps = .{
140616 .{ .type = .u32, .kind = .{ .reg = .rdi } },
140617 .{ .type = .usize, .kind = .{ .reg = .rsi } },
140618 .{ .type = .isize, .kind = .{ .reg = .rcx } },
140619 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
140620 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
140621 .unused,
140622 .unused,
140623 .unused,
140624 .unused,
140625 .unused,
140626 .unused,
140627 },
140628 .dst_temps = .{ .mem, .unused },
140629 .clobbers = .{ .eflags = true },
140630 .each = .{ .once = &.{
140631 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
140632 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
140633 .{ .@"0:", ._, .mov, .tmp2p, .sa(.dst0, .sub_size_div_8), ._, ._ },
140634 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
140635 .{ ._, ._c, .cl, ._, ._, ._, ._ },
140636 .{ .@"1:", ._, .mov, .tmp4q, .leasia(.tmp1q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
140637 .{ ._, ._, .sbb, .tmp4q, .leasia(.tmp3q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
140638 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
140639 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
140640 .{ ._, ._b, .cmov, .tmp1p, .tmp3p, ._, ._ },
140641 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
140642 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140643 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
140644 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
140645 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
140646 } },
140647 }, .{
140648 .required_features = .{ .@"64bit", null, null, null },
140649 .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any },
140650 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any },
140651 .patterns = &.{
140652 .{ .src = .{ .to_mem, .none, .none } },
140653 },
140654 .extra_temps = .{
140655 .{ .type = .u32, .kind = .{ .reg = .rdi } },
140656 .{ .type = .usize, .kind = .{ .reg = .rsi } },
140657 .{ .type = .isize, .kind = .{ .reg = .rcx } },
140658 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
140659 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
140660 .unused,
140661 .unused,
140662 .unused,
140663 .unused,
140664 .unused,
140665 .unused,
140666 },
140667 .dst_temps = .{ .mem, .unused },
140668 .clobbers = .{ .eflags = true },
140669 .each = .{ .once = &.{
140670 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
140671 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
140672 .{ .@"0:", ._, .mov, .tmp2p, .sa(.dst0, .sub_size_div_8), ._, ._ },
140673 .{ ._, ._, .lea, .tmp3p, .memi(.src0, .tmp0), ._, ._ },
140674 .{ ._, ._c, .cl, ._, ._, ._, ._ },
140675 .{ .@"1:", ._, .mov, .tmp4q, .leasia(.tmp1q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
140676 .{ ._, ._, .sbb, .tmp4q, .leasia(.tmp3q, .@"8", .tmp2, .add_src0_elem_size), ._, ._ },
140677 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
140678 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
140679 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
140680 .{ ._, ._, .mov, .tmp1p, .tmp3p, ._, ._ },
140681 .{ .@"1:", ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
140682 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
140683 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
140684 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
140685 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
140686 } },
140687 }, .{
140688 .required_features = .{ .f16c, null, null, null },
140689 .dst_constraints = .{ .{ .float = .word }, .any },
140690 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
140691 .patterns = &.{
140692 .{ .src = .{ .mem, .none, .none } },
140693 .{ .src = .{ .to_sse, .none, .none } },
140694 },
140695 .extra_temps = .{
140696 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
140697 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
140698 .unused,
140699 .unused,
140700 .unused,
140701 .unused,
140702 .unused,
140703 .unused,
140704 .unused,
140705 .unused,
140706 .unused,
140707 },
140708 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
140709 .each = .{ .once = &.{
140710 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
140711 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
140712 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140713 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140714 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140715 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
140716 } },
140717 }, .{
140718 .required_features = .{ .f16c, null, null, null },
140719 .dst_constraints = .{ .{ .float = .word }, .any },
140720 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
140721 .patterns = &.{
140722 .{ .src = .{ .mem, .none, .none } },
140723 .{ .src = .{ .to_sse, .none, .none } },
140724 },
140725 .extra_temps = .{
140726 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
140727 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
140728 .unused,
140729 .unused,
140730 .unused,
140731 .unused,
140732 .unused,
140733 .unused,
140734 .unused,
140735 .unused,
140736 .unused,
140737 },
140738 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
140739 .each = .{ .once = &.{
140740 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
140741 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
140742 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140743 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140744 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140745 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
140746 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140747 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140748 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140749 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
140750 } },
140751 }, .{
140752 .required_features = .{ .f16c, null, null, null },
140753 .dst_constraints = .{ .{ .float = .word }, .any },
140754 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
140755 .patterns = &.{
140756 .{ .src = .{ .mem, .none, .none } },
140757 .{ .src = .{ .to_sse, .none, .none } },
140758 },
140759 .extra_temps = .{
140760 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
140761 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
140762 .unused,
140763 .unused,
140764 .unused,
140765 .unused,
140766 .unused,
140767 .unused,
140768 .unused,
140769 .unused,
140770 .unused,
140771 },
140772 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
140773 .each = .{ .once = &.{
140774 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
140775 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
140776 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140777 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140778 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140779 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
140780 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140781 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140782 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140783 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
140784 } },
140785 }, .{
140786 .required_features = .{ .f16c, null, null, null },
140787 .dst_constraints = .{ .{ .float = .word }, .any },
140788 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
140789 .patterns = &.{
140790 .{ .src = .{ .to_sse, .none, .none } },
140791 },
140792 .extra_temps = .{
140793 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
140794 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140795 .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
140796 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140797 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140798 .unused,
140799 .unused,
140800 .unused,
140801 .unused,
140802 .unused,
140803 .unused,
140804 },
140805 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
140806 .each = .{ .once = &.{
140807 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140808 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
140809 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
140810 .{ ._, .v_ps, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
140811 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
140812 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
140813 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
140814 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
140815 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
140816 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
140817 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
140818 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
140819 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
140820 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
140821 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
140822 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
140823 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
140824 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
140825 } },
140826 }, .{
140827 .required_features = .{ .f16c, null, null, null },
140828 .dst_constraints = .{ .{ .float = .word }, .any },
140829 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
140830 .patterns = &.{
140831 .{ .src = .{ .mem, .none, .none } },
140832 .{ .src = .{ .to_sse, .none, .none } },
140833 },
140834 .extra_temps = .{
140835 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140836 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140837 .unused,
140838 .unused,
140839 .unused,
140840 .unused,
140841 .unused,
140842 .unused,
140843 .unused,
140844 .unused,
140845 .unused,
140846 },
140847 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
140848 .each = .{ .once = &.{
140849 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
140850 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
140851 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140852 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140853 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140854 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
140855 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140856 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140857 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140858 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
140859 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140860 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140861 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140862 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
140863 } },
140864 }, .{
140865 .required_features = .{ .f16c, null, null, null },
140866 .dst_constraints = .{ .{ .float = .word }, .any },
140867 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
140868 .patterns = &.{
140869 .{ .src = .{ .to_sse, .none, .none } },
140870 },
140871 .extra_temps = .{
140872 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
140873 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140874 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
140875 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140876 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140877 .unused,
140878 .unused,
140879 .unused,
140880 .unused,
140881 .unused,
140882 .unused,
140883 },
140884 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
140885 .each = .{ .once = &.{
140886 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140887 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
140888 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
140889 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
140890 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
140891 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
140892 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
140893 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
140894 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
140895 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
140896 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
140897 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
140898 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
140899 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
140900 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
140901 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
140902 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
140903 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
140904 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
140905 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
140906 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
140907 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
140908 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
140909 } },
140910 }, .{
140911 .required_features = .{ .f16c, null, null, null },
140912 .dst_constraints = .{ .{ .float = .word }, .any },
140913 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
140914 .patterns = &.{
140915 .{ .src = .{ .to_sse, .none, .none } },
140916 },
140917 .extra_temps = .{
140918 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140919 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140920 .unused,
140921 .unused,
140922 .unused,
140923 .unused,
140924 .unused,
140925 .unused,
140926 .unused,
140927 .unused,
140928 .unused,
140929 },
140930 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
140931 .each = .{ .once = &.{
140932 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
140933 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
140934 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
140935 .{ ._, .v_ps, .max, .tmp1y, .dst0y, .tmp0y, ._ },
140936 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
140937 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
140938 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
140939 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140940 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140941 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140942 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
140943 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140944 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140945 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140946 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
140947 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
140948 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
140949 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
140950 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
140951 } },
140952 }, .{
140953 .required_features = .{ .avx512f, null, null, null },
140954 .dst_constraints = .{ .{ .float = .word }, .any },
140955 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
140956 .patterns = &.{
140957 .{ .src = .{ .to_mem, .none, .none } },
140958 },
140959 .extra_temps = .{
140960 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
140961 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
140962 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
140963 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140964 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140965 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
140966 .unused,
140967 .unused,
140968 .unused,
140969 .unused,
140970 .unused,
140971 },
140972 .dst_temps = .{ .{ .rc = .sse }, .unused },
140973 .each = .{ .once = &.{
140974 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
140975 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
140976 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
140977 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
140978 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
140979 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
140980 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
140981 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
140982 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
140983 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
140984 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
140985 .{ ._, .v_ps, .max, .tmp5y, .tmp3y, .tmp4y, ._ },
140986 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
140987 .{ ._, .v_ps, .blendv, .tmp3y, .tmp3y, .tmp5y, .tmp4y },
140988 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
140989 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
140990 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
140991 .{ ._, .v_ps, .max, .tmp5y, .dst0y, .tmp4y, ._ },
140992 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
140993 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp5y, .tmp4y },
140994 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
140995 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
140996 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
140997 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
140998 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
140999 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141000 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141001 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
141002 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141003 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141004 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141005 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
141006 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141007 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141008 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141009 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
141010 } },
141011 }, .{
141012 .required_features = .{ .avx512f, null, null, null },
141013 .dst_constraints = .{ .{ .float = .word }, .any },
141014 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
141015 .patterns = &.{
141016 .{ .src = .{ .to_mem, .none, .none } },
141017 },
141018 .extra_temps = .{
141019 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141020 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141021 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141022 .unused,
141023 .unused,
141024 .unused,
141025 .unused,
141026 .unused,
141027 .unused,
141028 .unused,
141029 .unused,
141030 },
141031 .dst_temps = .{ .{ .rc = .sse }, .unused },
141032 .each = .{ .once = &.{
141033 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
141034 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
141035 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
141036 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
141037 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
141038 .{ ._, .v_ps, .max, .tmp2y, .tmp0y, .tmp1y, ._ },
141039 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
141040 .{ ._, .v_ps, .blendv, .tmp0y, .tmp0y, .tmp2y, .tmp1y },
141041 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
141042 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
141043 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
141044 .{ ._, .v_ps, .max, .tmp2y, .dst0y, .tmp1y, ._ },
141045 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
141046 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
141047 .{ ._, .v_ps, .max, .tmp1y, .dst0y, .tmp0y, ._ },
141048 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
141049 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
141050 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
141051 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141052 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141053 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141054 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
141055 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141056 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141057 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141058 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
141059 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141060 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141061 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141062 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
141063 } },
141064 }, .{
141065 .required_features = .{ .f16c, null, null, null },
141066 .dst_constraints = .{ .{ .float = .word }, .any },
141067 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
141068 .patterns = &.{
141069 .{ .src = .{ .to_mem, .none, .none } },
141070 },
141071 .extra_temps = .{
141072 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141073 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141074 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141075 .unused,
141076 .unused,
141077 .unused,
141078 .unused,
141079 .unused,
141080 .unused,
141081 .unused,
141082 .unused,
141083 },
141084 .dst_temps = .{ .{ .rc = .sse }, .unused },
141085 .clobbers = .{ .eflags = true },
141086 .each = .{ .once = &.{
141087 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
141088 .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
141089 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
141090 .{ ._, .v_ps, .max, .tmp2y, .dst0y, .tmp1y, ._ },
141091 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
141092 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
141093 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
141094 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141095 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
141096 .{ ._, .v_ps, .max, .tmp2x, .dst0x, .tmp1x, ._ },
141097 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
141098 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
141099 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
141100 .{ ._, .v_ps, .max, .tmp2x, .dst0x, .tmp1x, ._ },
141101 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
141102 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
141103 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
141104 .{ ._, .v_ss, .max, .tmp2x, .dst0x, .tmp1x, ._ },
141105 .{ ._, .v_ss, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
141106 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
141107 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
141108 } },
141109 }, .{
141110 .required_features = .{ .avx512f, null, null, null },
141111 .dst_constraints = .{ .{ .float = .word }, .any },
141112 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
141113 .patterns = &.{
141114 .{ .src = .{ .to_mem, .none, .none } },
141115 },
141116 .extra_temps = .{
141117 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141118 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
141119 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
141120 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141121 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141122 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141123 .unused,
141124 .unused,
141125 .unused,
141126 .unused,
141127 .unused,
141128 },
141129 .dst_temps = .{ .{ .rc = .sse }, .unused },
141130 .clobbers = .{ .eflags = true },
141131 .each = .{ .once = &.{
141132 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
141133 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
141134 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
141135 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
141136 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
141137 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
141138 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
141139 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
141140 .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ },
141141 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
141142 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
141143 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
141144 .{ ._, .v_ps, .max, .tmp5y, .tmp3y, .tmp4y, ._ },
141145 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
141146 .{ ._, .v_ps, .blendv, .tmp3y, .tmp3y, .tmp5y, .tmp4y },
141147 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
141148 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
141149 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
141150 .{ ._, .v_ps, .max, .tmp5y, .dst0y, .tmp4y, ._ },
141151 .{ ._, .v_ps, .cmp, .tmp4y, .tmp4y, .tmp4y, .vp(.ord) },
141152 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp5y, .tmp4y },
141153 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
141154 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
141155 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
141156 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
141157 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
141158 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
141159 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
141160 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
141161 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141162 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
141163 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141164 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141165 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141166 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
141167 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141168 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141169 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141170 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
141171 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141172 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141173 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141174 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
141175 } },
141176 }, .{
141177 .required_features = .{ .f16c, null, null, null },
141178 .dst_constraints = .{ .{ .float = .word }, .any },
141179 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
141180 .patterns = &.{
141181 .{ .src = .{ .to_mem, .none, .none } },
141182 },
141183 .extra_temps = .{
141184 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141185 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
141186 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
141187 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141188 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141189 .unused,
141190 .unused,
141191 .unused,
141192 .unused,
141193 .unused,
141194 .unused,
141195 },
141196 .dst_temps = .{ .{ .rc = .sse }, .unused },
141197 .clobbers = .{ .eflags = true },
141198 .each = .{ .once = &.{
141199 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
141200 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
141201 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
141202 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
141203 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
141204 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
141205 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
141206 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
141207 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
141208 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
141209 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
141210 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
141211 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
141212 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
141213 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
141214 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
141215 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
141216 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141217 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
141218 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141219 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141220 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141221 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
141222 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141223 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141224 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141225 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
141226 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141227 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141228 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141229 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
141230 } },
141231 }, .{
141232 .required_features = .{ .avx, null, null, null },
141233 .dst_constraints = .{ .{ .float = .word }, .any },
141234 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
141235 .patterns = &.{
141236 .{ .src = .{ .to_mem, .none, .none } },
141237 },
141238 .call_frame = .{ .alignment = .@"16" },
141239 .extra_temps = .{
141240 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141241 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
141242 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
141243 .unused,
141244 .unused,
141245 .unused,
141246 .unused,
141247 .unused,
141248 .unused,
141249 .unused,
141250 .unused,
141251 },
141252 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
141253 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
141254 .each = .{ .once = &.{
141255 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
141256 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
141257 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) },
141258 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
141259 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
141260 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
141261 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
141262 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141263 } },
141264 }, .{
141265 .required_features = .{ .sse2, null, null, null },
141266 .dst_constraints = .{ .{ .float = .word }, .any },
141267 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
141268 .patterns = &.{
141269 .{ .src = .{ .to_mem, .none, .none } },
141270 },
141271 .call_frame = .{ .alignment = .@"16" },
141272 .extra_temps = .{
141273 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141274 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
141275 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
141276 .unused,
141277 .unused,
141278 .unused,
141279 .unused,
141280 .unused,
141281 .unused,
141282 .unused,
141283 .unused,
141284 },
141285 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
141286 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
141287 .each = .{ .once = &.{
141288 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
141289 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
141290 .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ },
141291 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
141292 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
141293 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
141294 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
141295 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141296 } },
141297 }, .{
141298 .required_features = .{ .sse, null, null, null },
141299 .dst_constraints = .{ .{ .float = .word }, .any },
141300 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
141301 .patterns = &.{
141302 .{ .src = .{ .to_mem, .none, .none } },
141303 },
141304 .call_frame = .{ .alignment = .@"16" },
141305 .extra_temps = .{
141306 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141307 .{ .type = .f16, .kind = .{ .reg = .ax } },
141308 .{ .type = .f32, .kind = .mem },
141309 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
141310 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
141311 .unused,
141312 .unused,
141313 .unused,
141314 .unused,
141315 .unused,
141316 .unused,
141317 },
141318 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
141319 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
141320 .each = .{ .once = &.{
141321 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
141322 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
141323 .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
141324 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
141325 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
141326 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
141327 .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ },
141328 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
141329 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
141330 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141331 } },
141332 }, .{
141333 .required_features = .{ .avx, null, null, null },
141334 .dst_constraints = .{ .{ .float = .dword }, .any },
141335 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
141336 .patterns = &.{
141337 .{ .src = .{ .to_sse, .none, .none } },
141338 },
141339 .extra_temps = .{
141340 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141341 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141342 .unused,
141343 .unused,
141344 .unused,
141345 .unused,
141346 .unused,
141347 .unused,
141348 .unused,
141349 .unused,
141350 .unused,
141351 },
141352 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
141353 .each = .{ .once = &.{
141354 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
141355 .{ ._, .v_ss, .max, .tmp1x, .src0x, .tmp0x, ._ },
141356 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141357 .{ ._, .v_ps, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
141358 } },
141359 }, .{
141360 .required_features = .{ .sse4_1, null, null, null },
141361 .dst_constraints = .{ .{ .float = .dword }, .any },
141362 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
141363 .patterns = &.{
141364 .{ .src = .{ .to_mut_sse, .none, .none } },
141365 },
141366 .extra_temps = .{
141367 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
141368 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141369 .unused,
141370 .unused,
141371 .unused,
141372 .unused,
141373 .unused,
141374 .unused,
141375 .unused,
141376 .unused,
141377 .unused,
141378 },
141379 .dst_temps = .{ .{ .ref = .src0 }, .unused },
141380 .each = .{ .once = &.{
141381 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
141382 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
141383 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
141384 .{ ._, ._ss, .max, .tmp1x, .tmp0x, ._, ._ },
141385 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
141386 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
141387 } },
141388 }, .{
141389 .required_features = .{ .sse, null, null, null },
141390 .dst_constraints = .{ .{ .float = .dword }, .any },
141391 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
141392 .patterns = &.{
141393 .{ .src = .{ .to_mut_sse, .none, .none } },
141394 },
141395 .extra_temps = .{
141396 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141397 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141398 .unused,
141399 .unused,
141400 .unused,
141401 .unused,
141402 .unused,
141403 .unused,
141404 .unused,
141405 .unused,
141406 .unused,
141407 },
141408 .dst_temps = .{ .{ .ref = .src0 }, .unused },
141409 .each = .{ .once = &.{
141410 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
141411 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
141412 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
141413 .{ ._, ._ss, .max, .tmp1x, .tmp0x, ._, ._ },
141414 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
141415 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
141416 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
141417 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
141418 } },
141419 }, .{
141420 .required_features = .{ .avx, null, null, null },
141421 .dst_constraints = .{ .{ .float = .dword }, .any },
141422 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
141423 .patterns = &.{
141424 .{ .src = .{ .to_sse, .none, .none } },
141425 },
141426 .extra_temps = .{
141427 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141428 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141429 .unused,
141430 .unused,
141431 .unused,
141432 .unused,
141433 .unused,
141434 .unused,
141435 .unused,
141436 .unused,
141437 .unused,
141438 },
141439 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
141440 .each = .{ .once = &.{
141441 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
141442 .{ ._, .v_ss, .max, .tmp1x, .src0x, .tmp0x, ._ },
141443 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141444 .{ ._, .v_ps, .blendv, .tmp0x, .src0x, .tmp1x, .tmp0x },
141445 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
141446 .{ ._, .v_ss, .max, .tmp1x, .tmp0x, .dst0x, ._ },
141447 .{ ._, .v_ss, .cmp, .dst0x, .dst0x, .dst0x, .vp(.ord) },
141448 .{ ._, .v_ps, .blendv, .dst0x, .tmp0x, .tmp1x, .dst0x },
141449 } },
141450 }, .{
141451 .required_features = .{ .sse4_1, null, null, null },
141452 .dst_constraints = .{ .{ .float = .dword }, .any },
141453 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
141454 .patterns = &.{
141455 .{ .src = .{ .to_mut_sse, .none, .none } },
141456 },
141457 .extra_temps = .{
141458 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
141459 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141460 .unused,
141461 .unused,
141462 .unused,
141463 .unused,
141464 .unused,
141465 .unused,
141466 .unused,
141467 .unused,
141468 .unused,
141469 },
141470 .dst_temps = .{ .{ .ref = .src0 }, .unused },
141471 .each = .{ .once = &.{
141472 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
141473 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
141474 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
141475 .{ ._, ._ss, .max, .tmp1x, .tmp0x, ._, ._ },
141476 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
141477 .{ ._, ._ps, .blendv, .tmp1x, .src0x, .tmp0x, ._ },
141478 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
141479 .{ ._, ._ps, .mova, .tmp0x, .tmp1x, ._, ._ },
141480 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
141481 .{ ._, ._ss, .max, .tmp1x, .tmp0x, ._, ._ },
141482 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
141483 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
141484 } },
141485 }, .{
141486 .required_features = .{ .sse, null, null, null },
141487 .dst_constraints = .{ .{ .float = .dword }, .any },
141488 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
141489 .patterns = &.{
141490 .{ .src = .{ .to_mut_sse, .none, .none } },
141491 },
141492 .extra_temps = .{
141493 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141494 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141495 .unused,
141496 .unused,
141497 .unused,
141498 .unused,
141499 .unused,
141500 .unused,
141501 .unused,
141502 .unused,
141503 .unused,
141504 },
141505 .dst_temps = .{ .{ .ref = .src0 }, .unused },
141506 .each = .{ .once = &.{
141507 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
141508 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
141509 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
141510 .{ ._, ._ss, .max, .tmp1x, .tmp0x, ._, ._ },
141511 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
141512 .{ ._, ._ps, .@"and", .tmp1x, .tmp0x, ._, ._ },
141513 .{ ._, ._ps, .andn, .tmp0x, .dst0x, ._, ._ },
141514 .{ ._, ._ps, .@"or", .tmp0x, .tmp1x, ._, ._ },
141515 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
141516 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
141517 .{ ._, ._ss, .max, .tmp1x, .tmp0x, ._, ._ },
141518 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
141519 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
141520 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
141521 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
141522 } },
141523 }, .{
141524 .required_features = .{ .avx, null, null, null },
141525 .dst_constraints = .{ .{ .float = .dword }, .any },
141526 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
141527 .patterns = &.{
141528 .{ .src = .{ .to_sse, .none, .none } },
141529 },
141530 .extra_temps = .{
141531 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141532 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141533 .unused,
141534 .unused,
141535 .unused,
141536 .unused,
141537 .unused,
141538 .unused,
141539 .unused,
141540 .unused,
141541 .unused,
141542 },
141543 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
141544 .each = .{ .once = &.{
141545 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
141546 .{ ._, .v_ps, .max, .tmp1x, .src0x, .tmp0x, ._ },
141547 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141548 .{ ._, .v_ps, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
141549 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
141550 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141551 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141552 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141553 } },
141554 }, .{
141555 .required_features = .{ .sse4_1, null, null, null },
141556 .dst_constraints = .{ .{ .float = .dword }, .any },
141557 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
141558 .patterns = &.{
141559 .{ .src = .{ .to_mut_sse, .none, .none } },
141560 },
141561 .extra_temps = .{
141562 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
141563 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141564 .unused,
141565 .unused,
141566 .unused,
141567 .unused,
141568 .unused,
141569 .unused,
141570 .unused,
141571 .unused,
141572 .unused,
141573 },
141574 .dst_temps = .{ .{ .ref = .src0 }, .unused },
141575 .each = .{ .once = &.{
141576 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
141577 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
141578 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
141579 .{ ._, ._ps, .max, .tmp1x, .tmp0x, ._, ._ },
141580 .{ ._, ._ps, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
141581 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
141582 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
141583 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
141584 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
141585 .{ ._, ._ss, .max, .tmp1x, .tmp0x, ._, ._ },
141586 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
141587 .{ ._, ._ps, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
141588 } },
141589 }, .{
141590 .required_features = .{ .sse, null, null, null },
141591 .dst_constraints = .{ .{ .float = .dword }, .any },
141592 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
141593 .patterns = &.{
141594 .{ .src = .{ .to_mut_sse, .none, .none } },
141595 },
141596 .extra_temps = .{
141597 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141598 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141599 .unused,
141600 .unused,
141601 .unused,
141602 .unused,
141603 .unused,
141604 .unused,
141605 .unused,
141606 .unused,
141607 .unused,
141608 },
141609 .dst_temps = .{ .{ .ref = .src0 }, .unused },
141610 .each = .{ .once = &.{
141611 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
141612 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
141613 .{ ._, ._ps, .mova, .tmp1x, .src0x, ._, ._ },
141614 .{ ._, ._ps, .max, .tmp1x, .tmp0x, ._, ._ },
141615 .{ ._, ._ps, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
141616 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
141617 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
141618 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
141619 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
141620 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
141621 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
141622 .{ ._, ._ss, .max, .tmp1x, .tmp0x, ._, ._ },
141623 .{ ._, ._ss, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
141624 .{ ._, ._ps, .@"and", .dst0x, .tmp0x, ._, ._ },
141625 .{ ._, ._ps, .andn, .tmp0x, .tmp1x, ._, ._ },
141626 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
141627 } },
141628 }, .{
141629 .required_features = .{ .avx, null, null, null },
141630 .dst_constraints = .{ .{ .float = .dword }, .any },
141631 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
141632 .patterns = &.{
141633 .{ .src = .{ .to_sse, .none, .none } },
141634 },
141635 .extra_temps = .{
141636 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
141637 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
141638 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
141639 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141640 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141641 .unused,
141642 .unused,
141643 .unused,
141644 .unused,
141645 .unused,
141646 .unused,
141647 },
141648 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
141649 .each = .{ .once = &.{
141650 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
141651 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
141652 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
141653 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
141654 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
141655 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141656 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141657 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141658 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
141659 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141660 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141661 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141662 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
141663 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141664 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141665 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141666 } },
141667 }, .{
141668 .required_features = .{ .avx, null, null, null },
141669 .dst_constraints = .{ .{ .float = .dword }, .any },
141670 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
141671 .patterns = &.{
141672 .{ .src = .{ .to_sse, .none, .none } },
141673 },
141674 .extra_temps = .{
141675 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141676 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141677 .unused,
141678 .unused,
141679 .unused,
141680 .unused,
141681 .unused,
141682 .unused,
141683 .unused,
141684 .unused,
141685 .unused,
141686 },
141687 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
141688 .each = .{ .once = &.{
141689 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
141690 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141691 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141692 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141693 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
141694 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141695 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141696 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141697 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
141698 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141699 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141700 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141701 } },
141702 }, .{
141703 .required_features = .{ .avx512f, null, null, null },
141704 .dst_constraints = .{ .{ .float = .dword }, .any },
141705 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
141706 .patterns = &.{
141707 .{ .src = .{ .to_mem, .none, .none } },
141708 },
141709 .extra_temps = .{
141710 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
141711 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
141712 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
141713 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141714 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141715 .unused,
141716 .unused,
141717 .unused,
141718 .unused,
141719 .unused,
141720 .unused,
141721 },
141722 .dst_temps = .{ .{ .rc = .sse }, .unused },
141723 .each = .{ .once = &.{
141724 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
141725 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
141726 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
141727 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
141728 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
141729 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
141730 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
141731 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
141732 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
141733 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
141734 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
141735 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
141736 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141737 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141738 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141739 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
141740 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141741 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141742 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141743 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
141744 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141745 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141746 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141747 } },
141748 }, .{
141749 .required_features = .{ .avx512f, null, null, null },
141750 .dst_constraints = .{ .{ .float = .dword }, .any },
141751 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
141752 .patterns = &.{
141753 .{ .src = .{ .to_mem, .none, .none } },
141754 },
141755 .extra_temps = .{
141756 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141757 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141758 .unused,
141759 .unused,
141760 .unused,
141761 .unused,
141762 .unused,
141763 .unused,
141764 .unused,
141765 .unused,
141766 .unused,
141767 },
141768 .dst_temps = .{ .{ .rc = .sse }, .unused },
141769 .each = .{ .once = &.{
141770 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
141771 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
141772 .{ ._, .v_ps, .max, .tmp1y, .dst0y, .tmp0y, ._ },
141773 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
141774 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
141775 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
141776 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141777 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141778 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141779 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
141780 .{ ._, .v_ps, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141781 .{ ._, .v_ps, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141782 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141783 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
141784 .{ ._, .v_ss, .max, .tmp1x, .dst0x, .tmp0x, ._ },
141785 .{ ._, .v_ss, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
141786 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
141787 } },
141788 }, .{
141789 .required_features = .{ .avx, null, null, null },
141790 .dst_constraints = .{ .{ .float = .dword }, .any },
141791 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
141792 .patterns = &.{
141793 .{ .src = .{ .to_mem, .none, .none } },
141794 },
141795 .extra_temps = .{
141796 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141797 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141798 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141799 .unused,
141800 .unused,
141801 .unused,
141802 .unused,
141803 .unused,
141804 .unused,
141805 .unused,
141806 .unused,
141807 },
141808 .dst_temps = .{ .{ .rc = .sse }, .unused },
141809 .clobbers = .{ .eflags = true },
141810 .each = .{ .once = &.{
141811 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
141812 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
141813 .{ .@"0:", .v_ps, .mova, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
141814 .{ ._, .v_ps, .max, .tmp2y, .dst0y, .tmp1y, ._ },
141815 .{ ._, .v_ps, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
141816 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
141817 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
141818 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141819 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
141820 .{ ._, .v_ps, .max, .tmp2x, .dst0x, .tmp1x, ._ },
141821 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
141822 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
141823 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
141824 .{ ._, .v_ps, .max, .tmp2x, .dst0x, .tmp1x, ._ },
141825 .{ ._, .v_ps, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
141826 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
141827 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
141828 .{ ._, .v_ss, .max, .tmp2x, .dst0x, .tmp1x, ._ },
141829 .{ ._, .v_ss, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
141830 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
141831 } },
141832 }, .{
141833 .required_features = .{ .sse4_1, null, null, null },
141834 .dst_constraints = .{ .{ .float = .dword }, .any },
141835 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
141836 .patterns = &.{
141837 .{ .src = .{ .to_mem, .none, .none } },
141838 },
141839 .extra_temps = .{
141840 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141841 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
141842 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141843 .unused,
141844 .unused,
141845 .unused,
141846 .unused,
141847 .unused,
141848 .unused,
141849 .unused,
141850 .unused,
141851 },
141852 .dst_temps = .{ .{ .rc = .sse }, .unused },
141853 .clobbers = .{ .eflags = true },
141854 .each = .{ .once = &.{
141855 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
141856 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
141857 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
141858 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
141859 .{ ._, ._ps, .max, .tmp2x, .tmp1x, ._, ._ },
141860 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
141861 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
141862 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
141863 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141864 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
141865 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
141866 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
141867 .{ ._, ._ps, .max, .tmp2x, .tmp1x, ._, ._ },
141868 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
141869 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
141870 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
141871 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
141872 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
141873 .{ ._, ._ss, .max, .tmp2x, .tmp1x, ._, ._ },
141874 .{ ._, ._ss, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
141875 .{ ._, ._ps, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
141876 } },
141877 }, .{
141878 .required_features = .{ .sse, null, null, null },
141879 .dst_constraints = .{ .{ .float = .dword }, .any },
141880 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
141881 .patterns = &.{
141882 .{ .src = .{ .to_mem, .none, .none } },
141883 },
141884 .extra_temps = .{
141885 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141886 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141887 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141888 .unused,
141889 .unused,
141890 .unused,
141891 .unused,
141892 .unused,
141893 .unused,
141894 .unused,
141895 .unused,
141896 },
141897 .dst_temps = .{ .{ .rc = .sse }, .unused },
141898 .clobbers = .{ .eflags = true },
141899 .each = .{ .once = &.{
141900 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
141901 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
141902 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
141903 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
141904 .{ ._, ._ps, .max, .tmp2x, .tmp1x, ._, ._ },
141905 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
141906 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
141907 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
141908 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
141909 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
141910 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141911 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
141912 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
141913 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
141914 .{ ._, ._ps, .max, .tmp2x, .tmp1x, ._, ._ },
141915 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
141916 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
141917 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
141918 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
141919 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
141920 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
141921 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
141922 .{ ._, ._ss, .max, .tmp2x, .tmp1x, ._, ._ },
141923 .{ ._, ._ss, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
141924 .{ ._, ._ps, .@"and", .dst0x, .tmp1x, ._, ._ },
141925 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
141926 .{ ._, ._ps, .@"or", .dst0x, .tmp1x, ._, ._ },
141927 } },
141928 }, .{
141929 .required_features = .{ .avx512f, null, null, null },
141930 .dst_constraints = .{ .{ .float = .dword }, .any },
141931 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
141932 .patterns = &.{
141933 .{ .src = .{ .to_mem, .none, .none } },
141934 },
141935 .extra_temps = .{
141936 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141937 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
141938 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
141939 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141940 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
141941 .unused,
141942 .unused,
141943 .unused,
141944 .unused,
141945 .unused,
141946 .unused,
141947 },
141948 .dst_temps = .{ .{ .rc = .sse }, .unused },
141949 .clobbers = .{ .eflags = true },
141950 .each = .{ .once = &.{
141951 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
141952 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
141953 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
141954 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
141955 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
141956 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
141957 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
141958 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
141959 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
141960 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
141961 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
141962 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
141963 .{ .@"0:", .v_ps, .mova, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
141964 .{ ._, .v_ps, .max, .tmp4y, .dst0y, .tmp3y, ._ },
141965 .{ ._, .v_ps, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
141966 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
141967 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
141968 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
141969 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
141970 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141971 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141972 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141973 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
141974 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141975 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141976 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141977 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
141978 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
141979 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
141980 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
141981 } },
141982 }, .{
141983 .required_features = .{ .avx, null, null, null },
141984 .dst_constraints = .{ .{ .float = .dword }, .any },
141985 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
141986 .patterns = &.{
141987 .{ .src = .{ .to_mem, .none, .none } },
141988 },
141989 .extra_temps = .{
141990 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
141991 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
141992 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
141993 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141994 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
141995 .unused,
141996 .unused,
141997 .unused,
141998 .unused,
141999 .unused,
142000 .unused,
142001 },
142002 .dst_temps = .{ .{ .rc = .sse }, .unused },
142003 .clobbers = .{ .eflags = true },
142004 .each = .{ .once = &.{
142005 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
142006 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
142007 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
142008 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
142009 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
142010 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
142011 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
142012 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142013 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142014 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142015 .{ .@"0:", .v_ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
142016 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142017 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142018 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142019 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142020 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142021 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
142022 .{ ._, .v_ps, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142023 .{ ._, .v_ps, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142024 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142025 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
142026 .{ ._, .v_ss, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142027 .{ ._, .v_ss, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142028 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142029 } },
142030 }, .{
142031 .required_features = .{ .sse4_1, null, null, null },
142032 .dst_constraints = .{ .{ .float = .dword }, .any },
142033 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
142034 .patterns = &.{
142035 .{ .src = .{ .to_mem, .none, .none } },
142036 },
142037 .extra_temps = .{
142038 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142039 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
142040 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
142041 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
142042 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
142043 .unused,
142044 .unused,
142045 .unused,
142046 .unused,
142047 .unused,
142048 .unused,
142049 },
142050 .dst_temps = .{ .{ .rc = .sse }, .unused },
142051 .clobbers = .{ .eflags = true },
142052 .each = .{ .once = &.{
142053 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
142054 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
142055 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
142056 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
142057 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
142058 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
142059 .{ .@"0:", ._ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
142060 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
142061 .{ ._, ._ps, .max, .tmp4x, .tmp3x, ._, ._ },
142062 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
142063 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
142064 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142065 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142066 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
142067 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
142068 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
142069 .{ ._, ._ps, .max, .tmp4x, .tmp3x, ._, ._ },
142070 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
142071 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
142072 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
142073 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
142074 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
142075 .{ ._, ._ss, .max, .tmp4x, .tmp3x, ._, ._ },
142076 .{ ._, ._ss, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
142077 .{ ._, ._ps, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
142078 } },
142079 }, .{
142080 .required_features = .{ .sse, null, null, null },
142081 .dst_constraints = .{ .{ .float = .dword }, .any },
142082 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
142083 .patterns = &.{
142084 .{ .src = .{ .to_mem, .none, .none } },
142085 },
142086 .extra_temps = .{
142087 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142088 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
142089 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
142090 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
142091 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
142092 .unused,
142093 .unused,
142094 .unused,
142095 .unused,
142096 .unused,
142097 .unused,
142098 },
142099 .dst_temps = .{ .{ .rc = .sse }, .unused },
142100 .clobbers = .{ .eflags = true },
142101 .each = .{ .once = &.{
142102 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
142103 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
142104 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
142105 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
142106 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
142107 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
142108 .{ .@"0:", ._ps, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
142109 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
142110 .{ ._, ._ps, .max, .tmp4x, .tmp3x, ._, ._ },
142111 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
142112 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
142113 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
142114 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
142115 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142116 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142117 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
142118 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
142119 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
142120 .{ ._, ._ps, .max, .tmp4x, .tmp3x, ._, ._ },
142121 .{ ._, ._ps, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
142122 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
142123 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
142124 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
142125 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
142126 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
142127 .{ ._, ._ps, .mova, .tmp4x, .dst0x, ._, ._ },
142128 .{ ._, ._ss, .max, .tmp4x, .tmp3x, ._, ._ },
142129 .{ ._, ._ss, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
142130 .{ ._, ._ps, .@"and", .dst0x, .tmp3x, ._, ._ },
142131 .{ ._, ._ps, .andn, .tmp3x, .tmp4x, ._, ._ },
142132 .{ ._, ._ps, .@"or", .dst0x, .tmp3x, ._, ._ },
142133 } },
142134 }, .{
142135 .required_features = .{ .avx, null, null, null },
142136 .dst_constraints = .{ .{ .float = .qword }, .any },
142137 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
142138 .patterns = &.{
142139 .{ .src = .{ .to_sse, .none, .none } },
142140 },
142141 .extra_temps = .{
142142 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142143 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142144 .unused,
142145 .unused,
142146 .unused,
142147 .unused,
142148 .unused,
142149 .unused,
142150 .unused,
142151 .unused,
142152 .unused,
142153 },
142154 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
142155 .each = .{ .once = &.{
142156 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
142157 .{ ._, .v_sd, .max, .tmp1x, .src0x, .tmp0x, ._ },
142158 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
142159 .{ ._, .v_pd, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
142160 } },
142161 }, .{
142162 .required_features = .{ .sse4_1, null, null, null },
142163 .dst_constraints = .{ .{ .float = .qword }, .any },
142164 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
142165 .patterns = &.{
142166 .{ .src = .{ .to_mut_sse, .none, .none } },
142167 },
142168 .extra_temps = .{
142169 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
142170 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142171 .unused,
142172 .unused,
142173 .unused,
142174 .unused,
142175 .unused,
142176 .unused,
142177 .unused,
142178 .unused,
142179 .unused,
142180 },
142181 .dst_temps = .{ .{ .ref = .src0 }, .unused },
142182 .each = .{ .once = &.{
142183 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
142184 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
142185 .{ ._, ._pd, .mova, .tmp1x, .src0x, ._, ._ },
142186 .{ ._, ._sd, .max, .tmp1x, .tmp0x, ._, ._ },
142187 .{ ._, ._sd, .cmp, .tmp0x, .tmp0x, .sp(.ord), ._ },
142188 .{ ._, ._pd, .blendv, .dst0x, .tmp1x, .tmp0x, ._ },
142189 } },
142190 }, .{
142191 .required_features = .{ .sse2, null, null, null },
142192 .dst_constraints = .{ .{ .float = .qword }, .any },
142193 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
142194 .patterns = &.{
142195 .{ .src = .{ .to_mut_sse, .none, .none } },
142196 },
142197 .extra_temps = .{
142198 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142199 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142200 .unused,
142201 .unused,
142202 .unused,
142203 .unused,
142204 .unused,
142205 .unused,
142206 .unused,
142207 .unused,
142208 .unused,
142209 },
142210 .dst_temps = .{ .{ .ref = .src0 }, .unused },
142211 .each = .{ .once = &.{
142212 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
142213 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
142214 .{ ._, ._pd, .mova, .tmp1x, .src0x, ._, ._ },
142215 .{ ._, ._sd, .max, .tmp1x, .tmp0x, ._, ._ },
142216 .{ ._, ._sd, .cmp, .tmp0x, .tmp0x, .sp(.unord), ._ },
142217 .{ ._, ._pd, .@"and", .dst0x, .tmp0x, ._, ._ },
142218 .{ ._, ._pd, .andn, .tmp0x, .tmp1x, ._, ._ },
142219 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
142220 } },
142221 }, .{
142222 .required_features = .{ .avx, null, null, null },
142223 .dst_constraints = .{ .{ .float = .qword }, .any },
142224 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
142225 .patterns = &.{
142226 .{ .src = .{ .to_sse, .none, .none } },
142227 },
142228 .extra_temps = .{
142229 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142230 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142231 .unused,
142232 .unused,
142233 .unused,
142234 .unused,
142235 .unused,
142236 .unused,
142237 .unused,
142238 .unused,
142239 .unused,
142240 },
142241 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
142242 .each = .{ .once = &.{
142243 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
142244 .{ ._, .v_sd, .max, .tmp1x, .src0x, .tmp0x, ._ },
142245 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
142246 .{ ._, .v_pd, .blendv, .tmp0x, .src0x, .tmp1x, .tmp0x },
142247 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
142248 .{ ._, .v_sd, .max, .tmp1x, .tmp0x, .dst0x, ._ },
142249 .{ ._, .v_sd, .cmp, .dst0x, .dst0x, .dst0x, .vp(.ord) },
142250 .{ ._, .v_pd, .blendv, .dst0x, .tmp0x, .tmp1x, .dst0x },
142251 } },
142252 }, .{
142253 .required_features = .{ .avx, null, null, null },
142254 .dst_constraints = .{ .{ .float = .qword }, .any },
142255 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
142256 .patterns = &.{
142257 .{ .src = .{ .to_sse, .none, .none } },
142258 },
142259 .extra_temps = .{
142260 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142261 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142262 .unused,
142263 .unused,
142264 .unused,
142265 .unused,
142266 .unused,
142267 .unused,
142268 .unused,
142269 .unused,
142270 .unused,
142271 },
142272 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
142273 .each = .{ .once = &.{
142274 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
142275 .{ ._, .v_pd, .max, .tmp1x, .src0x, .tmp0x, ._ },
142276 .{ ._, .v_pd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
142277 .{ ._, .v_pd, .blendv, .dst0x, .src0x, .tmp1x, .tmp0x },
142278 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
142279 .{ ._, .v_sd, .max, .tmp1x, .dst0x, .tmp0x, ._ },
142280 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
142281 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
142282 } },
142283 }, .{
142284 .required_features = .{ .avx512f, null, null, null },
142285 .dst_constraints = .{ .{ .float = .qword }, .any },
142286 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
142287 .patterns = &.{
142288 .{ .src = .{ .to_mem, .none, .none } },
142289 },
142290 .extra_temps = .{
142291 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
142292 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
142293 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
142294 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
142295 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
142296 .unused,
142297 .unused,
142298 .unused,
142299 .unused,
142300 .unused,
142301 .unused,
142302 },
142303 .dst_temps = .{ .{ .rc = .sse }, .unused },
142304 .each = .{ .once = &.{
142305 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
142306 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
142307 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
142308 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
142309 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
142310 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
142311 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
142312 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
142313 .{ ._, .v_pd, .max, .tmp4y, .dst0y, .tmp3y, ._ },
142314 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
142315 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
142316 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
142317 .{ ._, .v_pd, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142318 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142319 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142320 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
142321 .{ ._, .v_sd, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142322 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142323 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142324 } },
142325 }, .{
142326 .required_features = .{ .avx512f, null, null, null },
142327 .dst_constraints = .{ .{ .float = .qword }, .any },
142328 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
142329 .patterns = &.{
142330 .{ .src = .{ .to_mem, .none, .none } },
142331 },
142332 .extra_temps = .{
142333 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142334 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142335 .unused,
142336 .unused,
142337 .unused,
142338 .unused,
142339 .unused,
142340 .unused,
142341 .unused,
142342 .unused,
142343 .unused,
142344 },
142345 .dst_temps = .{ .{ .rc = .sse }, .unused },
142346 .each = .{ .once = &.{
142347 .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ },
142348 .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
142349 .{ ._, .v_pd, .max, .tmp1y, .dst0y, .tmp0y, ._ },
142350 .{ ._, .v_pd, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.ord) },
142351 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp1y, .tmp0y },
142352 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
142353 .{ ._, .v_pd, .max, .tmp1x, .dst0x, .tmp0x, ._ },
142354 .{ ._, .v_pd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
142355 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
142356 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
142357 .{ ._, .v_sd, .max, .tmp1x, .dst0x, .tmp0x, ._ },
142358 .{ ._, .v_sd, .cmp, .tmp0x, .tmp0x, .tmp0x, .vp(.ord) },
142359 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp1x, .tmp0x },
142360 } },
142361 }, .{
142362 .required_features = .{ .avx, null, null, null },
142363 .dst_constraints = .{ .{ .float = .qword }, .any },
142364 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
142365 .patterns = &.{
142366 .{ .src = .{ .to_mem, .none, .none } },
142367 },
142368 .extra_temps = .{
142369 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142370 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142371 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142372 .unused,
142373 .unused,
142374 .unused,
142375 .unused,
142376 .unused,
142377 .unused,
142378 .unused,
142379 .unused,
142380 },
142381 .dst_temps = .{ .{ .rc = .sse }, .unused },
142382 .clobbers = .{ .eflags = true },
142383 .each = .{ .once = &.{
142384 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
142385 .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
142386 .{ .@"0:", .v_pd, .mova, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
142387 .{ ._, .v_pd, .max, .tmp2y, .dst0y, .tmp1y, ._ },
142388 .{ ._, .v_pd, .cmp, .tmp1y, .tmp1y, .tmp1y, .vp(.ord) },
142389 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp2y, .tmp1y },
142390 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
142391 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142392 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
142393 .{ ._, .v_pd, .max, .tmp2x, .dst0x, .tmp1x, ._ },
142394 .{ ._, .v_pd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
142395 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
142396 .{ ._, .v_pd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
142397 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
142398 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
142399 .{ ._, .v_sd, .max, .tmp2x, .dst0x, .tmp1x, ._ },
142400 .{ ._, .v_sd, .cmp, .tmp1x, .tmp1x, .tmp1x, .vp(.ord) },
142401 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp2x, .tmp1x },
142402 } },
142403 }, .{
142404 .required_features = .{ .sse4_1, null, null, null },
142405 .dst_constraints = .{ .{ .float = .qword }, .any },
142406 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
142407 .patterns = &.{
142408 .{ .src = .{ .to_mem, .none, .none } },
142409 },
142410 .extra_temps = .{
142411 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142412 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
142413 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142414 .unused,
142415 .unused,
142416 .unused,
142417 .unused,
142418 .unused,
142419 .unused,
142420 .unused,
142421 .unused,
142422 },
142423 .dst_temps = .{ .{ .rc = .sse }, .unused },
142424 .clobbers = .{ .eflags = true },
142425 .each = .{ .once = &.{
142426 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
142427 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
142428 .{ .@"0:", ._pd, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
142429 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
142430 .{ ._, ._pd, .max, .tmp2x, .tmp1x, ._, ._ },
142431 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
142432 .{ ._, ._pd, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
142433 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142434 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142435 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
142436 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
142437 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
142438 .{ ._, ._sd, .max, .tmp2x, .tmp1x, ._, ._ },
142439 .{ ._, ._sd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
142440 .{ ._, ._pd, .blendv, .dst0x, .tmp2x, .tmp1x, ._ },
142441 } },
142442 }, .{
142443 .required_features = .{ .sse2, null, null, null },
142444 .dst_constraints = .{ .{ .float = .qword }, .any },
142445 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
142446 .patterns = &.{
142447 .{ .src = .{ .to_mem, .none, .none } },
142448 },
142449 .extra_temps = .{
142450 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142451 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142452 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142453 .unused,
142454 .unused,
142455 .unused,
142456 .unused,
142457 .unused,
142458 .unused,
142459 .unused,
142460 .unused,
142461 },
142462 .dst_temps = .{ .{ .rc = .sse }, .unused },
142463 .clobbers = .{ .eflags = true },
142464 .each = .{ .once = &.{
142465 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
142466 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
142467 .{ .@"0:", ._pd, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
142468 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
142469 .{ ._, ._pd, .max, .tmp2x, .tmp1x, ._, ._ },
142470 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
142471 .{ ._, ._pd, .@"and", .dst0x, .tmp1x, ._, ._ },
142472 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
142473 .{ ._, ._pd, .@"or", .dst0x, .tmp1x, ._, ._ },
142474 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142475 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142476 .{ ._, ._pd, .xor, .tmp1x, .tmp1x, ._, ._ },
142477 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
142478 .{ ._, ._pd, .mova, .tmp2x, .dst0x, ._, ._ },
142479 .{ ._, ._sd, .max, .tmp2x, .tmp1x, ._, ._ },
142480 .{ ._, ._sd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
142481 .{ ._, ._pd, .@"and", .dst0x, .tmp1x, ._, ._ },
142482 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
142483 .{ ._, ._pd, .@"or", .dst0x, .tmp1x, ._, ._ },
142484 } },
142485 }, .{
142486 .required_features = .{ .avx512f, null, null, null },
142487 .dst_constraints = .{ .{ .float = .qword }, .any },
142488 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
142489 .patterns = &.{
142490 .{ .src = .{ .to_mem, .none, .none } },
142491 },
142492 .extra_temps = .{
142493 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142494 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
142495 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
142496 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
142497 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
142498 .unused,
142499 .unused,
142500 .unused,
142501 .unused,
142502 .unused,
142503 .unused,
142504 },
142505 .dst_temps = .{ .{ .rc = .sse }, .unused },
142506 .clobbers = .{ .eflags = true },
142507 .each = .{ .once = &.{
142508 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
142509 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
142510 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
142511 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
142512 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
142513 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
142514 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
142515 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
142516 .{ ._, .v_pd, .max, .tmp4y, .dst0y, .tmp3y, ._ },
142517 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
142518 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
142519 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
142520 .{ .@"0:", .v_pd, .mova, .tmp3y, .memi(.src0y, .tmp0), ._, ._ },
142521 .{ ._, .v_pd, .max, .tmp4y, .dst0y, .tmp3y, ._ },
142522 .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .tmp3y, .vp(.ord) },
142523 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .tmp4y, .tmp3y },
142524 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
142525 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142526 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
142527 .{ ._, .v_pd, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142528 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142529 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142530 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
142531 .{ ._, .v_sd, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142532 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142533 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142534 } },
142535 }, .{
142536 .required_features = .{ .avx, null, null, null },
142537 .dst_constraints = .{ .{ .float = .qword }, .any },
142538 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
142539 .patterns = &.{
142540 .{ .src = .{ .to_mem, .none, .none } },
142541 },
142542 .extra_temps = .{
142543 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142544 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
142545 .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
142546 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142547 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142548 .unused,
142549 .unused,
142550 .unused,
142551 .unused,
142552 .unused,
142553 .unused,
142554 },
142555 .dst_temps = .{ .{ .rc = .sse }, .unused },
142556 .clobbers = .{ .eflags = true },
142557 .each = .{ .once = &.{
142558 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
142559 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
142560 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
142561 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
142562 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
142563 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
142564 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
142565 .{ ._, .v_pd, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142566 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142567 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142568 .{ .@"0:", .v_pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
142569 .{ ._, .v_pd, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142570 .{ ._, .v_pd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142571 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142572 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142573 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142574 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
142575 .{ ._, .v_sd, .max, .tmp4x, .dst0x, .tmp3x, ._ },
142576 .{ ._, .v_sd, .cmp, .tmp3x, .tmp3x, .tmp3x, .vp(.ord) },
142577 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .tmp4x, .tmp3x },
142578 } },
142579 }, .{
142580 .required_features = .{ .sse4_1, null, null, null },
142581 .dst_constraints = .{ .{ .float = .qword }, .any },
142582 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
142583 .patterns = &.{
142584 .{ .src = .{ .to_mem, .none, .none } },
142585 },
142586 .extra_temps = .{
142587 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142588 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
142589 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
142590 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
142591 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142592 .unused,
142593 .unused,
142594 .unused,
142595 .unused,
142596 .unused,
142597 .unused,
142598 },
142599 .dst_temps = .{ .{ .rc = .sse }, .unused },
142600 .clobbers = .{ .eflags = true },
142601 .each = .{ .once = &.{
142602 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
142603 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
142604 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
142605 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
142606 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
142607 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
142608 .{ .@"0:", ._pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
142609 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
142610 .{ ._, ._pd, .max, .tmp4x, .tmp3x, ._, ._ },
142611 .{ ._, ._pd, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
142612 .{ ._, ._pd, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
142613 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142614 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142615 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
142616 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
142617 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
142618 .{ ._, ._sd, .max, .tmp4x, .tmp3x, ._, ._ },
142619 .{ ._, ._sd, .cmp, .tmp3x, .tmp3x, .sp(.ord), ._ },
142620 .{ ._, ._pd, .blendv, .dst0x, .tmp4x, .tmp3x, ._ },
142621 } },
142622 }, .{
142623 .required_features = .{ .sse2, null, null, null },
142624 .dst_constraints = .{ .{ .float = .qword }, .any },
142625 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
142626 .patterns = &.{
142627 .{ .src = .{ .to_mem, .none, .none } },
142628 },
142629 .extra_temps = .{
142630 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142631 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
142632 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -nan } } },
142633 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142634 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
142635 .unused,
142636 .unused,
142637 .unused,
142638 .unused,
142639 .unused,
142640 .unused,
142641 },
142642 .dst_temps = .{ .{ .rc = .sse }, .unused },
142643 .clobbers = .{ .eflags = true },
142644 .each = .{ .once = &.{
142645 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
142646 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
142647 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
142648 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
142649 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
142650 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
142651 .{ .@"0:", ._pd, .mova, .tmp3x, .memi(.src0x, .tmp0), ._, ._ },
142652 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
142653 .{ ._, ._pd, .max, .tmp4x, .tmp3x, ._, ._ },
142654 .{ ._, ._pd, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
142655 .{ ._, ._pd, .@"and", .dst0x, .tmp3x, ._, ._ },
142656 .{ ._, ._pd, .andn, .tmp3x, .tmp4x, ._, ._ },
142657 .{ ._, ._pd, .@"or", .dst0x, .tmp3x, ._, ._ },
142658 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142659 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142660 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
142661 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
142662 .{ ._, ._pd, .mova, .tmp4x, .dst0x, ._, ._ },
142663 .{ ._, ._sd, .max, .tmp4x, .tmp3x, ._, ._ },
142664 .{ ._, ._sd, .cmp, .tmp3x, .tmp3x, .sp(.unord), ._ },
142665 .{ ._, ._pd, .@"and", .dst0x, .tmp3x, ._, ._ },
142666 .{ ._, ._pd, .andn, .tmp3x, .tmp4x, ._, ._ },
142667 .{ ._, ._pd, .@"or", .dst0x, .tmp3x, ._, ._ },
142668 } },
142669 }, .{
142670 .required_features = .{ .x87, .cmov, null, null },
142671 .dst_constraints = .{ .{ .float = .qword }, .any },
142672 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
142673 .patterns = &.{
142674 .{ .src = .{ .to_mem, .none, .none } },
142675 },
142676 .extra_temps = .{
142677 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142678 .{ .type = .f64, .kind = .{ .reg = .st7 } },
142679 .{ .type = .f64, .kind = .{ .reg = .st6 } },
142680 .unused,
142681 .unused,
142682 .unused,
142683 .unused,
142684 .unused,
142685 .unused,
142686 .unused,
142687 .unused,
142688 },
142689 .dst_temps = .{ .mem, .unused },
142690 .clobbers = .{ .eflags = true },
142691 .each = .{ .once = &.{
142692 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
142693 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
142694 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
142695 .{ ._, .f_, .ucomi, .tmp2t, .tmp2t, ._, ._ },
142696 .{ ._, .f_u, .cmov, .tmp2t, .tmp1t, ._, ._ },
142697 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142698 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
142699 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142700 .{ ._, .f_nb, .cmov, .tmp2t, .tmp1t, ._, ._ },
142701 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
142702 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
142703 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142704 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
142705 } },
142706 }, .{
142707 .required_features = .{ .sahf, .x87, null, null },
142708 .dst_constraints = .{ .{ .float = .qword }, .any },
142709 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
142710 .patterns = &.{
142711 .{ .src = .{ .to_mem, .none, .none } },
142712 },
142713 .extra_temps = .{
142714 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142715 .{ .type = .f64, .kind = .{ .reg = .st7 } },
142716 .{ .type = .f64, .kind = .{ .reg = .st6 } },
142717 .{ .type = .u16, .kind = .{ .reg = .ax } },
142718 .unused,
142719 .unused,
142720 .unused,
142721 .unused,
142722 .unused,
142723 .unused,
142724 .unused,
142725 },
142726 .dst_temps = .{ .mem, .unused },
142727 .clobbers = .{ .eflags = true },
142728 .each = .{ .once = &.{
142729 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
142730 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
142731 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
142732 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
142733 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
142734 .{ ._, ._, .sahf, ._, ._, ._, ._ },
142735 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
142736 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142737 .{ ._, .f_, .xam, ._, ._, ._, ._ },
142738 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
142739 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
142740 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
142741 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142742 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
142743 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
142744 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142745 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
142746 } },
142747 }, .{
142748 .required_features = .{ .x87, null, null, null },
142749 .dst_constraints = .{ .{ .float = .qword }, .any },
142750 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
142751 .patterns = &.{
142752 .{ .src = .{ .to_mem, .none, .none } },
142753 },
142754 .extra_temps = .{
142755 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142756 .{ .type = .f64, .kind = .{ .reg = .st7 } },
142757 .{ .type = .f64, .kind = .{ .reg = .st6 } },
142758 .{ .type = .u16, .kind = .{ .reg = .ax } },
142759 .unused,
142760 .unused,
142761 .unused,
142762 .unused,
142763 .unused,
142764 .unused,
142765 .unused,
142766 },
142767 .dst_temps = .{ .mem, .unused },
142768 .clobbers = .{ .eflags = true },
142769 .each = .{ .once = &.{
142770 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
142771 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
142772 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
142773 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
142774 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
142775 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
142776 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
142777 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142778 .{ ._, .f_, .xam, ._, ._, ._, ._ },
142779 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
142780 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
142781 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
142782 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142783 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
142784 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
142785 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142786 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
142787 } },
142788 }, .{
142789 .required_features = .{ .x87, .cmov, null, null },
142790 .dst_constraints = .{ .{ .float = .tbyte }, .any },
142791 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
142792 .patterns = &.{
142793 .{ .src = .{ .to_mem, .none, .none } },
142794 },
142795 .extra_temps = .{
142796 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142797 .{ .type = .f80, .kind = .{ .reg = .st7 } },
142798 .{ .type = .f80, .kind = .{ .reg = .st6 } },
142799 .unused,
142800 .unused,
142801 .unused,
142802 .unused,
142803 .unused,
142804 .unused,
142805 .unused,
142806 .unused,
142807 },
142808 .dst_temps = .{ .{ .rc = .x87 }, .unused },
142809 .clobbers = .{ .eflags = true },
142810 .each = .{ .once = &.{
142811 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
142812 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
142813 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
142814 .{ ._, .f_, .ucomi, .tmp2t, .tmp2t, ._, ._ },
142815 .{ ._, .f_u, .cmov, .tmp2t, .tmp1t, ._, ._ },
142816 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142817 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
142818 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142819 .{ ._, .f_nb, .cmov, .tmp2t, .tmp1t, ._, ._ },
142820 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
142821 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142822 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142823 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
142824 } },
142825 }, .{
142826 .required_features = .{ .sahf, .x87, null, null },
142827 .dst_constraints = .{ .{ .float = .tbyte }, .any },
142828 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
142829 .patterns = &.{
142830 .{ .src = .{ .to_mem, .none, .none } },
142831 },
142832 .extra_temps = .{
142833 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142834 .{ .type = .f80, .kind = .{ .reg = .st7 } },
142835 .{ .type = .f80, .kind = .{ .reg = .st6 } },
142836 .{ .type = .u16, .kind = .{ .reg = .ax } },
142837 .unused,
142838 .unused,
142839 .unused,
142840 .unused,
142841 .unused,
142842 .unused,
142843 .unused,
142844 },
142845 .dst_temps = .{ .{ .rc = .x87 }, .unused },
142846 .clobbers = .{ .eflags = true },
142847 .each = .{ .once = &.{
142848 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
142849 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
142850 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
142851 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
142852 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
142853 .{ ._, ._, .sahf, ._, ._, ._, ._ },
142854 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
142855 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142856 .{ ._, .f_, .xam, ._, ._, ._, ._ },
142857 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
142858 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
142859 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
142860 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142861 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
142862 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142863 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142864 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
142865 } },
142866 }, .{
142867 .required_features = .{ .x87, null, null, null },
142868 .dst_constraints = .{ .{ .float = .tbyte }, .any },
142869 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
142870 .patterns = &.{
142871 .{ .src = .{ .to_mem, .none, .none } },
142872 },
142873 .extra_temps = .{
142874 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142875 .{ .type = .f80, .kind = .{ .reg = .st7 } },
142876 .{ .type = .f80, .kind = .{ .reg = .st6 } },
142877 .{ .type = .u16, .kind = .{ .reg = .ax } },
142878 .unused,
142879 .unused,
142880 .unused,
142881 .unused,
142882 .unused,
142883 .unused,
142884 .unused,
142885 },
142886 .dst_temps = .{ .{ .rc = .x87 }, .unused },
142887 .clobbers = .{ .eflags = true },
142888 .each = .{ .once = &.{
142889 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
142890 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
142891 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
142892 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
142893 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
142894 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
142895 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
142896 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142897 .{ ._, .f_, .xam, ._, ._, ._, ._ },
142898 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
142899 .{ ._, ._, .@"test", .tmp3h, .si(0b1_000_100), ._, ._ },
142900 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
142901 .{ ._, .f_, .xch, .tmp1t, ._, ._, ._ },
142902 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
142903 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142904 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142905 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
142906 } },
142907 }, .{
142908 .required_features = .{ .avx, null, null, null },
142909 .dst_constraints = .{ .{ .float = .xword }, .any },
142910 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
142911 .patterns = &.{
142912 .{ .src = .{ .to_mem, .none, .none } },
142913 },
142914 .call_frame = .{ .alignment = .@"16" },
142915 .extra_temps = .{
142916 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142917 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
142918 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
142919 .unused,
142920 .unused,
142921 .unused,
142922 .unused,
142923 .unused,
142924 .unused,
142925 .unused,
142926 .unused,
142927 },
142928 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
142929 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
142930 .each = .{ .once = &.{
142931 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
142932 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
142933 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
142934 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
142935 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142936 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142937 } },
142938 }, .{
142939 .required_features = .{ .sse2, null, null, null },
142940 .dst_constraints = .{ .{ .float = .xword }, .any },
142941 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
142942 .patterns = &.{
142943 .{ .src = .{ .to_mem, .none, .none } },
142944 },
142945 .call_frame = .{ .alignment = .@"16" },
142946 .extra_temps = .{
142947 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142948 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
142949 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
142950 .unused,
142951 .unused,
142952 .unused,
142953 .unused,
142954 .unused,
142955 .unused,
142956 .unused,
142957 .unused,
142958 },
142959 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
142960 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
142961 .each = .{ .once = &.{
142962 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
142963 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
142964 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
142965 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
142966 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142967 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142968 } },
142969 }, .{
142970 .required_features = .{ .sse, null, null, null },
142971 .dst_constraints = .{ .{ .float = .xword }, .any },
142972 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
142973 .patterns = &.{
142974 .{ .src = .{ .to_mem, .none, .none } },
142975 },
142976 .call_frame = .{ .alignment = .@"16" },
142977 .extra_temps = .{
142978 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
142979 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
142980 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
142981 .unused,
142982 .unused,
142983 .unused,
142984 .unused,
142985 .unused,
142986 .unused,
142987 .unused,
142988 .unused,
142989 },
142990 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
142991 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
142992 .each = .{ .once = &.{
142993 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
142994 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
142995 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
142996 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
142997 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
142998 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
142999 } },
143000 } },
143001 .Add => comptime &.{ .{
143002 .required_features = .{ .avx, null, null, null },
143003 .dst_constraints = .{ .{ .int = .byte }, .any },
143004 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
143005 .patterns = &.{
143006 .{ .src = .{ .to_sse, .none, .none } },
143007 },
143008 .extra_temps = .{
143009 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143010 .unused,
143011 .unused,
143012 .unused,
143013 .unused,
143014 .unused,
143015 .unused,
143016 .unused,
143017 .unused,
143018 .unused,
143019 .unused,
143020 },
143021 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143022 .each = .{ .once = &.{
143023 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
143024 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
143025 } },
143026 }, .{
143027 .required_features = .{ .sse2, null, null, null },
143028 .dst_constraints = .{ .{ .int = .byte }, .any },
143029 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
143030 .patterns = &.{
143031 .{ .src = .{ .to_mut_sse, .none, .none } },
143032 },
143033 .extra_temps = .{
143034 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143035 .unused,
143036 .unused,
143037 .unused,
143038 .unused,
143039 .unused,
143040 .unused,
143041 .unused,
143042 .unused,
143043 .unused,
143044 .unused,
143045 },
143046 .dst_temps = .{ .{ .ref = .src0 }, .unused },
143047 .each = .{ .once = &.{
143048 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
143049 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
143050 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143051 } },
143052 }, .{
143053 .required_features = .{ .avx, null, null, null },
143054 .dst_constraints = .{ .{ .int = .byte }, .any },
143055 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
143056 .patterns = &.{
143057 .{ .src = .{ .to_sse, .none, .none } },
143058 },
143059 .extra_temps = .{
143060 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143061 .unused,
143062 .unused,
143063 .unused,
143064 .unused,
143065 .unused,
143066 .unused,
143067 .unused,
143068 .unused,
143069 .unused,
143070 .unused,
143071 },
143072 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143073 .each = .{ .once = &.{
143074 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
143075 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
143076 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
143077 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143078 } },
143079 }, .{
143080 .required_features = .{ .sse2, null, null, null },
143081 .dst_constraints = .{ .{ .int = .byte }, .any },
143082 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
143083 .patterns = &.{
143084 .{ .src = .{ .to_mut_sse, .none, .none } },
143085 },
143086 .extra_temps = .{
143087 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143088 .unused,
143089 .unused,
143090 .unused,
143091 .unused,
143092 .unused,
143093 .unused,
143094 .unused,
143095 .unused,
143096 .unused,
143097 .unused,
143098 },
143099 .dst_temps = .{ .{ .ref = .src0 }, .unused },
143100 .each = .{ .once = &.{
143101 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
143102 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143103 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
143104 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
143105 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143106 } },
143107 }, .{
143108 .required_features = .{ .avx, null, null, null },
143109 .dst_constraints = .{ .{ .int = .byte }, .any },
143110 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
143111 .patterns = &.{
143112 .{ .src = .{ .to_sse, .none, .none } },
143113 },
143114 .extra_temps = .{
143115 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143116 .unused,
143117 .unused,
143118 .unused,
143119 .unused,
143120 .unused,
143121 .unused,
143122 .unused,
143123 .unused,
143124 .unused,
143125 .unused,
143126 },
143127 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143128 .each = .{ .once = &.{
143129 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
143130 .{ ._, .vp_b, .add, .tmp0x, .src0x, .tmp0x, ._ },
143131 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
143132 .{ ._, .vp_b, .add, .dst0x, .tmp0x, .dst0x, ._ },
143133 } },
143134 }, .{
143135 .required_features = .{ .sse2, null, null, null },
143136 .dst_constraints = .{ .{ .int = .byte }, .any },
143137 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
143138 .patterns = &.{
143139 .{ .src = .{ .to_mut_sse, .none, .none } },
143140 },
143141 .extra_temps = .{
143142 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143143 .unused,
143144 .unused,
143145 .unused,
143146 .unused,
143147 .unused,
143148 .unused,
143149 .unused,
143150 .unused,
143151 .unused,
143152 .unused,
143153 },
143154 .dst_temps = .{ .{ .ref = .src0 }, .unused },
143155 .each = .{ .once = &.{
143156 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
143157 .{ ._, .p_b, .add, .tmp0x, .src0x, ._, ._ },
143158 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
143159 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143160 } },
143161 }, .{
143162 .required_features = .{ .avx, null, null, null },
143163 .dst_constraints = .{ .{ .int = .byte }, .any },
143164 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
143165 .patterns = &.{
143166 .{ .src = .{ .to_sse, .none, .none } },
143167 },
143168 .extra_temps = .{
143169 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143170 .unused,
143171 .unused,
143172 .unused,
143173 .unused,
143174 .unused,
143175 .unused,
143176 .unused,
143177 .unused,
143178 .unused,
143179 .unused,
143180 },
143181 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143182 .each = .{ .once = &.{
143183 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
143184 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
143185 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
143186 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143187 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
143188 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143189 } },
143190 }, .{
143191 .required_features = .{ .sse2, null, null, null },
143192 .dst_constraints = .{ .{ .int = .byte }, .any },
143193 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
143194 .patterns = &.{
143195 .{ .src = .{ .to_mut_sse, .none, .none } },
143196 },
143197 .extra_temps = .{
143198 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143199 .unused,
143200 .unused,
143201 .unused,
143202 .unused,
143203 .unused,
143204 .unused,
143205 .unused,
143206 .unused,
143207 .unused,
143208 .unused,
143209 },
143210 .dst_temps = .{ .{ .ref = .src0 }, .unused },
143211 .each = .{ .once = &.{
143212 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
143213 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143214 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
143215 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143216 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
143217 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
143218 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143219 } },
143220 }, .{
143221 .required_features = .{ .avx, null, null, null },
143222 .dst_constraints = .{ .{ .int = .byte }, .any },
143223 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
143224 .patterns = &.{
143225 .{ .src = .{ .to_sse, .none, .none } },
143226 },
143227 .extra_temps = .{
143228 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
143229 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143230 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143231 .unused,
143232 .unused,
143233 .unused,
143234 .unused,
143235 .unused,
143236 .unused,
143237 .unused,
143238 .unused,
143239 },
143240 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143241 .each = .{ .once = &.{
143242 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143243 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
143244 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143245 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143246 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143247 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143248 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
143249 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143250 } },
143251 }, .{
143252 .required_features = .{ .sse2, null, null, null },
143253 .dst_constraints = .{ .{ .int = .byte }, .any },
143254 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
143255 .patterns = &.{
143256 .{ .src = .{ .to_mut_sse, .none, .none } },
143257 },
143258 .extra_temps = .{
143259 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
143260 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143261 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143262 .unused,
143263 .unused,
143264 .unused,
143265 .unused,
143266 .unused,
143267 .unused,
143268 .unused,
143269 .unused,
143270 },
143271 .dst_temps = .{ .{ .ref = .src0 }, .unused },
143272 .each = .{ .once = &.{
143273 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143274 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
143275 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143276 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143277 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143278 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143279 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
143280 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
143281 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143282 } },
143283 }, .{
143284 .required_features = .{ .avx, null, null, null },
143285 .dst_constraints = .{ .{ .int = .byte }, .any },
143286 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
143287 .patterns = &.{
143288 .{ .src = .{ .to_sse, .none, .none } },
143289 },
143290 .extra_temps = .{
143291 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143292 .unused,
143293 .unused,
143294 .unused,
143295 .unused,
143296 .unused,
143297 .unused,
143298 .unused,
143299 .unused,
143300 .unused,
143301 .unused,
143302 },
143303 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143304 .each = .{ .once = &.{
143305 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
143306 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
143307 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
143308 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143309 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
143310 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143311 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
143312 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143313 } },
143314 }, .{
143315 .required_features = .{ .sse2, null, null, null },
143316 .dst_constraints = .{ .{ .int = .byte }, .any },
143317 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
143318 .patterns = &.{
143319 .{ .src = .{ .to_mut_sse, .none, .none } },
143320 },
143321 .extra_temps = .{
143322 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143323 .unused,
143324 .unused,
143325 .unused,
143326 .unused,
143327 .unused,
143328 .unused,
143329 .unused,
143330 .unused,
143331 .unused,
143332 .unused,
143333 },
143334 .dst_temps = .{ .{ .ref = .src0 }, .unused },
143335 .each = .{ .once = &.{
143336 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
143337 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143338 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
143339 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143340 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
143341 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143342 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
143343 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
143344 .{ ._, .p_b, .add, .dst0x, .tmp0x, ._, ._ },
143345 } },
143346 }, .{
143347 .required_features = .{ .avx, null, null, null },
143348 .dst_constraints = .{ .{ .int = .byte }, .any },
143349 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
143350 .patterns = &.{
143351 .{ .src = .{ .to_sse, .none, .none } },
143352 },
143353 .extra_temps = .{
143354 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
143355 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143356 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143357 .unused,
143358 .unused,
143359 .unused,
143360 .unused,
143361 .unused,
143362 .unused,
143363 .unused,
143364 .unused,
143365 },
143366 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143367 .each = .{ .once = &.{
143368 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143369 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
143370 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143371 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143372 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143373 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143374 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143375 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143376 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
143377 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143378 } },
143379 }, .{
143380 .required_features = .{ .sse2, null, null, null },
143381 .dst_constraints = .{ .{ .int = .byte }, .any },
143382 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
143383 .patterns = &.{
143384 .{ .src = .{ .to_mut_sse, .none, .none } },
143385 },
143386 .extra_temps = .{
143387 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
143388 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143389 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143390 .unused,
143391 .unused,
143392 .unused,
143393 .unused,
143394 .unused,
143395 .unused,
143396 .unused,
143397 .unused,
143398 },
143399 .dst_temps = .{ .{ .ref = .src0 }, .unused },
143400 .each = .{ .once = &.{
143401 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143402 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
143403 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143404 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143405 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143406 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143407 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143408 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143409 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
143410 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
143411 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143412 } },
143413 }, .{
143414 .required_features = .{ .avx2, null, null, null },
143415 .dst_constraints = .{ .{ .int = .byte }, .any },
143416 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
143417 .patterns = &.{
143418 .{ .src = .{ .to_sse, .none, .none } },
143419 },
143420 .extra_temps = .{
143421 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143422 .unused,
143423 .unused,
143424 .unused,
143425 .unused,
143426 .unused,
143427 .unused,
143428 .unused,
143429 .unused,
143430 .unused,
143431 .unused,
143432 },
143433 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143434 .each = .{ .once = &.{
143435 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
143436 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
143437 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
143438 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143439 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
143440 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143441 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
143442 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143443 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
143444 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143445 } },
143446 }, .{
143447 .required_features = .{ .avx, null, null, null },
143448 .dst_constraints = .{ .{ .int = .byte }, .any },
143449 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
143450 .patterns = &.{
143451 .{ .src = .{ .to_sse, .none, .none } },
143452 },
143453 .extra_temps = .{
143454 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143455 .unused,
143456 .unused,
143457 .unused,
143458 .unused,
143459 .unused,
143460 .unused,
143461 .unused,
143462 .unused,
143463 .unused,
143464 .unused,
143465 },
143466 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143467 .each = .{ .once = &.{
143468 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
143469 .{ ._, .vp_b, .add, .dst0x, .src0x, .tmp0x, ._ },
143470 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
143471 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143472 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
143473 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143474 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
143475 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143476 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
143477 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143478 } },
143479 }, .{
143480 .required_features = .{ .avx2, null, null, null },
143481 .dst_constraints = .{ .{ .int = .byte }, .any },
143482 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
143483 .patterns = &.{
143484 .{ .src = .{ .to_sse, .none, .none } },
143485 },
143486 .extra_temps = .{
143487 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
143488 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143489 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143490 .unused,
143491 .unused,
143492 .unused,
143493 .unused,
143494 .unused,
143495 .unused,
143496 .unused,
143497 .unused,
143498 },
143499 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143500 .each = .{ .once = &.{
143501 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143502 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
143503 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
143504 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143505 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143506 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143507 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143508 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143509 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143510 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143511 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
143512 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143513 } },
143514 }, .{
143515 .required_features = .{ .avx, null, null, null },
143516 .dst_constraints = .{ .{ .int = .byte }, .any },
143517 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
143518 .patterns = &.{
143519 .{ .src = .{ .to_sse, .none, .none } },
143520 },
143521 .extra_temps = .{
143522 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
143523 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143524 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143525 .unused,
143526 .unused,
143527 .unused,
143528 .unused,
143529 .unused,
143530 .unused,
143531 .unused,
143532 .unused,
143533 },
143534 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143535 .each = .{ .once = &.{
143536 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143537 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
143538 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
143539 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143540 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143541 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143542 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143543 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143544 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143545 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143546 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
143547 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143548 } },
143549 }, .{
143550 .required_features = .{ .avx512f, null, null, null },
143551 .dst_constraints = .{ .{ .int = .byte }, .any },
143552 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
143553 .patterns = &.{
143554 .{ .src = .{ .to_mem, .none, .none } },
143555 },
143556 .extra_temps = .{
143557 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143558 .unused,
143559 .unused,
143560 .unused,
143561 .unused,
143562 .unused,
143563 .unused,
143564 .unused,
143565 .unused,
143566 .unused,
143567 .unused,
143568 },
143569 .dst_temps = .{ .{ .rc = .sse }, .unused },
143570 .each = .{ .once = &.{
143571 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
143572 .{ ._, .vp_b, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
143573 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
143574 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143575 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
143576 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143577 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
143578 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143579 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
143580 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143581 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
143582 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp0x, ._ },
143583 } },
143584 }, .{
143585 .required_features = .{ .avx512f, null, null, null },
143586 .dst_constraints = .{ .{ .int = .byte }, .any },
143587 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
143588 .patterns = &.{
143589 .{ .src = .{ .to_mem, .none, .none } },
143590 },
143591 .extra_temps = .{
143592 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
143593 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143594 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
143595 .unused,
143596 .unused,
143597 .unused,
143598 .unused,
143599 .unused,
143600 .unused,
143601 .unused,
143602 .unused,
143603 },
143604 .dst_temps = .{ .{ .rc = .sse }, .unused },
143605 .each = .{ .once = &.{
143606 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143607 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
143608 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
143609 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
143610 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
143611 .{ ._, .vp_b, .add, .dst0y, .dst0y, .tmp2y, ._ },
143612 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
143613 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143614 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143615 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143616 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143617 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143618 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143619 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143620 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
143621 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143622 } },
143623 }, .{
143624 .required_features = .{ .avx2, null, null, null },
143625 .dst_constraints = .{ .{ .int = .byte }, .any },
143626 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
143627 .patterns = &.{
143628 .{ .src = .{ .to_mem, .none, .none } },
143629 },
143630 .extra_temps = .{
143631 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143632 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143633 .unused,
143634 .unused,
143635 .unused,
143636 .unused,
143637 .unused,
143638 .unused,
143639 .unused,
143640 .unused,
143641 .unused,
143642 },
143643 .dst_temps = .{ .{ .rc = .sse }, .unused },
143644 .clobbers = .{ .eflags = true },
143645 .each = .{ .once = &.{
143646 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
143647 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
143648 .{ .@"0:", .vp_b, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
143649 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
143650 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
143651 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
143652 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143653 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
143654 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143655 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
143656 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143657 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
143658 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143659 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
143660 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143661 } },
143662 }, .{
143663 .required_features = .{ .avx, null, null, null },
143664 .dst_constraints = .{ .{ .int = .byte }, .any },
143665 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
143666 .patterns = &.{
143667 .{ .src = .{ .to_mem, .none, .none } },
143668 },
143669 .extra_temps = .{
143670 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143671 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143672 .unused,
143673 .unused,
143674 .unused,
143675 .unused,
143676 .unused,
143677 .unused,
143678 .unused,
143679 .unused,
143680 .unused,
143681 },
143682 .dst_temps = .{ .{ .rc = .sse }, .unused },
143683 .clobbers = .{ .eflags = true },
143684 .each = .{ .once = &.{
143685 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
143686 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
143687 .{ .@"0:", .vp_b, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
143688 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
143689 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
143690 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
143691 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143692 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
143693 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143694 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
143695 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143696 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
143697 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp1x, ._ },
143698 } },
143699 }, .{
143700 .required_features = .{ .sse2, null, null, null },
143701 .dst_constraints = .{ .{ .int = .byte }, .any },
143702 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
143703 .patterns = &.{
143704 .{ .src = .{ .to_mem, .none, .none } },
143705 },
143706 .extra_temps = .{
143707 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143708 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143709 .unused,
143710 .unused,
143711 .unused,
143712 .unused,
143713 .unused,
143714 .unused,
143715 .unused,
143716 .unused,
143717 .unused,
143718 },
143719 .dst_temps = .{ .{ .rc = .sse }, .unused },
143720 .clobbers = .{ .eflags = true },
143721 .each = .{ .once = &.{
143722 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
143723 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
143724 .{ .@"0:", .p_b, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
143725 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
143726 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
143727 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
143728 .{ ._, .p_b, .add, .dst0x, .tmp1x, ._, ._ },
143729 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
143730 .{ ._, .p_b, .add, .dst0x, .tmp1x, ._, ._ },
143731 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
143732 .{ ._, .p_b, .add, .dst0x, .tmp1x, ._, ._ },
143733 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
143734 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
143735 .{ ._, .p_b, .add, .dst0x, .tmp1x, ._, ._ },
143736 } },
143737 }, .{
143738 .required_features = .{ .avx512f, null, null, null },
143739 .dst_constraints = .{ .{ .int = .byte }, .any },
143740 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
143741 .patterns = &.{
143742 .{ .src = .{ .to_mem, .none, .none } },
143743 },
143744 .extra_temps = .{
143745 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143746 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143747 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
143748 .unused,
143749 .unused,
143750 .unused,
143751 .unused,
143752 .unused,
143753 .unused,
143754 .unused,
143755 .unused,
143756 },
143757 .dst_temps = .{ .{ .rc = .sse }, .unused },
143758 .clobbers = .{ .eflags = true },
143759 .each = .{ .once = &.{
143760 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143761 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
143762 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
143763 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
143764 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
143765 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
143766 .{ .@"0:", .vp_b, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
143767 .{ ._, .vp_b, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
143768 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
143769 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
143770 .{ ._, .vp_b, .add, .dst0y, .dst0y, .tmp2y, ._ },
143771 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
143772 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143773 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143774 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143775 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143776 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143777 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143778 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143779 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
143780 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143781 } },
143782 }, .{
143783 .required_features = .{ .avx2, null, null, null },
143784 .dst_constraints = .{ .{ .int = .byte }, .any },
143785 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
143786 .patterns = &.{
143787 .{ .src = .{ .to_mem, .none, .none } },
143788 },
143789 .extra_temps = .{
143790 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143791 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143792 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143793 .unused,
143794 .unused,
143795 .unused,
143796 .unused,
143797 .unused,
143798 .unused,
143799 .unused,
143800 .unused,
143801 },
143802 .dst_temps = .{ .{ .rc = .sse }, .unused },
143803 .clobbers = .{ .eflags = true },
143804 .each = .{ .once = &.{
143805 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143806 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
143807 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
143808 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
143809 .{ .@"0:", .vp_b, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
143810 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
143811 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
143812 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
143813 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143814 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143815 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143816 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143817 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143818 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143819 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143820 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
143821 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143822 } },
143823 }, .{
143824 .required_features = .{ .avx, null, null, null },
143825 .dst_constraints = .{ .{ .int = .byte }, .any },
143826 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
143827 .patterns = &.{
143828 .{ .src = .{ .to_mem, .none, .none } },
143829 },
143830 .extra_temps = .{
143831 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143832 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143833 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143834 .unused,
143835 .unused,
143836 .unused,
143837 .unused,
143838 .unused,
143839 .unused,
143840 .unused,
143841 .unused,
143842 },
143843 .dst_temps = .{ .{ .rc = .sse }, .unused },
143844 .clobbers = .{ .eflags = true },
143845 .each = .{ .once = &.{
143846 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143847 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
143848 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
143849 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
143850 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
143851 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143852 .{ .@"0:", .vp_b, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
143853 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
143854 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
143855 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143856 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143857 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143858 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143859 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143860 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143861 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
143862 .{ ._, .vp_b, .add, .dst0x, .dst0x, .tmp2x, ._ },
143863 } },
143864 }, .{
143865 .required_features = .{ .sse2, null, null, null },
143866 .dst_constraints = .{ .{ .int = .byte }, .any },
143867 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
143868 .patterns = &.{
143869 .{ .src = .{ .to_mem, .none, .none } },
143870 },
143871 .extra_temps = .{
143872 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143873 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
143874 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
143875 .unused,
143876 .unused,
143877 .unused,
143878 .unused,
143879 .unused,
143880 .unused,
143881 .unused,
143882 .unused,
143883 },
143884 .dst_temps = .{ .{ .rc = .sse }, .unused },
143885 .clobbers = .{ .eflags = true },
143886 .each = .{ .once = &.{
143887 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
143888 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
143889 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
143890 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
143891 .{ .@"0:", .p_b, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
143892 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
143893 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
143894 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143895 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143896 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
143897 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143898 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
143899 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143900 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
143901 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
143902 .{ ._, .p_b, .add, .dst0x, .tmp2x, ._, ._ },
143903 } },
143904 }, .{
143905 .required_features = .{ .slow_incdec, null, null, null },
143906 .dst_constraints = .{ .{ .int = .byte }, .any },
143907 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
143908 .patterns = &.{
143909 .{ .src = .{ .to_mem, .none, .none } },
143910 },
143911 .extra_temps = .{
143912 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143913 .unused,
143914 .unused,
143915 .unused,
143916 .unused,
143917 .unused,
143918 .unused,
143919 .unused,
143920 .unused,
143921 .unused,
143922 .unused,
143923 },
143924 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
143925 .clobbers = .{ .eflags = true },
143926 .each = .{ .once = &.{
143927 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
143928 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
143929 .{ .@"0:", ._, .add, .dst0b, .memi(.src0b, .tmp0), ._, ._ },
143930 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
143931 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
143932 } },
143933 }, .{
143934 .dst_constraints = .{ .{ .int = .byte }, .any },
143935 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
143936 .patterns = &.{
143937 .{ .src = .{ .to_mem, .none, .none } },
143938 },
143939 .extra_temps = .{
143940 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
143941 .unused,
143942 .unused,
143943 .unused,
143944 .unused,
143945 .unused,
143946 .unused,
143947 .unused,
143948 .unused,
143949 .unused,
143950 .unused,
143951 },
143952 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
143953 .clobbers = .{ .eflags = true },
143954 .each = .{ .once = &.{
143955 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
143956 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
143957 .{ .@"0:", ._, .add, .dst0b, .memi(.src0b, .tmp0), ._, ._ },
143958 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
143959 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
143960 } },
143961 }, .{
143962 .required_features = .{ .avx, .fast_hops, null, null },
143963 .dst_constraints = .{ .{ .int = .word }, .any },
143964 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
143965 .patterns = &.{
143966 .{ .src = .{ .to_sse, .none, .none } },
143967 },
143968 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143969 .each = .{ .once = &.{
143970 .{ ._, .vph_w, .add, .dst0x, .src0x, .src0x, ._ },
143971 } },
143972 }, .{
143973 .required_features = .{ .avx, null, null, null },
143974 .dst_constraints = .{ .{ .int = .word }, .any },
143975 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
143976 .patterns = &.{
143977 .{ .src = .{ .to_sse, .none, .none } },
143978 },
143979 .extra_temps = .{
143980 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
143981 .unused,
143982 .unused,
143983 .unused,
143984 .unused,
143985 .unused,
143986 .unused,
143987 .unused,
143988 .unused,
143989 .unused,
143990 .unused,
143991 },
143992 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
143993 .each = .{ .once = &.{
143994 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
143995 .{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
143996 } },
143997 }, .{
143998 .required_features = .{ .ssse3, .fast_hops, null, null },
143999 .dst_constraints = .{ .{ .int = .word }, .any },
144000 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
144001 .patterns = &.{
144002 .{ .src = .{ .to_mut_sse, .none, .none } },
144003 },
144004 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144005 .each = .{ .once = &.{
144006 .{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ },
144007 } },
144008 }, .{
144009 .required_features = .{ .sse2, null, null, null },
144010 .dst_constraints = .{ .{ .int = .word }, .any },
144011 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
144012 .patterns = &.{
144013 .{ .src = .{ .to_mut_sse, .none, .none } },
144014 },
144015 .extra_temps = .{
144016 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144017 .unused,
144018 .unused,
144019 .unused,
144020 .unused,
144021 .unused,
144022 .unused,
144023 .unused,
144024 .unused,
144025 .unused,
144026 .unused,
144027 },
144028 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144029 .each = .{ .once = &.{
144030 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
144031 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
144032 } },
144033 }, .{
144034 .required_features = .{ .avx, .fast_hops, null, null },
144035 .dst_constraints = .{ .{ .int = .word }, .any },
144036 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
144037 .patterns = &.{
144038 .{ .src = .{ .to_sse, .none, .none } },
144039 },
144040 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144041 .each = .{ .once = &.{
144042 .{ ._, .vph_w, .add, .dst0x, .src0x, .src0x, ._ },
144043 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144044 } },
144045 }, .{
144046 .required_features = .{ .avx, null, null, null },
144047 .dst_constraints = .{ .{ .int = .word }, .any },
144048 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
144049 .patterns = &.{
144050 .{ .src = .{ .to_sse, .none, .none } },
144051 },
144052 .extra_temps = .{
144053 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144054 .unused,
144055 .unused,
144056 .unused,
144057 .unused,
144058 .unused,
144059 .unused,
144060 .unused,
144061 .unused,
144062 .unused,
144063 .unused,
144064 },
144065 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144066 .each = .{ .once = &.{
144067 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
144068 .{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
144069 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
144070 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144071 } },
144072 }, .{
144073 .required_features = .{ .ssse3, .fast_hops, null, null },
144074 .dst_constraints = .{ .{ .int = .word }, .any },
144075 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
144076 .patterns = &.{
144077 .{ .src = .{ .to_mut_sse, .none, .none } },
144078 },
144079 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144080 .each = .{ .once = &.{
144081 .{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ },
144082 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144083 } },
144084 }, .{
144085 .required_features = .{ .sse2, null, null, null },
144086 .dst_constraints = .{ .{ .int = .word }, .any },
144087 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
144088 .patterns = &.{
144089 .{ .src = .{ .to_mut_sse, .none, .none } },
144090 },
144091 .extra_temps = .{
144092 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144093 .unused,
144094 .unused,
144095 .unused,
144096 .unused,
144097 .unused,
144098 .unused,
144099 .unused,
144100 .unused,
144101 .unused,
144102 .unused,
144103 },
144104 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144105 .each = .{ .once = &.{
144106 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
144107 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
144108 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
144109 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
144110 } },
144111 }, .{
144112 .required_features = .{ .avx, .fast_hops, null, null },
144113 .dst_constraints = .{ .{ .int = .word }, .any },
144114 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
144115 .patterns = &.{
144116 .{ .src = .{ .to_sse, .none, .none } },
144117 },
144118 .extra_temps = .{
144119 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144120 .unused,
144121 .unused,
144122 .unused,
144123 .unused,
144124 .unused,
144125 .unused,
144126 .unused,
144127 .unused,
144128 .unused,
144129 .unused,
144130 },
144131 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144132 .each = .{ .once = &.{
144133 .{ ._, .vph_w, .add, .tmp0x, .src0x, .src0x, ._ },
144134 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
144135 .{ ._, .vp_w, .add, .dst0x, .tmp0x, .dst0x, ._ },
144136 } },
144137 }, .{
144138 .required_features = .{ .avx, null, null, null },
144139 .dst_constraints = .{ .{ .int = .word }, .any },
144140 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
144141 .patterns = &.{
144142 .{ .src = .{ .to_sse, .none, .none } },
144143 },
144144 .extra_temps = .{
144145 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144146 .unused,
144147 .unused,
144148 .unused,
144149 .unused,
144150 .unused,
144151 .unused,
144152 .unused,
144153 .unused,
144154 .unused,
144155 .unused,
144156 },
144157 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144158 .each = .{ .once = &.{
144159 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
144160 .{ ._, .vp_w, .add, .tmp0x, .src0x, .tmp0x, ._ },
144161 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
144162 .{ ._, .vp_w, .add, .dst0x, .tmp0x, .dst0x, ._ },
144163 } },
144164 }, .{
144165 .required_features = .{ .ssse3, .fast_hops, null, null },
144166 .dst_constraints = .{ .{ .int = .word }, .any },
144167 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
144168 .patterns = &.{
144169 .{ .src = .{ .to_mut_sse, .none, .none } },
144170 },
144171 .extra_temps = .{
144172 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144173 .unused,
144174 .unused,
144175 .unused,
144176 .unused,
144177 .unused,
144178 .unused,
144179 .unused,
144180 .unused,
144181 .unused,
144182 .unused,
144183 },
144184 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144185 .each = .{ .once = &.{
144186 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
144187 .{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ },
144188 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
144189 } },
144190 }, .{
144191 .required_features = .{ .sse2, null, null, null },
144192 .dst_constraints = .{ .{ .int = .word }, .any },
144193 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
144194 .patterns = &.{
144195 .{ .src = .{ .to_mut_sse, .none, .none } },
144196 },
144197 .extra_temps = .{
144198 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144199 .unused,
144200 .unused,
144201 .unused,
144202 .unused,
144203 .unused,
144204 .unused,
144205 .unused,
144206 .unused,
144207 .unused,
144208 .unused,
144209 },
144210 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144211 .each = .{ .once = &.{
144212 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
144213 .{ ._, .p_w, .add, .tmp0x, .src0x, ._, ._ },
144214 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
144215 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
144216 } },
144217 }, .{
144218 .required_features = .{ .avx, .fast_hops, null, null },
144219 .dst_constraints = .{ .{ .int = .word }, .any },
144220 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144221 .patterns = &.{
144222 .{ .src = .{ .to_sse, .none, .none } },
144223 },
144224 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144225 .each = .{ .once = &.{
144226 .{ ._, .vph_w, .add, .dst0x, .src0x, .src0x, ._ },
144227 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144228 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144229 } },
144230 }, .{
144231 .required_features = .{ .avx, null, null, null },
144232 .dst_constraints = .{ .{ .int = .word }, .any },
144233 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144234 .patterns = &.{
144235 .{ .src = .{ .to_sse, .none, .none } },
144236 },
144237 .extra_temps = .{
144238 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144239 .unused,
144240 .unused,
144241 .unused,
144242 .unused,
144243 .unused,
144244 .unused,
144245 .unused,
144246 .unused,
144247 .unused,
144248 .unused,
144249 },
144250 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144251 .each = .{ .once = &.{
144252 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
144253 .{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
144254 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
144255 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144256 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
144257 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144258 } },
144259 }, .{
144260 .required_features = .{ .ssse3, .fast_hops, null, null },
144261 .dst_constraints = .{ .{ .int = .word }, .any },
144262 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144263 .patterns = &.{
144264 .{ .src = .{ .to_mut_sse, .none, .none } },
144265 },
144266 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144267 .each = .{ .once = &.{
144268 .{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ },
144269 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144270 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144271 } },
144272 }, .{
144273 .required_features = .{ .sse2, null, null, null },
144274 .dst_constraints = .{ .{ .int = .word }, .any },
144275 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144276 .patterns = &.{
144277 .{ .src = .{ .to_mut_sse, .none, .none } },
144278 },
144279 .extra_temps = .{
144280 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144281 .unused,
144282 .unused,
144283 .unused,
144284 .unused,
144285 .unused,
144286 .unused,
144287 .unused,
144288 .unused,
144289 .unused,
144290 .unused,
144291 },
144292 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144293 .each = .{ .once = &.{
144294 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
144295 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
144296 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
144297 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
144298 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
144299 .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ },
144300 } },
144301 }, .{
144302 .required_features = .{ .avx, .fast_hops, null, null },
144303 .dst_constraints = .{ .{ .int = .word }, .any },
144304 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144305 .patterns = &.{
144306 .{ .src = .{ .to_sse, .none, .none } },
144307 },
144308 .extra_temps = .{
144309 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144310 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144311 .unused,
144312 .unused,
144313 .unused,
144314 .unused,
144315 .unused,
144316 .unused,
144317 .unused,
144318 .unused,
144319 .unused,
144320 },
144321 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144322 .each = .{ .once = &.{
144323 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144324 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
144325 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144326 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144327 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144328 } },
144329 }, .{
144330 .required_features = .{ .avx, null, null, null },
144331 .dst_constraints = .{ .{ .int = .word }, .any },
144332 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144333 .patterns = &.{
144334 .{ .src = .{ .to_sse, .none, .none } },
144335 },
144336 .extra_temps = .{
144337 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144338 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144339 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144340 .unused,
144341 .unused,
144342 .unused,
144343 .unused,
144344 .unused,
144345 .unused,
144346 .unused,
144347 .unused,
144348 },
144349 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144350 .each = .{ .once = &.{
144351 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144352 .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
144353 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144354 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144355 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144356 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144357 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
144358 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144359 } },
144360 }, .{
144361 .required_features = .{ .ssse3, .fast_hops, null, null },
144362 .dst_constraints = .{ .{ .int = .word }, .any },
144363 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144364 .patterns = &.{
144365 .{ .src = .{ .to_mut_sse, .none, .none } },
144366 },
144367 .extra_temps = .{
144368 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144369 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144370 .unused,
144371 .unused,
144372 .unused,
144373 .unused,
144374 .unused,
144375 .unused,
144376 .unused,
144377 .unused,
144378 .unused,
144379 },
144380 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144381 .each = .{ .once = &.{
144382 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144383 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
144384 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144385 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144386 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144387 } },
144388 }, .{
144389 .required_features = .{ .sse2, null, null, null },
144390 .dst_constraints = .{ .{ .int = .word }, .any },
144391 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144392 .patterns = &.{
144393 .{ .src = .{ .to_mut_sse, .none, .none } },
144394 },
144395 .extra_temps = .{
144396 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144397 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144398 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144399 .unused,
144400 .unused,
144401 .unused,
144402 .unused,
144403 .unused,
144404 .unused,
144405 .unused,
144406 .unused,
144407 },
144408 .dst_temps = .{ .{ .ref = .src0 }, .unused },
144409 .each = .{ .once = &.{
144410 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144411 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ },
144412 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144413 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
144414 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144415 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
144416 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
144417 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
144418 } },
144419 }, .{
144420 .required_features = .{ .avx2, .fast_hops, null, null },
144421 .dst_constraints = .{ .{ .int = .word }, .any },
144422 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144423 .patterns = &.{
144424 .{ .src = .{ .to_sse, .none, .none } },
144425 },
144426 .dst_temps = .{ .{ .rc = .sse }, .unused },
144427 .each = .{ .once = &.{
144428 .{ ._, .v_i128, .extract, .dst0x, .src0y, .ui(1), ._ },
144429 .{ ._, .vp_w, .add, .dst0x, .src0x, .dst0x, ._ },
144430 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144431 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144432 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144433 } },
144434 }, .{
144435 .required_features = .{ .avx2, null, null, null },
144436 .dst_constraints = .{ .{ .int = .word }, .any },
144437 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144438 .patterns = &.{
144439 .{ .src = .{ .to_sse, .none, .none } },
144440 },
144441 .extra_temps = .{
144442 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144443 .unused,
144444 .unused,
144445 .unused,
144446 .unused,
144447 .unused,
144448 .unused,
144449 .unused,
144450 .unused,
144451 .unused,
144452 .unused,
144453 },
144454 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144455 .each = .{ .once = &.{
144456 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
144457 .{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
144458 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
144459 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144460 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
144461 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144462 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
144463 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144464 } },
144465 }, .{
144466 .required_features = .{ .avx, .fast_hops, null, null },
144467 .dst_constraints = .{ .{ .int = .word }, .any },
144468 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144469 .patterns = &.{
144470 .{ .src = .{ .to_sse, .none, .none } },
144471 },
144472 .dst_temps = .{ .{ .rc = .sse }, .unused },
144473 .each = .{ .once = &.{
144474 .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ },
144475 .{ ._, .vp_w, .add, .dst0x, .src0x, .dst0x, ._ },
144476 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144477 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144478 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144479 } },
144480 }, .{
144481 .required_features = .{ .avx, null, null, null },
144482 .dst_constraints = .{ .{ .int = .word }, .any },
144483 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144484 .patterns = &.{
144485 .{ .src = .{ .to_sse, .none, .none } },
144486 },
144487 .extra_temps = .{
144488 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144489 .unused,
144490 .unused,
144491 .unused,
144492 .unused,
144493 .unused,
144494 .unused,
144495 .unused,
144496 .unused,
144497 .unused,
144498 .unused,
144499 },
144500 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144501 .each = .{ .once = &.{
144502 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
144503 .{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ },
144504 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
144505 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144506 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
144507 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144508 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
144509 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144510 } },
144511 }, .{
144512 .required_features = .{ .avx2, .fast_hops, null, null },
144513 .dst_constraints = .{ .{ .int = .word }, .any },
144514 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144515 .patterns = &.{
144516 .{ .src = .{ .to_sse, .none, .none } },
144517 },
144518 .extra_temps = .{
144519 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144520 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144521 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144522 .unused,
144523 .unused,
144524 .unused,
144525 .unused,
144526 .unused,
144527 .unused,
144528 .unused,
144529 .unused,
144530 },
144531 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144532 .each = .{ .once = &.{
144533 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144534 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
144535 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
144536 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144537 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144538 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144539 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144540 } },
144541 }, .{
144542 .required_features = .{ .avx2, null, null, null },
144543 .dst_constraints = .{ .{ .int = .word }, .any },
144544 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144545 .patterns = &.{
144546 .{ .src = .{ .to_sse, .none, .none } },
144547 },
144548 .extra_temps = .{
144549 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144550 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144551 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144552 .unused,
144553 .unused,
144554 .unused,
144555 .unused,
144556 .unused,
144557 .unused,
144558 .unused,
144559 .unused,
144560 },
144561 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144562 .each = .{ .once = &.{
144563 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144564 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
144565 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
144566 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144567 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144568 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144569 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144570 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144571 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
144572 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144573 } },
144574 }, .{
144575 .required_features = .{ .avx, .fast_hops, null, null },
144576 .dst_constraints = .{ .{ .int = .word }, .any },
144577 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144578 .patterns = &.{
144579 .{ .src = .{ .to_sse, .none, .none } },
144580 },
144581 .extra_temps = .{
144582 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144583 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144584 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144585 .unused,
144586 .unused,
144587 .unused,
144588 .unused,
144589 .unused,
144590 .unused,
144591 .unused,
144592 .unused,
144593 },
144594 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144595 .each = .{ .once = &.{
144596 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144597 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
144598 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
144599 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144600 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144601 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144602 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144603 } },
144604 }, .{
144605 .required_features = .{ .avx, null, null, null },
144606 .dst_constraints = .{ .{ .int = .word }, .any },
144607 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144608 .patterns = &.{
144609 .{ .src = .{ .to_sse, .none, .none } },
144610 },
144611 .extra_temps = .{
144612 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144613 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144614 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144615 .unused,
144616 .unused,
144617 .unused,
144618 .unused,
144619 .unused,
144620 .unused,
144621 .unused,
144622 .unused,
144623 },
144624 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
144625 .each = .{ .once = &.{
144626 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144627 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
144628 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
144629 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144630 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144631 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144632 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144633 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144634 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
144635 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144636 } },
144637 }, .{
144638 .required_features = .{ .avx512f, null, null, null },
144639 .dst_constraints = .{ .{ .int = .word }, .any },
144640 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
144641 .patterns = &.{
144642 .{ .src = .{ .to_mem, .none, .none } },
144643 },
144644 .extra_temps = .{
144645 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144646 .unused,
144647 .unused,
144648 .unused,
144649 .unused,
144650 .unused,
144651 .unused,
144652 .unused,
144653 .unused,
144654 .unused,
144655 .unused,
144656 },
144657 .dst_temps = .{ .{ .rc = .sse }, .unused },
144658 .each = .{ .once = &.{
144659 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
144660 .{ ._, .vp_w, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
144661 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
144662 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144663 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
144664 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144665 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
144666 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144667 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
144668 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ },
144669 } },
144670 }, .{
144671 .required_features = .{ .avx512f, null, null, null },
144672 .dst_constraints = .{ .{ .int = .word }, .any },
144673 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
144674 .patterns = &.{
144675 .{ .src = .{ .to_mem, .none, .none } },
144676 },
144677 .extra_temps = .{
144678 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
144679 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144680 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
144681 .unused,
144682 .unused,
144683 .unused,
144684 .unused,
144685 .unused,
144686 .unused,
144687 .unused,
144688 .unused,
144689 },
144690 .dst_temps = .{ .{ .rc = .sse }, .unused },
144691 .each = .{ .once = &.{
144692 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144693 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
144694 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
144695 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
144696 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
144697 .{ ._, .vp_w, .add, .dst0y, .dst0y, .tmp2y, ._ },
144698 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
144699 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144700 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144701 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144702 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144703 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144704 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
144705 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144706 } },
144707 }, .{
144708 .required_features = .{ .avx2, .fast_hops, null, null },
144709 .dst_constraints = .{ .{ .int = .word }, .any },
144710 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144711 .patterns = &.{
144712 .{ .src = .{ .to_mem, .none, .none } },
144713 },
144714 .extra_temps = .{
144715 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
144716 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144717 .unused,
144718 .unused,
144719 .unused,
144720 .unused,
144721 .unused,
144722 .unused,
144723 .unused,
144724 .unused,
144725 .unused,
144726 },
144727 .dst_temps = .{ .{ .rc = .sse }, .unused },
144728 .clobbers = .{ .eflags = true },
144729 .each = .{ .once = &.{
144730 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
144731 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
144732 .{ .@"0:", .vp_w, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
144733 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
144734 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
144735 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
144736 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144737 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144738 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144739 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144740 } },
144741 }, .{
144742 .required_features = .{ .avx2, null, null, null },
144743 .dst_constraints = .{ .{ .int = .word }, .any },
144744 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144745 .patterns = &.{
144746 .{ .src = .{ .to_mem, .none, .none } },
144747 },
144748 .extra_temps = .{
144749 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
144750 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144751 .unused,
144752 .unused,
144753 .unused,
144754 .unused,
144755 .unused,
144756 .unused,
144757 .unused,
144758 .unused,
144759 .unused,
144760 },
144761 .dst_temps = .{ .{ .rc = .sse }, .unused },
144762 .clobbers = .{ .eflags = true },
144763 .each = .{ .once = &.{
144764 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
144765 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
144766 .{ .@"0:", .vp_w, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
144767 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
144768 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
144769 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
144770 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144771 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
144772 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144773 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
144774 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144775 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
144776 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144777 } },
144778 }, .{
144779 .required_features = .{ .avx, .fast_hops, null, null },
144780 .dst_constraints = .{ .{ .int = .word }, .any },
144781 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144782 .patterns = &.{
144783 .{ .src = .{ .to_mem, .none, .none } },
144784 },
144785 .extra_temps = .{
144786 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
144787 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144788 .unused,
144789 .unused,
144790 .unused,
144791 .unused,
144792 .unused,
144793 .unused,
144794 .unused,
144795 .unused,
144796 .unused,
144797 },
144798 .dst_temps = .{ .{ .rc = .sse }, .unused },
144799 .clobbers = .{ .eflags = true },
144800 .each = .{ .once = &.{
144801 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
144802 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
144803 .{ .@"0:", .vp_w, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
144804 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
144805 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
144806 .{ ._, .vph_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144807 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144808 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144809 } },
144810 }, .{
144811 .required_features = .{ .avx, null, null, null },
144812 .dst_constraints = .{ .{ .int = .word }, .any },
144813 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144814 .patterns = &.{
144815 .{ .src = .{ .to_mem, .none, .none } },
144816 },
144817 .extra_temps = .{
144818 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
144819 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144820 .unused,
144821 .unused,
144822 .unused,
144823 .unused,
144824 .unused,
144825 .unused,
144826 .unused,
144827 .unused,
144828 .unused,
144829 },
144830 .dst_temps = .{ .{ .rc = .sse }, .unused },
144831 .clobbers = .{ .eflags = true },
144832 .each = .{ .once = &.{
144833 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
144834 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
144835 .{ .@"0:", .vp_w, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
144836 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
144837 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
144838 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
144839 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144840 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
144841 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144842 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
144843 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ },
144844 } },
144845 }, .{
144846 .required_features = .{ .ssse3, .fast_hops, null, null },
144847 .dst_constraints = .{ .{ .int = .word }, .any },
144848 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144849 .patterns = &.{
144850 .{ .src = .{ .to_mem, .none, .none } },
144851 },
144852 .extra_temps = .{
144853 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
144854 .unused,
144855 .unused,
144856 .unused,
144857 .unused,
144858 .unused,
144859 .unused,
144860 .unused,
144861 .unused,
144862 .unused,
144863 .unused,
144864 },
144865 .dst_temps = .{ .{ .rc = .sse }, .unused },
144866 .clobbers = .{ .eflags = true },
144867 .each = .{ .once = &.{
144868 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
144869 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
144870 .{ .@"0:", .p_w, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
144871 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
144872 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
144873 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144874 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144875 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
144876 } },
144877 }, .{
144878 .required_features = .{ .sse2, null, null, null },
144879 .dst_constraints = .{ .{ .int = .word }, .any },
144880 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
144881 .patterns = &.{
144882 .{ .src = .{ .to_mem, .none, .none } },
144883 },
144884 .extra_temps = .{
144885 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
144886 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144887 .unused,
144888 .unused,
144889 .unused,
144890 .unused,
144891 .unused,
144892 .unused,
144893 .unused,
144894 .unused,
144895 .unused,
144896 },
144897 .dst_temps = .{ .{ .rc = .sse }, .unused },
144898 .clobbers = .{ .eflags = true },
144899 .each = .{ .once = &.{
144900 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
144901 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
144902 .{ .@"0:", .p_w, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
144903 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
144904 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
144905 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
144906 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
144907 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
144908 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
144909 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
144910 .{ ._, .p_w, .add, .dst0x, .tmp1x, ._, ._ },
144911 } },
144912 }, .{
144913 .required_features = .{ .avx512f, null, null, null },
144914 .dst_constraints = .{ .{ .int = .word }, .any },
144915 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
144916 .patterns = &.{
144917 .{ .src = .{ .to_mem, .none, .none } },
144918 },
144919 .extra_temps = .{
144920 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
144921 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144922 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
144923 .unused,
144924 .unused,
144925 .unused,
144926 .unused,
144927 .unused,
144928 .unused,
144929 .unused,
144930 .unused,
144931 },
144932 .dst_temps = .{ .{ .rc = .sse }, .unused },
144933 .clobbers = .{ .eflags = true },
144934 .each = .{ .once = &.{
144935 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144936 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
144937 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
144938 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
144939 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
144940 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
144941 .{ .@"0:", .vp_w, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
144942 .{ ._, .vp_w, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
144943 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
144944 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
144945 .{ ._, .vp_w, .add, .dst0y, .dst0y, .tmp2y, ._ },
144946 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
144947 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144948 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144949 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144950 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
144951 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144952 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
144953 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144954 } },
144955 }, .{
144956 .required_features = .{ .avx2, .fast_hops, null, null },
144957 .dst_constraints = .{ .{ .int = .word }, .any },
144958 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144959 .patterns = &.{
144960 .{ .src = .{ .to_mem, .none, .none } },
144961 },
144962 .extra_temps = .{
144963 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
144964 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
144965 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
144966 .unused,
144967 .unused,
144968 .unused,
144969 .unused,
144970 .unused,
144971 .unused,
144972 .unused,
144973 .unused,
144974 },
144975 .dst_temps = .{ .{ .rc = .sse }, .unused },
144976 .clobbers = .{ .eflags = true },
144977 .each = .{ .once = &.{
144978 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
144979 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
144980 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
144981 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
144982 .{ .@"0:", .vp_w, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
144983 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
144984 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
144985 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
144986 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
144987 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144988 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144989 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
144990 } },
144991 }, .{
144992 .required_features = .{ .avx2, null, null, null },
144993 .dst_constraints = .{ .{ .int = .word }, .any },
144994 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
144995 .patterns = &.{
144996 .{ .src = .{ .to_mem, .none, .none } },
144997 },
144998 .extra_temps = .{
144999 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145000 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145001 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
145002 .unused,
145003 .unused,
145004 .unused,
145005 .unused,
145006 .unused,
145007 .unused,
145008 .unused,
145009 .unused,
145010 },
145011 .dst_temps = .{ .{ .rc = .sse }, .unused },
145012 .clobbers = .{ .eflags = true },
145013 .each = .{ .once = &.{
145014 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145015 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
145016 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
145017 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
145018 .{ .@"0:", .vp_w, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
145019 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
145020 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145021 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145022 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145023 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145024 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145025 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145026 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145027 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
145028 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145029 } },
145030 }, .{
145031 .required_features = .{ .avx, .fast_hops, null, null },
145032 .dst_constraints = .{ .{ .int = .word }, .any },
145033 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
145034 .patterns = &.{
145035 .{ .src = .{ .to_mem, .none, .none } },
145036 },
145037 .extra_temps = .{
145038 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145039 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145040 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
145041 .unused,
145042 .unused,
145043 .unused,
145044 .unused,
145045 .unused,
145046 .unused,
145047 .unused,
145048 .unused,
145049 },
145050 .dst_temps = .{ .{ .rc = .sse }, .unused },
145051 .clobbers = .{ .eflags = true },
145052 .each = .{ .once = &.{
145053 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145054 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
145055 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
145056 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
145057 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145058 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145059 .{ .@"0:", .vp_w, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
145060 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
145061 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145062 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
145063 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
145064 .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ },
145065 } },
145066 }, .{
145067 .required_features = .{ .avx, null, null, null },
145068 .dst_constraints = .{ .{ .int = .word }, .any },
145069 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
145070 .patterns = &.{
145071 .{ .src = .{ .to_mem, .none, .none } },
145072 },
145073 .extra_temps = .{
145074 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145075 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145076 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
145077 .unused,
145078 .unused,
145079 .unused,
145080 .unused,
145081 .unused,
145082 .unused,
145083 .unused,
145084 .unused,
145085 },
145086 .dst_temps = .{ .{ .rc = .sse }, .unused },
145087 .clobbers = .{ .eflags = true },
145088 .each = .{ .once = &.{
145089 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145090 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
145091 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
145092 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
145093 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145094 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145095 .{ .@"0:", .vp_w, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
145096 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
145097 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145098 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145099 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145100 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145101 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145102 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
145103 .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ },
145104 } },
145105 }, .{
145106 .required_features = .{ .ssse3, .fast_hops, null, null },
145107 .dst_constraints = .{ .{ .int = .word }, .any },
145108 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
145109 .patterns = &.{
145110 .{ .src = .{ .to_mem, .none, .none } },
145111 },
145112 .extra_temps = .{
145113 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145114 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145115 .unused,
145116 .unused,
145117 .unused,
145118 .unused,
145119 .unused,
145120 .unused,
145121 .unused,
145122 .unused,
145123 .unused,
145124 },
145125 .dst_temps = .{ .{ .rc = .sse }, .unused },
145126 .clobbers = .{ .eflags = true },
145127 .each = .{ .once = &.{
145128 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145129 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
145130 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
145131 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
145132 .{ .@"0:", .p_w, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
145133 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
145134 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145135 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
145136 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
145137 .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ },
145138 } },
145139 }, .{
145140 .required_features = .{ .sse2, null, null, null },
145141 .dst_constraints = .{ .{ .int = .word }, .any },
145142 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
145143 .patterns = &.{
145144 .{ .src = .{ .to_mem, .none, .none } },
145145 },
145146 .extra_temps = .{
145147 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145148 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145149 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
145150 .unused,
145151 .unused,
145152 .unused,
145153 .unused,
145154 .unused,
145155 .unused,
145156 .unused,
145157 .unused,
145158 },
145159 .dst_temps = .{ .{ .rc = .sse }, .unused },
145160 .clobbers = .{ .eflags = true },
145161 .each = .{ .once = &.{
145162 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145163 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
145164 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
145165 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
145166 .{ .@"0:", .p_w, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
145167 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
145168 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145169 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145170 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
145171 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145172 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
145173 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
145174 .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ },
145175 } },
145176 }, .{
145177 .dst_constraints = .{ .{ .int = .word }, .any },
145178 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any },
145179 .patterns = &.{
145180 .{ .src = .{ .to_mem, .none, .none } },
145181 },
145182 .extra_temps = .{
145183 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145184 .unused,
145185 .unused,
145186 .unused,
145187 .unused,
145188 .unused,
145189 .unused,
145190 .unused,
145191 .unused,
145192 .unused,
145193 .unused,
145194 },
145195 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
145196 .clobbers = .{ .eflags = true },
145197 .each = .{ .once = &.{
145198 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
145199 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
145200 .{ .@"0:", ._, .add, .dst0w, .memi(.src0w, .tmp0), ._, ._ },
145201 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
145202 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145203 } },
145204 }, .{
145205 .required_features = .{ .avx, .fast_hops, null, null },
145206 .dst_constraints = .{ .{ .int = .dword }, .any },
145207 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
145208 .patterns = &.{
145209 .{ .src = .{ .to_sse, .none, .none } },
145210 },
145211 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145212 .each = .{ .once = &.{
145213 .{ ._, .vph_d, .add, .dst0x, .src0x, .src0x, ._ },
145214 } },
145215 }, .{
145216 .required_features = .{ .avx, null, null, null },
145217 .dst_constraints = .{ .{ .int = .dword }, .any },
145218 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
145219 .patterns = &.{
145220 .{ .src = .{ .to_sse, .none, .none } },
145221 },
145222 .extra_temps = .{
145223 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145224 .unused,
145225 .unused,
145226 .unused,
145227 .unused,
145228 .unused,
145229 .unused,
145230 .unused,
145231 .unused,
145232 .unused,
145233 .unused,
145234 },
145235 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145236 .each = .{ .once = &.{
145237 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
145238 .{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ },
145239 } },
145240 }, .{
145241 .required_features = .{ .ssse3, .fast_hops, null, null },
145242 .dst_constraints = .{ .{ .int = .dword }, .any },
145243 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
145244 .patterns = &.{
145245 .{ .src = .{ .to_mut_sse, .none, .none } },
145246 },
145247 .dst_temps = .{ .{ .ref = .src0 }, .unused },
145248 .each = .{ .once = &.{
145249 .{ ._, .ph_d, .add, .dst0x, .src0x, ._, ._ },
145250 } },
145251 }, .{
145252 .required_features = .{ .sse2, null, null, null },
145253 .dst_constraints = .{ .{ .int = .dword }, .any },
145254 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
145255 .patterns = &.{
145256 .{ .src = .{ .to_mut_sse, .none, .none } },
145257 },
145258 .extra_temps = .{
145259 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145260 .unused,
145261 .unused,
145262 .unused,
145263 .unused,
145264 .unused,
145265 .unused,
145266 .unused,
145267 .unused,
145268 .unused,
145269 .unused,
145270 },
145271 .dst_temps = .{ .{ .ref = .src0 }, .unused },
145272 .each = .{ .once = &.{
145273 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
145274 .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
145275 } },
145276 }, .{
145277 .required_features = .{ .avx, .fast_hops, null, null },
145278 .dst_constraints = .{ .{ .int = .dword }, .any },
145279 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145280 .patterns = &.{
145281 .{ .src = .{ .to_sse, .none, .none } },
145282 },
145283 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145284 .each = .{ .once = &.{
145285 .{ ._, .vph_d, .add, .dst0x, .src0x, .src0x, ._ },
145286 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145287 } },
145288 }, .{
145289 .required_features = .{ .avx, null, null, null },
145290 .dst_constraints = .{ .{ .int = .dword }, .any },
145291 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145292 .patterns = &.{
145293 .{ .src = .{ .to_sse, .none, .none } },
145294 },
145295 .extra_temps = .{
145296 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145297 .unused,
145298 .unused,
145299 .unused,
145300 .unused,
145301 .unused,
145302 .unused,
145303 .unused,
145304 .unused,
145305 .unused,
145306 .unused,
145307 },
145308 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145309 .each = .{ .once = &.{
145310 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
145311 .{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ },
145312 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
145313 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
145314 } },
145315 }, .{
145316 .required_features = .{ .ssse3, .fast_hops, null, null },
145317 .dst_constraints = .{ .{ .int = .dword }, .any },
145318 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145319 .patterns = &.{
145320 .{ .src = .{ .to_mut_sse, .none, .none } },
145321 },
145322 .dst_temps = .{ .{ .ref = .src0 }, .unused },
145323 .each = .{ .once = &.{
145324 .{ ._, .ph_d, .add, .dst0x, .src0x, ._, ._ },
145325 .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ },
145326 } },
145327 }, .{
145328 .required_features = .{ .sse2, null, null, null },
145329 .dst_constraints = .{ .{ .int = .dword }, .any },
145330 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145331 .patterns = &.{
145332 .{ .src = .{ .to_mut_sse, .none, .none } },
145333 },
145334 .extra_temps = .{
145335 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145336 .unused,
145337 .unused,
145338 .unused,
145339 .unused,
145340 .unused,
145341 .unused,
145342 .unused,
145343 .unused,
145344 .unused,
145345 .unused,
145346 },
145347 .dst_temps = .{ .{ .ref = .src0 }, .unused },
145348 .each = .{ .once = &.{
145349 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
145350 .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
145351 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
145352 .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
145353 } },
145354 }, .{
145355 .required_features = .{ .avx, .fast_hops, null, null },
145356 .dst_constraints = .{ .{ .int = .dword }, .any },
145357 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145358 .patterns = &.{
145359 .{ .src = .{ .to_sse, .none, .none } },
145360 },
145361 .extra_temps = .{
145362 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145363 .unused,
145364 .unused,
145365 .unused,
145366 .unused,
145367 .unused,
145368 .unused,
145369 .unused,
145370 .unused,
145371 .unused,
145372 .unused,
145373 },
145374 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145375 .each = .{ .once = &.{
145376 .{ ._, .vph_d, .add, .tmp0x, .src0x, .src0x, ._ },
145377 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
145378 .{ ._, .vp_d, .add, .dst0x, .tmp0x, .dst0x, ._ },
145379 } },
145380 }, .{
145381 .required_features = .{ .avx, null, null, null },
145382 .dst_constraints = .{ .{ .int = .dword }, .any },
145383 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145384 .patterns = &.{
145385 .{ .src = .{ .to_sse, .none, .none } },
145386 },
145387 .extra_temps = .{
145388 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145389 .unused,
145390 .unused,
145391 .unused,
145392 .unused,
145393 .unused,
145394 .unused,
145395 .unused,
145396 .unused,
145397 .unused,
145398 .unused,
145399 },
145400 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145401 .each = .{ .once = &.{
145402 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
145403 .{ ._, .vp_d, .add, .tmp0x, .src0x, .tmp0x, ._ },
145404 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
145405 .{ ._, .vp_d, .add, .dst0x, .tmp0x, .dst0x, ._ },
145406 } },
145407 }, .{
145408 .required_features = .{ .ssse3, .fast_hops, null, null },
145409 .dst_constraints = .{ .{ .int = .dword }, .any },
145410 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145411 .patterns = &.{
145412 .{ .src = .{ .to_mut_sse, .none, .none } },
145413 },
145414 .extra_temps = .{
145415 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145416 .unused,
145417 .unused,
145418 .unused,
145419 .unused,
145420 .unused,
145421 .unused,
145422 .unused,
145423 .unused,
145424 .unused,
145425 .unused,
145426 },
145427 .dst_temps = .{ .{ .ref = .src0 }, .unused },
145428 .each = .{ .once = &.{
145429 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
145430 .{ ._, .ph_d, .add, .dst0x, .src0x, ._, ._ },
145431 .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
145432 } },
145433 }, .{
145434 .required_features = .{ .sse2, null, null, null },
145435 .dst_constraints = .{ .{ .int = .dword }, .any },
145436 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145437 .patterns = &.{
145438 .{ .src = .{ .to_sse, .none, .none } },
145439 },
145440 .extra_temps = .{
145441 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145442 .unused,
145443 .unused,
145444 .unused,
145445 .unused,
145446 .unused,
145447 .unused,
145448 .unused,
145449 .unused,
145450 .unused,
145451 .unused,
145452 },
145453 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145454 .each = .{ .once = &.{
145455 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
145456 .{ ._, .p_d, .add, .tmp0x, .src0x, ._, ._ },
145457 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
145458 .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ },
145459 } },
145460 }, .{
145461 .required_features = .{ .avx2, .fast_hops, null, null },
145462 .dst_constraints = .{ .{ .int = .dword }, .any },
145463 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145464 .patterns = &.{
145465 .{ .src = .{ .to_sse, .none, .none } },
145466 },
145467 .dst_temps = .{ .{ .rc = .sse }, .unused },
145468 .each = .{ .once = &.{
145469 .{ ._, .v_i128, .extract, .dst0x, .src0y, .ui(1), ._ },
145470 .{ ._, .vp_d, .add, .dst0x, .src0x, .dst0x, ._ },
145471 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145472 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145473 } },
145474 }, .{
145475 .required_features = .{ .avx2, null, null, null },
145476 .dst_constraints = .{ .{ .int = .dword }, .any },
145477 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145478 .patterns = &.{
145479 .{ .src = .{ .to_sse, .none, .none } },
145480 },
145481 .extra_temps = .{
145482 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145483 .unused,
145484 .unused,
145485 .unused,
145486 .unused,
145487 .unused,
145488 .unused,
145489 .unused,
145490 .unused,
145491 .unused,
145492 .unused,
145493 },
145494 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145495 .each = .{ .once = &.{
145496 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
145497 .{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ },
145498 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
145499 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
145500 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
145501 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
145502 } },
145503 }, .{
145504 .required_features = .{ .avx, .fast_hops, null, null },
145505 .dst_constraints = .{ .{ .int = .dword }, .any },
145506 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145507 .patterns = &.{
145508 .{ .src = .{ .to_sse, .none, .none } },
145509 },
145510 .dst_temps = .{ .{ .rc = .sse }, .unused },
145511 .each = .{ .once = &.{
145512 .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ },
145513 .{ ._, .vp_d, .add, .dst0x, .src0x, .dst0x, ._ },
145514 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145515 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145516 } },
145517 }, .{
145518 .required_features = .{ .avx, null, null, null },
145519 .dst_constraints = .{ .{ .int = .dword }, .any },
145520 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145521 .patterns = &.{
145522 .{ .src = .{ .to_sse, .none, .none } },
145523 },
145524 .extra_temps = .{
145525 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145526 .unused,
145527 .unused,
145528 .unused,
145529 .unused,
145530 .unused,
145531 .unused,
145532 .unused,
145533 .unused,
145534 .unused,
145535 .unused,
145536 },
145537 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145538 .each = .{ .once = &.{
145539 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
145540 .{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ },
145541 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
145542 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
145543 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
145544 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
145545 } },
145546 }, .{
145547 .required_features = .{ .avx2, .fast_hops, null, null },
145548 .dst_constraints = .{ .{ .int = .dword }, .any },
145549 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145550 .patterns = &.{
145551 .{ .src = .{ .to_sse, .none, .none } },
145552 },
145553 .extra_temps = .{
145554 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
145555 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145556 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
145557 .unused,
145558 .unused,
145559 .unused,
145560 .unused,
145561 .unused,
145562 .unused,
145563 .unused,
145564 .unused,
145565 },
145566 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145567 .each = .{ .once = &.{
145568 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145569 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
145570 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145571 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145572 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145573 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145574 } },
145575 }, .{
145576 .required_features = .{ .avx2, null, null, null },
145577 .dst_constraints = .{ .{ .int = .dword }, .any },
145578 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145579 .patterns = &.{
145580 .{ .src = .{ .to_sse, .none, .none } },
145581 },
145582 .extra_temps = .{
145583 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
145584 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145585 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145586 .unused,
145587 .unused,
145588 .unused,
145589 .unused,
145590 .unused,
145591 .unused,
145592 .unused,
145593 .unused,
145594 },
145595 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145596 .each = .{ .once = &.{
145597 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145598 .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
145599 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145600 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145601 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145602 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145603 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145604 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145605 } },
145606 }, .{
145607 .required_features = .{ .avx, .fast_hops, null, null },
145608 .dst_constraints = .{ .{ .int = .dword }, .any },
145609 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145610 .patterns = &.{
145611 .{ .src = .{ .to_sse, .none, .none } },
145612 },
145613 .extra_temps = .{
145614 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
145615 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145616 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145617 .unused,
145618 .unused,
145619 .unused,
145620 .unused,
145621 .unused,
145622 .unused,
145623 .unused,
145624 .unused,
145625 },
145626 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145627 .each = .{ .once = &.{
145628 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145629 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
145630 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145631 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145632 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145633 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145634 } },
145635 }, .{
145636 .required_features = .{ .avx, null, null, null },
145637 .dst_constraints = .{ .{ .int = .dword }, .any },
145638 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145639 .patterns = &.{
145640 .{ .src = .{ .to_sse, .none, .none } },
145641 },
145642 .extra_temps = .{
145643 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
145644 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145645 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145646 .unused,
145647 .unused,
145648 .unused,
145649 .unused,
145650 .unused,
145651 .unused,
145652 .unused,
145653 .unused,
145654 },
145655 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
145656 .each = .{ .once = &.{
145657 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145658 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
145659 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145660 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145661 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145662 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145663 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145664 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145665 } },
145666 }, .{
145667 .required_features = .{ .avx512f, null, null, null },
145668 .dst_constraints = .{ .{ .int = .dword }, .any },
145669 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
145670 .patterns = &.{
145671 .{ .src = .{ .to_mem, .none, .none } },
145672 },
145673 .extra_temps = .{
145674 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145675 .unused,
145676 .unused,
145677 .unused,
145678 .unused,
145679 .unused,
145680 .unused,
145681 .unused,
145682 .unused,
145683 .unused,
145684 .unused,
145685 },
145686 .dst_temps = .{ .{ .rc = .sse }, .unused },
145687 .clobbers = .{ .eflags = true },
145688 .each = .{ .once = &.{
145689 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
145690 .{ ._, .vp_d, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
145691 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
145692 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
145693 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
145694 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
145695 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
145696 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ },
145697 } },
145698 }, .{
145699 .required_features = .{ .avx512f, null, null, null },
145700 .dst_constraints = .{ .{ .int = .dword }, .any },
145701 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
145702 .patterns = &.{
145703 .{ .src = .{ .to_mem, .none, .none } },
145704 },
145705 .extra_temps = .{
145706 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
145707 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145708 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
145709 .unused,
145710 .unused,
145711 .unused,
145712 .unused,
145713 .unused,
145714 .unused,
145715 .unused,
145716 .unused,
145717 },
145718 .dst_temps = .{ .{ .rc = .sse }, .unused },
145719 .clobbers = .{ .eflags = true },
145720 .each = .{ .once = &.{
145721 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145722 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
145723 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
145724 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
145725 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
145726 .{ ._, .vp_d, .add, .dst0y, .dst0y, .tmp2y, ._ },
145727 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145728 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145729 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145730 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145731 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145732 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145733 } },
145734 }, .{
145735 .required_features = .{ .avx2, .fast_hops, null, null },
145736 .dst_constraints = .{ .{ .int = .dword }, .any },
145737 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145738 .patterns = &.{
145739 .{ .src = .{ .to_mem, .none, .none } },
145740 },
145741 .extra_temps = .{
145742 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145743 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145744 .unused,
145745 .unused,
145746 .unused,
145747 .unused,
145748 .unused,
145749 .unused,
145750 .unused,
145751 .unused,
145752 .unused,
145753 },
145754 .dst_temps = .{ .{ .rc = .sse }, .unused },
145755 .clobbers = .{ .eflags = true },
145756 .each = .{ .once = &.{
145757 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
145758 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
145759 .{ .@"0:", .vp_d, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
145760 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
145761 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145762 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
145763 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
145764 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145765 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145766 } },
145767 }, .{
145768 .required_features = .{ .avx2, null, null, null },
145769 .dst_constraints = .{ .{ .int = .dword }, .any },
145770 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145771 .patterns = &.{
145772 .{ .src = .{ .to_mem, .none, .none } },
145773 },
145774 .extra_temps = .{
145775 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145776 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145777 .unused,
145778 .unused,
145779 .unused,
145780 .unused,
145781 .unused,
145782 .unused,
145783 .unused,
145784 .unused,
145785 .unused,
145786 },
145787 .dst_temps = .{ .{ .rc = .sse }, .unused },
145788 .clobbers = .{ .eflags = true },
145789 .each = .{ .once = &.{
145790 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
145791 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
145792 .{ .@"0:", .vp_d, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
145793 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
145794 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145795 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
145796 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
145797 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
145798 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
145799 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
145800 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
145801 } },
145802 }, .{
145803 .required_features = .{ .avx, .fast_hops, null, null },
145804 .dst_constraints = .{ .{ .int = .dword }, .any },
145805 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145806 .patterns = &.{
145807 .{ .src = .{ .to_mem, .none, .none } },
145808 },
145809 .extra_temps = .{
145810 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145811 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145812 .unused,
145813 .unused,
145814 .unused,
145815 .unused,
145816 .unused,
145817 .unused,
145818 .unused,
145819 .unused,
145820 .unused,
145821 },
145822 .dst_temps = .{ .{ .rc = .sse }, .unused },
145823 .clobbers = .{ .eflags = true },
145824 .each = .{ .once = &.{
145825 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
145826 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
145827 .{ .@"0:", .vp_d, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
145828 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
145829 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145830 .{ ._, .vph_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
145831 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
145832 } },
145833 }, .{
145834 .required_features = .{ .avx, null, null, null },
145835 .dst_constraints = .{ .{ .int = .dword }, .any },
145836 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145837 .patterns = &.{
145838 .{ .src = .{ .to_mem, .none, .none } },
145839 },
145840 .extra_temps = .{
145841 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145842 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145843 .unused,
145844 .unused,
145845 .unused,
145846 .unused,
145847 .unused,
145848 .unused,
145849 .unused,
145850 .unused,
145851 .unused,
145852 },
145853 .dst_temps = .{ .{ .rc = .sse }, .unused },
145854 .clobbers = .{ .eflags = true },
145855 .each = .{ .once = &.{
145856 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
145857 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
145858 .{ .@"0:", .vp_d, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
145859 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
145860 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145861 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
145862 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
145863 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
145864 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ },
145865 } },
145866 }, .{
145867 .required_features = .{ .ssse3, .fast_hops, null, null },
145868 .dst_constraints = .{ .{ .int = .dword }, .any },
145869 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145870 .patterns = &.{
145871 .{ .src = .{ .to_mem, .none, .none } },
145872 },
145873 .extra_temps = .{
145874 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145875 .unused,
145876 .unused,
145877 .unused,
145878 .unused,
145879 .unused,
145880 .unused,
145881 .unused,
145882 .unused,
145883 .unused,
145884 .unused,
145885 },
145886 .dst_temps = .{ .{ .rc = .sse }, .unused },
145887 .clobbers = .{ .eflags = true },
145888 .each = .{ .once = &.{
145889 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
145890 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
145891 .{ .@"0:", .p_d, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
145892 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
145893 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145894 .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ },
145895 .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ },
145896 } },
145897 }, .{
145898 .required_features = .{ .sse2, null, null, null },
145899 .dst_constraints = .{ .{ .int = .dword }, .any },
145900 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
145901 .patterns = &.{
145902 .{ .src = .{ .to_mem, .none, .none } },
145903 },
145904 .extra_temps = .{
145905 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145906 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145907 .unused,
145908 .unused,
145909 .unused,
145910 .unused,
145911 .unused,
145912 .unused,
145913 .unused,
145914 .unused,
145915 .unused,
145916 },
145917 .dst_temps = .{ .{ .rc = .sse }, .unused },
145918 .clobbers = .{ .eflags = true },
145919 .each = .{ .once = &.{
145920 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
145921 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
145922 .{ .@"0:", .p_d, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
145923 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
145924 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145925 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
145926 .{ ._, .p_d, .add, .dst0x, .tmp1x, ._, ._ },
145927 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
145928 .{ ._, .p_d, .add, .dst0x, .tmp1x, ._, ._ },
145929 } },
145930 }, .{
145931 .required_features = .{ .avx512f, null, null, null },
145932 .dst_constraints = .{ .{ .int = .dword }, .any },
145933 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
145934 .patterns = &.{
145935 .{ .src = .{ .to_mem, .none, .none } },
145936 },
145937 .extra_temps = .{
145938 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145939 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145940 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
145941 .unused,
145942 .unused,
145943 .unused,
145944 .unused,
145945 .unused,
145946 .unused,
145947 .unused,
145948 .unused,
145949 },
145950 .dst_temps = .{ .{ .rc = .sse }, .unused },
145951 .clobbers = .{ .eflags = true },
145952 .each = .{ .once = &.{
145953 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145954 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
145955 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
145956 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
145957 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
145958 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
145959 .{ .@"0:", .vp_d, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
145960 .{ ._, .vp_d, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
145961 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
145962 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
145963 .{ ._, .vp_d, .add, .dst0y, .dst0y, .tmp2y, ._ },
145964 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
145965 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145966 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145967 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145968 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
145969 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
145970 } },
145971 }, .{
145972 .required_features = .{ .avx2, .fast_hops, null, null },
145973 .dst_constraints = .{ .{ .int = .dword }, .any },
145974 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
145975 .patterns = &.{
145976 .{ .src = .{ .to_mem, .none, .none } },
145977 },
145978 .extra_temps = .{
145979 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
145980 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
145981 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
145982 .unused,
145983 .unused,
145984 .unused,
145985 .unused,
145986 .unused,
145987 .unused,
145988 .unused,
145989 .unused,
145990 },
145991 .dst_temps = .{ .{ .rc = .sse }, .unused },
145992 .clobbers = .{ .eflags = true },
145993 .each = .{ .once = &.{
145994 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
145995 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
145996 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
145997 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
145998 .{ .@"0:", .vp_d, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
145999 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
146000 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146001 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
146002 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
146003 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
146004 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
146005 } },
146006 }, .{
146007 .required_features = .{ .avx2, null, null, null },
146008 .dst_constraints = .{ .{ .int = .dword }, .any },
146009 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
146010 .patterns = &.{
146011 .{ .src = .{ .to_mem, .none, .none } },
146012 },
146013 .extra_temps = .{
146014 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146015 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146016 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
146017 .unused,
146018 .unused,
146019 .unused,
146020 .unused,
146021 .unused,
146022 .unused,
146023 .unused,
146024 .unused,
146025 },
146026 .dst_temps = .{ .{ .rc = .sse }, .unused },
146027 .clobbers = .{ .eflags = true },
146028 .each = .{ .once = &.{
146029 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146030 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
146031 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
146032 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
146033 .{ .@"0:", .vp_d, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
146034 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
146035 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146036 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
146037 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
146038 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146039 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
146040 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146041 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
146042 } },
146043 }, .{
146044 .required_features = .{ .avx, .fast_hops, null, null },
146045 .dst_constraints = .{ .{ .int = .dword }, .any },
146046 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
146047 .patterns = &.{
146048 .{ .src = .{ .to_mem, .none, .none } },
146049 },
146050 .extra_temps = .{
146051 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146052 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146053 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
146054 .unused,
146055 .unused,
146056 .unused,
146057 .unused,
146058 .unused,
146059 .unused,
146060 .unused,
146061 .unused,
146062 },
146063 .dst_temps = .{ .{ .rc = .sse }, .unused },
146064 .clobbers = .{ .eflags = true },
146065 .each = .{ .once = &.{
146066 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146067 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
146068 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
146069 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
146070 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
146071 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
146072 .{ .@"0:", .vp_d, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
146073 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
146074 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146075 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
146076 .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ },
146077 } },
146078 }, .{
146079 .required_features = .{ .avx, null, null, null },
146080 .dst_constraints = .{ .{ .int = .dword }, .any },
146081 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
146082 .patterns = &.{
146083 .{ .src = .{ .to_mem, .none, .none } },
146084 },
146085 .extra_temps = .{
146086 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146087 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146088 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
146089 .unused,
146090 .unused,
146091 .unused,
146092 .unused,
146093 .unused,
146094 .unused,
146095 .unused,
146096 .unused,
146097 },
146098 .dst_temps = .{ .{ .rc = .sse }, .unused },
146099 .each = .{ .once = &.{
146100 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146101 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
146102 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
146103 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
146104 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
146105 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
146106 .{ .@"0:", .vp_d, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
146107 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
146108 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146109 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146110 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
146111 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146112 .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ },
146113 } },
146114 }, .{
146115 .required_features = .{ .ssse3, .fast_hops, null, null },
146116 .dst_constraints = .{ .{ .int = .dword }, .any },
146117 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
146118 .patterns = &.{
146119 .{ .src = .{ .to_mem, .none, .none } },
146120 },
146121 .extra_temps = .{
146122 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146123 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146124 .unused,
146125 .unused,
146126 .unused,
146127 .unused,
146128 .unused,
146129 .unused,
146130 .unused,
146131 .unused,
146132 .unused,
146133 },
146134 .dst_temps = .{ .{ .rc = .sse }, .unused },
146135 .clobbers = .{ .eflags = true },
146136 .each = .{ .once = &.{
146137 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146138 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
146139 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
146140 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
146141 .{ .@"0:", .p_d, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
146142 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
146143 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146144 .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ },
146145 .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ },
146146 } },
146147 }, .{
146148 .required_features = .{ .sse2, null, null, null },
146149 .dst_constraints = .{ .{ .int = .dword }, .any },
146150 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
146151 .patterns = &.{
146152 .{ .src = .{ .to_mem, .none, .none } },
146153 },
146154 .extra_temps = .{
146155 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146156 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146157 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
146158 .unused,
146159 .unused,
146160 .unused,
146161 .unused,
146162 .unused,
146163 .unused,
146164 .unused,
146165 .unused,
146166 },
146167 .dst_temps = .{ .{ .rc = .sse }, .unused },
146168 .clobbers = .{ .eflags = true },
146169 .each = .{ .once = &.{
146170 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146171 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
146172 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
146173 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
146174 .{ .@"0:", .p_d, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
146175 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
146176 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146177 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146178 .{ ._, .p_d, .add, .dst0x, .tmp2x, ._, ._ },
146179 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146180 .{ ._, .p_d, .add, .dst0x, .tmp2x, ._, ._ },
146181 } },
146182 }, .{
146183 .dst_constraints = .{ .{ .int = .dword }, .any },
146184 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any },
146185 .patterns = &.{
146186 .{ .src = .{ .to_mem, .none, .none } },
146187 },
146188 .extra_temps = .{
146189 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146190 .unused,
146191 .unused,
146192 .unused,
146193 .unused,
146194 .unused,
146195 .unused,
146196 .unused,
146197 .unused,
146198 .unused,
146199 .unused,
146200 },
146201 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
146202 .clobbers = .{ .eflags = true },
146203 .each = .{ .once = &.{
146204 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
146205 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
146206 .{ .@"0:", ._, .add, .dst0d, .memi(.src0d, .tmp0), ._, ._ },
146207 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
146208 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146209 } },
146210 }, .{
146211 .required_features = .{ .avx, null, null, null },
146212 .dst_constraints = .{ .{ .int = .qword }, .any },
146213 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
146214 .patterns = &.{
146215 .{ .src = .{ .to_sse, .none, .none } },
146216 },
146217 .extra_temps = .{
146218 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146219 .unused,
146220 .unused,
146221 .unused,
146222 .unused,
146223 .unused,
146224 .unused,
146225 .unused,
146226 .unused,
146227 .unused,
146228 .unused,
146229 },
146230 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146231 .each = .{ .once = &.{
146232 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
146233 .{ ._, .vp_q, .add, .dst0x, .src0x, .tmp0x, ._ },
146234 } },
146235 }, .{
146236 .required_features = .{ .sse2, null, null, null },
146237 .dst_constraints = .{ .{ .int = .qword }, .any },
146238 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
146239 .patterns = &.{
146240 .{ .src = .{ .to_mut_sse, .none, .none } },
146241 },
146242 .extra_temps = .{
146243 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146244 .unused,
146245 .unused,
146246 .unused,
146247 .unused,
146248 .unused,
146249 .unused,
146250 .unused,
146251 .unused,
146252 .unused,
146253 .unused,
146254 },
146255 .dst_temps = .{ .{ .ref = .src0 }, .unused },
146256 .each = .{ .once = &.{
146257 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
146258 .{ ._, .p_q, .add, .dst0x, .tmp0x, ._, ._ },
146259 } },
146260 }, .{
146261 .required_features = .{ .avx2, null, null, null },
146262 .dst_constraints = .{ .{ .int = .qword }, .any },
146263 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
146264 .patterns = &.{
146265 .{ .src = .{ .to_sse, .none, .none } },
146266 },
146267 .extra_temps = .{
146268 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146269 .unused,
146270 .unused,
146271 .unused,
146272 .unused,
146273 .unused,
146274 .unused,
146275 .unused,
146276 .unused,
146277 .unused,
146278 .unused,
146279 },
146280 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146281 .each = .{ .once = &.{
146282 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
146283 .{ ._, .vp_q, .add, .dst0x, .src0x, .tmp0x, ._ },
146284 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
146285 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp0x, ._ },
146286 } },
146287 }, .{
146288 .required_features = .{ .avx, null, null, null },
146289 .dst_constraints = .{ .{ .int = .qword }, .any },
146290 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
146291 .patterns = &.{
146292 .{ .src = .{ .to_sse, .none, .none } },
146293 },
146294 .extra_temps = .{
146295 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146296 .unused,
146297 .unused,
146298 .unused,
146299 .unused,
146300 .unused,
146301 .unused,
146302 .unused,
146303 .unused,
146304 .unused,
146305 .unused,
146306 },
146307 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146308 .each = .{ .once = &.{
146309 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
146310 .{ ._, .vp_q, .add, .dst0x, .src0x, .tmp0x, ._ },
146311 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
146312 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp0x, ._ },
146313 } },
146314 }, .{
146315 .required_features = .{ .avx2, null, null, null },
146316 .dst_constraints = .{ .{ .int = .qword }, .any },
146317 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
146318 .patterns = &.{
146319 .{ .src = .{ .to_sse, .none, .none } },
146320 },
146321 .extra_temps = .{
146322 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146323 .unused,
146324 .unused,
146325 .unused,
146326 .unused,
146327 .unused,
146328 .unused,
146329 .unused,
146330 .unused,
146331 .unused,
146332 .unused,
146333 },
146334 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146335 .each = .{ .once = &.{
146336 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
146337 .{ ._, .vp_q, .add, .tmp0x, .src0x, .tmp0x, ._ },
146338 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
146339 .{ ._, .vp_q, .add, .dst0x, .tmp0x, .dst0x, ._ },
146340 } },
146341 }, .{
146342 .required_features = .{ .avx, null, null, null },
146343 .dst_constraints = .{ .{ .int = .qword }, .any },
146344 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
146345 .patterns = &.{
146346 .{ .src = .{ .to_sse, .none, .none } },
146347 },
146348 .extra_temps = .{
146349 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146350 .unused,
146351 .unused,
146352 .unused,
146353 .unused,
146354 .unused,
146355 .unused,
146356 .unused,
146357 .unused,
146358 .unused,
146359 .unused,
146360 },
146361 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146362 .each = .{ .once = &.{
146363 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
146364 .{ ._, .vp_q, .add, .tmp0x, .src0x, .tmp0x, ._ },
146365 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10), ._ },
146366 .{ ._, .vp_q, .add, .dst0x, .tmp0x, .dst0x, ._ },
146367 } },
146368 }, .{
146369 .required_features = .{ .avx512f, null, null, null },
146370 .dst_constraints = .{ .{ .int = .qword }, .any },
146371 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
146372 .patterns = &.{
146373 .{ .src = .{ .to_mem, .none, .none } },
146374 },
146375 .extra_temps = .{
146376 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146377 .unused,
146378 .unused,
146379 .unused,
146380 .unused,
146381 .unused,
146382 .unused,
146383 .unused,
146384 .unused,
146385 .unused,
146386 .unused,
146387 },
146388 .dst_temps = .{ .{ .rc = .sse }, .unused },
146389 .each = .{ .once = &.{
146390 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
146391 .{ ._, .vp_q, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
146392 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
146393 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp0x, ._ },
146394 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
146395 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp0x, ._ },
146396 } },
146397 }, .{
146398 .required_features = .{ .avx512f, null, null, null },
146399 .dst_constraints = .{ .{ .int = .qword }, .any },
146400 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
146401 .patterns = &.{
146402 .{ .src = .{ .to_mem, .none, .none } },
146403 },
146404 .extra_temps = .{
146405 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
146406 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146407 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
146408 .unused,
146409 .unused,
146410 .unused,
146411 .unused,
146412 .unused,
146413 .unused,
146414 .unused,
146415 .unused,
146416 },
146417 .dst_temps = .{ .{ .rc = .sse }, .unused },
146418 .each = .{ .once = &.{
146419 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146420 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
146421 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
146422 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ },
146423 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
146424 .{ ._, .vp_q, .add, .dst0y, .dst0y, .tmp2y, ._ },
146425 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
146426 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
146427 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146428 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
146429 } },
146430 }, .{
146431 .required_features = .{ .avx2, null, null, null },
146432 .dst_constraints = .{ .{ .int = .qword }, .any },
146433 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
146434 .patterns = &.{
146435 .{ .src = .{ .to_mem, .none, .none } },
146436 },
146437 .extra_temps = .{
146438 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146439 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146440 .unused,
146441 .unused,
146442 .unused,
146443 .unused,
146444 .unused,
146445 .unused,
146446 .unused,
146447 .unused,
146448 .unused,
146449 },
146450 .dst_temps = .{ .{ .rc = .sse }, .unused },
146451 .clobbers = .{ .eflags = true },
146452 .each = .{ .once = &.{
146453 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
146454 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
146455 .{ .@"0:", .vp_q, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
146456 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
146457 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146458 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
146459 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp1x, ._ },
146460 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
146461 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp1x, ._ },
146462 } },
146463 }, .{
146464 .required_features = .{ .avx, null, null, null },
146465 .dst_constraints = .{ .{ .int = .qword }, .any },
146466 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
146467 .patterns = &.{
146468 .{ .src = .{ .to_mem, .none, .none } },
146469 },
146470 .extra_temps = .{
146471 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146472 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146473 .unused,
146474 .unused,
146475 .unused,
146476 .unused,
146477 .unused,
146478 .unused,
146479 .unused,
146480 .unused,
146481 .unused,
146482 },
146483 .dst_temps = .{ .{ .rc = .sse }, .unused },
146484 .clobbers = .{ .eflags = true },
146485 .each = .{ .once = &.{
146486 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
146487 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
146488 .{ .@"0:", .vp_q, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
146489 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
146490 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146491 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
146492 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp1x, ._ },
146493 } },
146494 }, .{
146495 .required_features = .{ .sse2, null, null, null },
146496 .dst_constraints = .{ .{ .int = .qword }, .any },
146497 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
146498 .patterns = &.{
146499 .{ .src = .{ .to_mem, .none, .none } },
146500 },
146501 .extra_temps = .{
146502 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146503 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146504 .unused,
146505 .unused,
146506 .unused,
146507 .unused,
146508 .unused,
146509 .unused,
146510 .unused,
146511 .unused,
146512 .unused,
146513 },
146514 .dst_temps = .{ .{ .rc = .sse }, .unused },
146515 .clobbers = .{ .eflags = true },
146516 .each = .{ .once = &.{
146517 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
146518 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
146519 .{ .@"0:", .p_q, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
146520 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
146521 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146522 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
146523 .{ ._, .p_q, .add, .dst0x, .tmp1x, ._, ._ },
146524 } },
146525 }, .{
146526 .required_features = .{ .avx512f, null, null, null },
146527 .dst_constraints = .{ .{ .int = .qword }, .any },
146528 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
146529 .patterns = &.{
146530 .{ .src = .{ .to_mem, .none, .none } },
146531 },
146532 .extra_temps = .{
146533 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146534 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146535 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
146536 .unused,
146537 .unused,
146538 .unused,
146539 .unused,
146540 .unused,
146541 .unused,
146542 .unused,
146543 .unused,
146544 },
146545 .dst_temps = .{ .{ .rc = .sse }, .unused },
146546 .clobbers = .{ .eflags = true },
146547 .each = .{ .once = &.{
146548 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146549 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
146550 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
146551 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
146552 .{ ._, .vp_, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
146553 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
146554 .{ .@"0:", .vp_q, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
146555 .{ ._, .vp_q, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
146556 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
146557 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146558 .{ ._, .vp_q, .add, .dst0y, .dst0y, .tmp2y, ._ },
146559 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
146560 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
146561 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146562 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
146563 } },
146564 }, .{
146565 .required_features = .{ .avx2, null, null, null },
146566 .dst_constraints = .{ .{ .int = .qword }, .any },
146567 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
146568 .patterns = &.{
146569 .{ .src = .{ .to_mem, .none, .none } },
146570 },
146571 .extra_temps = .{
146572 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146573 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146574 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146575 .unused,
146576 .unused,
146577 .unused,
146578 .unused,
146579 .unused,
146580 .unused,
146581 .unused,
146582 .unused,
146583 },
146584 .dst_temps = .{ .{ .rc = .sse }, .unused },
146585 .clobbers = .{ .eflags = true },
146586 .each = .{ .once = &.{
146587 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146588 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
146589 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
146590 .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
146591 .{ .@"0:", .vp_q, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
146592 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
146593 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146594 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
146595 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
146596 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146597 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
146598 } },
146599 }, .{
146600 .required_features = .{ .avx, null, null, null },
146601 .dst_constraints = .{ .{ .int = .qword }, .any },
146602 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
146603 .patterns = &.{
146604 .{ .src = .{ .to_mem, .none, .none } },
146605 },
146606 .extra_temps = .{
146607 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146608 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146609 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146610 .unused,
146611 .unused,
146612 .unused,
146613 .unused,
146614 .unused,
146615 .unused,
146616 .unused,
146617 .unused,
146618 },
146619 .dst_temps = .{ .{ .rc = .sse }, .unused },
146620 .clobbers = .{ .eflags = true },
146621 .each = .{ .once = &.{
146622 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146623 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
146624 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
146625 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
146626 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
146627 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
146628 .{ .@"0:", .vp_q, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
146629 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
146630 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146631 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146632 .{ ._, .vp_q, .add, .dst0x, .dst0x, .tmp2x, ._ },
146633 } },
146634 }, .{
146635 .required_features = .{ .sse2, null, null, null },
146636 .dst_constraints = .{ .{ .int = .qword }, .any },
146637 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
146638 .patterns = &.{
146639 .{ .src = .{ .to_mem, .none, .none } },
146640 },
146641 .extra_temps = .{
146642 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146643 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
146644 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
146645 .unused,
146646 .unused,
146647 .unused,
146648 .unused,
146649 .unused,
146650 .unused,
146651 .unused,
146652 .unused,
146653 },
146654 .dst_temps = .{ .{ .rc = .sse }, .unused },
146655 .clobbers = .{ .eflags = true },
146656 .each = .{ .once = &.{
146657 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
146658 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
146659 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
146660 .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
146661 .{ .@"0:", .p_q, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
146662 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
146663 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146664 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
146665 .{ ._, .p_q, .add, .dst0x, .tmp2x, ._, ._ },
146666 } },
146667 }, .{
146668 .required_features = .{ .@"64bit", null, null, null },
146669 .dst_constraints = .{ .{ .int = .qword }, .any },
146670 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any },
146671 .patterns = &.{
146672 .{ .src = .{ .to_mem, .none, .none } },
146673 },
146674 .extra_temps = .{
146675 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146676 .unused,
146677 .unused,
146678 .unused,
146679 .unused,
146680 .unused,
146681 .unused,
146682 .unused,
146683 .unused,
146684 .unused,
146685 .unused,
146686 },
146687 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
146688 .clobbers = .{ .eflags = true },
146689 .each = .{ .once = &.{
146690 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
146691 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
146692 .{ .@"0:", ._, .add, .dst0q, .memi(.src0q, .tmp0), ._, ._ },
146693 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
146694 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146695 } },
146696 }, .{
146697 .required_features = .{ .@"64bit", null, null, null },
146698 .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
146699 .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },
146700 .patterns = &.{
146701 .{ .src = .{ .to_mem, .none, .none } },
146702 },
146703 .extra_temps = .{
146704 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
146705 .{ .type = .u32, .kind = .{ .reg = .rsi } },
146706 .{ .type = .usize, .kind = .{ .reg = .rdi } },
146707 .{ .type = .u64, .kind = .{ .reg = .rcx } },
146708 .unused,
146709 .unused,
146710 .unused,
146711 .unused,
146712 .unused,
146713 .unused,
146714 .unused,
146715 },
146716 .dst_temps = .{ .mem, .unused },
146717 .clobbers = .{ .eflags = true },
146718 .each = .{ .once = &.{
146719 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
146720 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
146721 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
146722 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_size_div_8), ._, ._ },
146723 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
146724 .{ .@"0:", ._, .mov, .tmp1p, .sa(.dst0, .sub_size_div_8), ._, ._ },
146725 .{ ._, ._, .lea, .tmp2q, .memi(.src0, .tmp0), ._, ._ },
146726 .{ ._, ._c, .cl, ._, ._, ._, ._ },
146727 .{ .@"1:", ._, .mov, .tmp3q, .leasia(.tmp2q, .@"8", .tmp1, .add_src0_elem_size), ._, ._ },
146728 .{ ._, ._, .adc, .memsia(.dst0q, .@"8", .tmp1, .add_size), .tmp3q, ._, ._ },
146729 .{ ._, ._c, .in, .tmp1p, ._, ._, ._ },
146730 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
146731 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
146732 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
146733 } },
146734 }, .{
146735 .required_features = .{ .f16c, .fast_hops, null, null },
146736 .dst_constraints = .{ .{ .float = .word }, .any },
146737 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
146738 .patterns = &.{
146739 .{ .src = .{ .mem, .none, .none } },
146740 .{ .src = .{ .to_sse, .none, .none } },
146741 },
146742 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146743 .each = .{ .once = &.{
146744 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
146745 .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ },
146746 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
146747 } },
146748 }, .{
146749 .required_features = .{ .f16c, null, null, null },
146750 .dst_constraints = .{ .{ .float = .word }, .any },
146751 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
146752 .patterns = &.{
146753 .{ .src = .{ .mem, .none, .none } },
146754 .{ .src = .{ .to_sse, .none, .none } },
146755 },
146756 .extra_temps = .{
146757 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
146758 .unused,
146759 .unused,
146760 .unused,
146761 .unused,
146762 .unused,
146763 .unused,
146764 .unused,
146765 .unused,
146766 .unused,
146767 .unused,
146768 },
146769 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146770 .each = .{ .once = &.{
146771 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
146772 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
146773 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
146774 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
146775 } },
146776 }, .{
146777 .required_features = .{ .f16c, .fast_hops, null, null },
146778 .dst_constraints = .{ .{ .float = .word }, .any },
146779 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
146780 .patterns = &.{
146781 .{ .src = .{ .mem, .none, .none } },
146782 .{ .src = .{ .to_sse, .none, .none } },
146783 },
146784 .extra_temps = .{
146785 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
146786 .unused,
146787 .unused,
146788 .unused,
146789 .unused,
146790 .unused,
146791 .unused,
146792 .unused,
146793 .unused,
146794 .unused,
146795 .unused,
146796 },
146797 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146798 .each = .{ .once = &.{
146799 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
146800 .{ ._, .vh_ps, .add, .tmp0x, .dst0x, .dst0x, ._ },
146801 .{ ._, .v_ps, .shuf, .dst0x, .dst0x, .dst0x, .ui(0b11_10) },
146802 .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
146803 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
146804 } },
146805 }, .{
146806 .required_features = .{ .f16c, null, null, null },
146807 .dst_constraints = .{ .{ .float = .word }, .any },
146808 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
146809 .patterns = &.{
146810 .{ .src = .{ .mem, .none, .none } },
146811 .{ .src = .{ .to_sse, .none, .none } },
146812 },
146813 .extra_temps = .{
146814 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
146815 .unused,
146816 .unused,
146817 .unused,
146818 .unused,
146819 .unused,
146820 .unused,
146821 .unused,
146822 .unused,
146823 .unused,
146824 .unused,
146825 },
146826 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
146827 .each = .{ .once = &.{
146828 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
146829 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
146830 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
146831 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
146832 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
146833 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
146834 } },
146835 }, .{
146836 .required_features = .{ .f16c, .fast_hops, null, null },
146837 .dst_constraints = .{ .{ .float = .word }, .any },
146838 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
146839 .patterns = &.{
146840 .{ .src = .{ .to_mem, .none, .none } },
146841 },
146842 .extra_temps = .{
146843 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
146844 .{ .type = .f16, .kind = .{ .rc = .sse } },
146845 .unused,
146846 .unused,
146847 .unused,
146848 .unused,
146849 .unused,
146850 .unused,
146851 .unused,
146852 .unused,
146853 .unused,
146854 },
146855 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
146856 .clobbers = .{ .eflags = true },
146857 .each = .{ .once = &.{
146858 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
146859 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
146860 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) },
146861 .{ .@"0:", .vp_w, .insr, .dst0x, .dst0x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(1) },
146862 .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
146863 .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ },
146864 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
146865 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
146866 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
146867 } },
146868 }, .{
146869 .required_features = .{ .f16c, null, null, null },
146870 .dst_constraints = .{ .{ .float = .word }, .any },
146871 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
146872 .patterns = &.{
146873 .{ .src = .{ .to_mem, .none, .none } },
146874 },
146875 .extra_temps = .{
146876 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
146877 .{ .type = .f16, .kind = .{ .rc = .sse } },
146878 .unused,
146879 .unused,
146880 .unused,
146881 .unused,
146882 .unused,
146883 .unused,
146884 .unused,
146885 .unused,
146886 .unused,
146887 },
146888 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
146889 .clobbers = .{ .eflags = true },
146890 .each = .{ .once = &.{
146891 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
146892 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
146893 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) },
146894 .{ .@"0:", .vp_w, .insr, .dst0x, .dst0x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(1) },
146895 .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
146896 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
146897 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
146898 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
146899 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
146900 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
146901 } },
146902 }, .{
146903 .required_features = .{ .avx, null, null, null },
146904 .dst_constraints = .{ .{ .float = .word }, .any },
146905 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
146906 .patterns = &.{
146907 .{ .src = .{ .to_mem, .none, .none } },
146908 },
146909 .call_frame = .{ .alignment = .@"16" },
146910 .extra_temps = .{
146911 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
146912 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
146913 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
146914 .unused,
146915 .unused,
146916 .unused,
146917 .unused,
146918 .unused,
146919 .unused,
146920 .unused,
146921 .unused,
146922 },
146923 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
146924 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
146925 .each = .{ .once = &.{
146926 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
146927 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
146928 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) },
146929 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
146930 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
146931 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
146932 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
146933 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
146934 } },
146935 }, .{
146936 .required_features = .{ .sse2, null, null, null },
146937 .dst_constraints = .{ .{ .float = .word }, .any },
146938 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
146939 .patterns = &.{
146940 .{ .src = .{ .to_mem, .none, .none } },
146941 },
146942 .call_frame = .{ .alignment = .@"16" },
146943 .extra_temps = .{
146944 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
146945 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
146946 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
146947 .unused,
146948 .unused,
146949 .unused,
146950 .unused,
146951 .unused,
146952 .unused,
146953 .unused,
146954 .unused,
146955 },
146956 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
146957 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
146958 .each = .{ .once = &.{
146959 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
146960 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
146961 .{ ._, .p_w, .insr, .dst0x, .mem(.src0w), .ui(0), ._ },
146962 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
146963 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
146964 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
146965 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
146966 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
146967 } },
146968 }, .{
146969 .required_features = .{ .sse, null, null, null },
146970 .dst_constraints = .{ .{ .float = .word }, .any },
146971 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
146972 .patterns = &.{
146973 .{ .src = .{ .to_mem, .none, .none } },
146974 },
146975 .call_frame = .{ .alignment = .@"16" },
146976 .extra_temps = .{
146977 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
146978 .{ .type = .f16, .kind = .{ .reg = .ax } },
146979 .{ .type = .f32, .kind = .mem },
146980 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
146981 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
146982 .unused,
146983 .unused,
146984 .unused,
146985 .unused,
146986 .unused,
146987 .unused,
146988 },
146989 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
146990 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
146991 .each = .{ .once = &.{
146992 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
146993 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
146994 .{ ._, ._, .movzx, .tmp1d, .mem(.src0w), ._, ._ },
146995 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
146996 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
146997 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
146998 .{ ._, ._ss, .mov, .tmp3x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
146999 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
147000 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
147001 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147002 } },
147003 }, .{
147004 .required_features = .{ .avx, .fast_hops, null, null },
147005 .dst_constraints = .{ .{ .float = .dword }, .any },
147006 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
147007 .patterns = &.{
147008 .{ .src = .{ .to_sse, .none, .none } },
147009 },
147010 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147011 .each = .{ .once = &.{
147012 .{ ._, .vh_ps, .add, .dst0x, .src0x, .src0x, ._ },
147013 } },
147014 }, .{
147015 .required_features = .{ .avx, null, null, null },
147016 .dst_constraints = .{ .{ .float = .dword }, .any },
147017 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
147018 .patterns = &.{
147019 .{ .src = .{ .to_sse, .none, .none } },
147020 },
147021 .extra_temps = .{
147022 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
147023 .unused,
147024 .unused,
147025 .unused,
147026 .unused,
147027 .unused,
147028 .unused,
147029 .unused,
147030 .unused,
147031 .unused,
147032 .unused,
147033 },
147034 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147035 .each = .{ .once = &.{
147036 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
147037 .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ },
147038 } },
147039 }, .{
147040 .required_features = .{ .sse3, .fast_hops, null, null },
147041 .dst_constraints = .{ .{ .float = .dword }, .any },
147042 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
147043 .patterns = &.{
147044 .{ .src = .{ .to_mut_sse, .none, .none } },
147045 },
147046 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147047 .each = .{ .once = &.{
147048 .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ },
147049 } },
147050 }, .{
147051 .required_features = .{ .sse, null, null, null },
147052 .dst_constraints = .{ .{ .float = .dword }, .any },
147053 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
147054 .patterns = &.{
147055 .{ .src = .{ .to_mut_sse, .none, .none } },
147056 },
147057 .extra_temps = .{
147058 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
147059 .unused,
147060 .unused,
147061 .unused,
147062 .unused,
147063 .unused,
147064 .unused,
147065 .unused,
147066 .unused,
147067 .unused,
147068 .unused,
147069 },
147070 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147071 .each = .{ .once = &.{
147072 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
147073 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
147074 .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
147075 } },
147076 }, .{
147077 .required_features = .{ .avx, .fast_hops, null, null },
147078 .dst_constraints = .{ .{ .float = .dword }, .any },
147079 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
147080 .patterns = &.{
147081 .{ .src = .{ .to_sse, .none, .none } },
147082 },
147083 .extra_temps = .{
147084 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
147085 .unused,
147086 .unused,
147087 .unused,
147088 .unused,
147089 .unused,
147090 .unused,
147091 .unused,
147092 .unused,
147093 .unused,
147094 .unused,
147095 },
147096 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147097 .each = .{ .once = &.{
147098 .{ ._, .vh_ps, .add, .tmp0x, .src0x, .src0x, ._ },
147099 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
147100 .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
147101 } },
147102 }, .{
147103 .required_features = .{ .avx, null, null, null },
147104 .dst_constraints = .{ .{ .float = .dword }, .any },
147105 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
147106 .patterns = &.{
147107 .{ .src = .{ .to_sse, .none, .none } },
147108 },
147109 .extra_temps = .{
147110 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
147111 .unused,
147112 .unused,
147113 .unused,
147114 .unused,
147115 .unused,
147116 .unused,
147117 .unused,
147118 .unused,
147119 .unused,
147120 .unused,
147121 },
147122 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147123 .each = .{ .once = &.{
147124 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
147125 .{ ._, .v_ss, .add, .tmp0x, .src0x, .tmp0x, ._ },
147126 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
147127 .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
147128 } },
147129 }, .{
147130 .required_features = .{ .sse3, .fast_hops, null, null },
147131 .dst_constraints = .{ .{ .float = .dword }, .any },
147132 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
147133 .patterns = &.{
147134 .{ .src = .{ .to_mut_sse, .none, .none } },
147135 },
147136 .extra_temps = .{
147137 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
147138 .unused,
147139 .unused,
147140 .unused,
147141 .unused,
147142 .unused,
147143 .unused,
147144 .unused,
147145 .unused,
147146 .unused,
147147 .unused,
147148 },
147149 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147150 .each = .{ .once = &.{
147151 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
147152 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
147153 .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ },
147154 .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
147155 } },
147156 }, .{
147157 .required_features = .{ .sse, null, null, null },
147158 .dst_constraints = .{ .{ .float = .dword }, .any },
147159 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
147160 .patterns = &.{
147161 .{ .src = .{ .to_mut_sse, .none, .none } },
147162 },
147163 .extra_temps = .{
147164 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
147165 .unused,
147166 .unused,
147167 .unused,
147168 .unused,
147169 .unused,
147170 .unused,
147171 .unused,
147172 .unused,
147173 .unused,
147174 .unused,
147175 },
147176 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147177 .each = .{ .once = &.{
147178 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
147179 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
147180 .{ ._, ._ss, .add, .tmp0x, .src0x, ._, ._ },
147181 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
147182 .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
147183 } },
147184 }, .{
147185 .required_features = .{ .avx, null, null, null },
147186 .dst_constraints = .{ .{ .float = .dword }, .any },
147187 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any },
147188 .patterns = &.{
147189 .{ .src = .{ .to_mem, .none, .none } },
147190 },
147191 .extra_temps = .{
147192 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147193 .unused,
147194 .unused,
147195 .unused,
147196 .unused,
147197 .unused,
147198 .unused,
147199 .unused,
147200 .unused,
147201 .unused,
147202 .unused,
147203 },
147204 .dst_temps = .{ .{ .rc = .sse }, .unused },
147205 .clobbers = .{ .eflags = true },
147206 .each = .{ .once = &.{
147207 .{ ._, ._, .mov, .tmp0p, .sia(4, .src0, .sub_unaligned_size), ._, ._ },
147208 .{ ._, .v_ss, .mov, .dst0x, .mem(.src0d), ._, ._ },
147209 .{ .@"0:", .v_ss, .add, .dst0x, .dst0x, .memia(.src0d, .tmp0, .add_unaligned_size), ._ },
147210 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
147211 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147212 } },
147213 }, .{
147214 .required_features = .{ .sse, null, null, null },
147215 .dst_constraints = .{ .{ .float = .dword }, .any },
147216 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any },
147217 .patterns = &.{
147218 .{ .src = .{ .to_mem, .none, .none } },
147219 },
147220 .extra_temps = .{
147221 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147222 .unused,
147223 .unused,
147224 .unused,
147225 .unused,
147226 .unused,
147227 .unused,
147228 .unused,
147229 .unused,
147230 .unused,
147231 .unused,
147232 },
147233 .dst_temps = .{ .{ .rc = .sse }, .unused },
147234 .clobbers = .{ .eflags = true },
147235 .each = .{ .once = &.{
147236 .{ ._, ._, .mov, .tmp0p, .sia(4, .src0, .sub_unaligned_size), ._, ._ },
147237 .{ ._, ._ss, .mov, .dst0x, .mem(.src0d), ._, ._ },
147238 .{ .@"0:", ._ss, .add, .dst0x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
147239 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
147240 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147241 } },
147242 }, .{
147243 .required_features = .{ .avx, .fast_hops, null, null },
147244 .dst_constraints = .{ .{ .float = .qword }, .any },
147245 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
147246 .patterns = &.{
147247 .{ .src = .{ .to_sse, .none, .none } },
147248 },
147249 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147250 .each = .{ .once = &.{
147251 .{ ._, .vh_pd, .add, .dst0x, .src0x, .src0x, ._ },
147252 } },
147253 }, .{
147254 .required_features = .{ .avx, null, null, null },
147255 .dst_constraints = .{ .{ .float = .qword }, .any },
147256 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
147257 .patterns = &.{
147258 .{ .src = .{ .to_sse, .none, .none } },
147259 },
147260 .extra_temps = .{
147261 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
147262 .unused,
147263 .unused,
147264 .unused,
147265 .unused,
147266 .unused,
147267 .unused,
147268 .unused,
147269 .unused,
147270 .unused,
147271 .unused,
147272 },
147273 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147274 .each = .{ .once = &.{
147275 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
147276 .{ ._, .v_sd, .add, .dst0x, .src0x, .tmp0x, ._ },
147277 } },
147278 }, .{
147279 .required_features = .{ .sse3, .fast_hops, null, null },
147280 .dst_constraints = .{ .{ .float = .qword }, .any },
147281 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
147282 .patterns = &.{
147283 .{ .src = .{ .to_mut_sse, .none, .none } },
147284 },
147285 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147286 .each = .{ .once = &.{
147287 .{ ._, .h_pd, .add, .dst0x, .src0x, ._, ._ },
147288 } },
147289 }, .{
147290 .required_features = .{ .sse2, null, null, null },
147291 .dst_constraints = .{ .{ .float = .qword }, .any },
147292 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
147293 .patterns = &.{
147294 .{ .src = .{ .to_mut_sse, .none, .none } },
147295 },
147296 .extra_temps = .{
147297 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
147298 .unused,
147299 .unused,
147300 .unused,
147301 .unused,
147302 .unused,
147303 .unused,
147304 .unused,
147305 .unused,
147306 .unused,
147307 .unused,
147308 },
147309 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147310 .each = .{ .once = &.{
147311 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
147312 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
147313 .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ },
147314 } },
147315 }, .{
147316 .required_features = .{ .avx, .fast_hops, null, null },
147317 .dst_constraints = .{ .{ .float = .qword }, .any },
147318 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
147319 .patterns = &.{
147320 .{ .src = .{ .to_sse, .none, .none } },
147321 },
147322 .extra_temps = .{
147323 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
147324 .unused,
147325 .unused,
147326 .unused,
147327 .unused,
147328 .unused,
147329 .unused,
147330 .unused,
147331 .unused,
147332 .unused,
147333 .unused,
147334 },
147335 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147336 .each = .{ .once = &.{
147337 .{ ._, .vh_pd, .add, .tmp0x, .src0x, .src0x, ._ },
147338 .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ },
147339 .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ },
147340 } },
147341 }, .{
147342 .required_features = .{ .avx, null, null, null },
147343 .dst_constraints = .{ .{ .float = .qword }, .any },
147344 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
147345 .patterns = &.{
147346 .{ .src = .{ .to_sse, .none, .none } },
147347 },
147348 .extra_temps = .{
147349 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
147350 .unused,
147351 .unused,
147352 .unused,
147353 .unused,
147354 .unused,
147355 .unused,
147356 .unused,
147357 .unused,
147358 .unused,
147359 .unused,
147360 },
147361 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147362 .each = .{ .once = &.{
147363 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
147364 .{ ._, .v_sd, .add, .tmp0x, .src0x, .tmp0x, ._ },
147365 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
147366 .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ },
147367 } },
147368 }, .{
147369 .required_features = .{ .avx, null, null, null },
147370 .dst_constraints = .{ .{ .float = .qword }, .any },
147371 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
147372 .patterns = &.{
147373 .{ .src = .{ .to_mem, .none, .none } },
147374 },
147375 .extra_temps = .{
147376 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147377 .unused,
147378 .unused,
147379 .unused,
147380 .unused,
147381 .unused,
147382 .unused,
147383 .unused,
147384 .unused,
147385 .unused,
147386 .unused,
147387 },
147388 .dst_temps = .{ .{ .rc = .sse }, .unused },
147389 .clobbers = .{ .eflags = true },
147390 .each = .{ .once = &.{
147391 .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ },
147392 .{ ._, .v_sd, .mov, .dst0x, .mem(.src0q), ._, ._ },
147393 .{ .@"0:", .v_sd, .add, .dst0x, .dst0x, .memia(.src0q, .tmp0, .add_unaligned_size), ._ },
147394 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
147395 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147396 } },
147397 }, .{
147398 .required_features = .{ .sse2, null, null, null },
147399 .dst_constraints = .{ .{ .float = .qword }, .any },
147400 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
147401 .patterns = &.{
147402 .{ .src = .{ .to_mem, .none, .none } },
147403 },
147404 .extra_temps = .{
147405 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147406 .unused,
147407 .unused,
147408 .unused,
147409 .unused,
147410 .unused,
147411 .unused,
147412 .unused,
147413 .unused,
147414 .unused,
147415 .unused,
147416 },
147417 .dst_temps = .{ .{ .rc = .sse }, .unused },
147418 .clobbers = .{ .eflags = true },
147419 .each = .{ .once = &.{
147420 .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ },
147421 .{ ._, ._sd, .mov, .dst0x, .mem(.src0q), ._, ._ },
147422 .{ .@"0:", ._sd, .add, .dst0x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
147423 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
147424 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147425 } },
147426 }, .{
147427 .required_features = .{ .x87, null, null, null },
147428 .dst_constraints = .{ .{ .float = .qword }, .any },
147429 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
147430 .patterns = &.{
147431 .{ .src = .{ .to_mem, .none, .none } },
147432 },
147433 .extra_temps = .{
147434 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147435 .{ .type = .f64, .kind = .{ .reg = .st7 } },
147436 .unused,
147437 .unused,
147438 .unused,
147439 .unused,
147440 .unused,
147441 .unused,
147442 .unused,
147443 .unused,
147444 .unused,
147445 },
147446 .dst_temps = .{ .mem, .unused },
147447 .clobbers = .{ .eflags = true },
147448 .each = .{ .once = &.{
147449 .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ },
147450 .{ ._, .f_, .ld, .mem(.src0q), ._, ._, ._ },
147451 .{ .@"0:", .f_, .add, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
147452 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
147453 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147454 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
147455 } },
147456 }, .{
147457 .required_features = .{ .x87, null, null, null },
147458 .dst_constraints = .{ .{ .float = .tbyte }, .any },
147459 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
147460 .patterns = &.{
147461 .{ .src = .{ .to_mem, .none, .none } },
147462 },
147463 .extra_temps = .{
147464 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147465 .{ .type = .f80, .kind = .{ .reg = .st7 } },
147466 .{ .type = .f80, .kind = .{ .reg = .st6 } },
147467 .unused,
147468 .unused,
147469 .unused,
147470 .unused,
147471 .unused,
147472 .unused,
147473 .unused,
147474 .unused,
147475 },
147476 .dst_temps = .{ .{ .rc = .x87 }, .unused },
147477 .clobbers = .{ .eflags = true },
147478 .each = .{ .once = &.{
147479 .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ },
147480 .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ },
147481 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
147482 .{ ._, .f_p, .add, ._, ._, ._, ._ },
147483 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
147484 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147485 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
147486 } },
147487 }, .{
147488 .required_features = .{ .avx, null, null, null },
147489 .dst_constraints = .{ .{ .float = .xword }, .any },
147490 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
147491 .patterns = &.{
147492 .{ .src = .{ .to_mem, .none, .none } },
147493 },
147494 .call_frame = .{ .alignment = .@"16" },
147495 .extra_temps = .{
147496 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147497 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
147498 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
147499 .unused,
147500 .unused,
147501 .unused,
147502 .unused,
147503 .unused,
147504 .unused,
147505 .unused,
147506 .unused,
147507 },
147508 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
147509 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
147510 .each = .{ .once = &.{
147511 .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ },
147512 .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ },
147513 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
147514 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
147515 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
147516 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147517 } },
147518 }, .{
147519 .required_features = .{ .sse2, null, null, null },
147520 .dst_constraints = .{ .{ .float = .xword }, .any },
147521 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
147522 .patterns = &.{
147523 .{ .src = .{ .to_mem, .none, .none } },
147524 },
147525 .call_frame = .{ .alignment = .@"16" },
147526 .extra_temps = .{
147527 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147528 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
147529 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
147530 .unused,
147531 .unused,
147532 .unused,
147533 .unused,
147534 .unused,
147535 .unused,
147536 .unused,
147537 .unused,
147538 },
147539 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
147540 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
147541 .each = .{ .once = &.{
147542 .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ },
147543 .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ },
147544 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
147545 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
147546 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
147547 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147548 } },
147549 }, .{
147550 .required_features = .{ .sse, null, null, null },
147551 .dst_constraints = .{ .{ .float = .xword }, .any },
147552 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
147553 .patterns = &.{
147554 .{ .src = .{ .to_mem, .none, .none } },
147555 },
147556 .call_frame = .{ .alignment = .@"16" },
147557 .extra_temps = .{
147558 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
147559 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
147560 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
147561 .unused,
147562 .unused,
147563 .unused,
147564 .unused,
147565 .unused,
147566 .unused,
147567 .unused,
147568 .unused,
147569 },
147570 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
147571 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
147572 .each = .{ .once = &.{
147573 .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ },
147574 .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ },
147575 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
147576 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
147577 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
147578 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
147579 } },
147580 } },
147581 .Mul => comptime &.{ .{
147582 .required_features = .{ .avx, null, null, null },
147583 .dst_constraints = .{ .{ .int = .byte }, .any },
147584 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
147585 .patterns = &.{
147586 .{ .src = .{ .to_sse, .none, .none } },
147587 },
147588 .extra_temps = .{
147589 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147590 .unused,
147591 .unused,
147592 .unused,
147593 .unused,
147594 .unused,
147595 .unused,
147596 .unused,
147597 .unused,
147598 .unused,
147599 .unused,
147600 },
147601 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147602 .each = .{ .once = &.{
147603 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
147604 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
147605 } },
147606 }, .{
147607 .required_features = .{ .sse2, null, null, null },
147608 .dst_constraints = .{ .{ .int = .byte }, .any },
147609 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
147610 .patterns = &.{
147611 .{ .src = .{ .to_mut_sse, .none, .none } },
147612 },
147613 .extra_temps = .{
147614 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147615 .unused,
147616 .unused,
147617 .unused,
147618 .unused,
147619 .unused,
147620 .unused,
147621 .unused,
147622 .unused,
147623 .unused,
147624 .unused,
147625 },
147626 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147627 .each = .{ .once = &.{
147628 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
147629 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
147630 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
147631 } },
147632 }, .{
147633 .required_features = .{ .avx, null, null, null },
147634 .dst_constraints = .{ .{ .int = .byte }, .any },
147635 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
147636 .patterns = &.{
147637 .{ .src = .{ .to_sse, .none, .none } },
147638 },
147639 .extra_temps = .{
147640 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147641 .unused,
147642 .unused,
147643 .unused,
147644 .unused,
147645 .unused,
147646 .unused,
147647 .unused,
147648 .unused,
147649 .unused,
147650 .unused,
147651 },
147652 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147653 .each = .{ .once = &.{
147654 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
147655 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
147656 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
147657 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
147658 } },
147659 }, .{
147660 .required_features = .{ .sse2, null, null, null },
147661 .dst_constraints = .{ .{ .int = .byte }, .any },
147662 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
147663 .patterns = &.{
147664 .{ .src = .{ .to_mut_sse, .none, .none } },
147665 },
147666 .extra_temps = .{
147667 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147668 .unused,
147669 .unused,
147670 .unused,
147671 .unused,
147672 .unused,
147673 .unused,
147674 .unused,
147675 .unused,
147676 .unused,
147677 .unused,
147678 },
147679 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147680 .each = .{ .once = &.{
147681 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
147682 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
147683 .{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
147684 .{ ._, .p_w, .shufl, .dst0x, .tmp0x, .ui(0b01), ._ },
147685 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
147686 } },
147687 }, .{
147688 .required_features = .{ .avx, null, null, null },
147689 .dst_constraints = .{ .{ .int = .byte }, .any },
147690 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
147691 .patterns = &.{
147692 .{ .src = .{ .to_sse, .none, .none } },
147693 },
147694 .extra_temps = .{
147695 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147696 .unused,
147697 .unused,
147698 .unused,
147699 .unused,
147700 .unused,
147701 .unused,
147702 .unused,
147703 .unused,
147704 .unused,
147705 .unused,
147706 },
147707 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147708 .each = .{ .once = &.{
147709 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
147710 .{ ._, .vp_w, .mull, .tmp0x, .src0x, .tmp0x, ._ },
147711 .{ ._, .vp_w, .srl, .dst0x, .src0x, .ui(8), ._ },
147712 .{ ._, .vp_w, .mull, .dst0x, .tmp0x, .dst0x, ._ },
147713 } },
147714 }, .{
147715 .required_features = .{ .sse2, null, null, null },
147716 .dst_constraints = .{ .{ .int = .byte }, .any },
147717 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
147718 .patterns = &.{
147719 .{ .src = .{ .to_mut_sse, .none, .none } },
147720 },
147721 .extra_temps = .{
147722 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147723 .unused,
147724 .unused,
147725 .unused,
147726 .unused,
147727 .unused,
147728 .unused,
147729 .unused,
147730 .unused,
147731 .unused,
147732 .unused,
147733 },
147734 .dst_temps = .{ .{ .ref = .src0 }, .unused },
147735 .each = .{ .once = &.{
147736 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
147737 .{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
147738 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
147739 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
147740 } },
147741 }, .{
147742 .required_features = .{ .avx, null, null, null },
147743 .dst_constraints = .{ .{ .int = .byte }, .any },
147744 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
147745 .patterns = &.{
147746 .{ .src = .{ .to_sse, .none, .none } },
147747 },
147748 .extra_temps = .{
147749 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147750 .unused,
147751 .unused,
147752 .unused,
147753 .unused,
147754 .unused,
147755 .unused,
147756 .unused,
147757 .unused,
147758 .unused,
147759 .unused,
147760 },
147761 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147762 .each = .{ .once = &.{
147763 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
147764 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
147765 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
147766 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
147767 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
147768 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
147769 } },
147770 }, .{
147771 .required_features = .{ .sse2, null, null, null },
147772 .dst_constraints = .{ .{ .int = .byte }, .any },
147773 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
147774 .patterns = &.{
147775 .{ .src = .{ .to_sse, .none, .none } },
147776 },
147777 .extra_temps = .{
147778 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147779 .unused,
147780 .unused,
147781 .unused,
147782 .unused,
147783 .unused,
147784 .unused,
147785 .unused,
147786 .unused,
147787 .unused,
147788 .unused,
147789 },
147790 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147791 .each = .{ .once = &.{
147792 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
147793 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
147794 .{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
147795 .{ ._, .p_w, .shufl, .dst0x, .tmp0x, .ui(0b11_10), ._ },
147796 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
147797 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
147798 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
147799 } },
147800 }, .{
147801 .required_features = .{ .avx, null, null, null },
147802 .dst_constraints = .{ .{ .int = .byte }, .any },
147803 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
147804 .patterns = &.{
147805 .{ .src = .{ .mem, .none, .none } },
147806 .{ .src = .{ .to_sse, .none, .none } },
147807 },
147808 .extra_temps = .{
147809 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
147810 .{ .type = .vector_8_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
147811 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147812 .unused,
147813 .unused,
147814 .unused,
147815 .unused,
147816 .unused,
147817 .unused,
147818 .unused,
147819 .unused,
147820 },
147821 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147822 .each = .{ .once = &.{
147823 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
147824 .{ ._, .v_q, .mov, .tmp2x, .lea(.tmp0q), ._, ._ },
147825 .{ ._, .vp_, .andn, .dst0x, .tmp2x, .src0x, ._ },
147826 .{ ._, .vp_b, .sub, .dst0x, .dst0x, .tmp2x, ._ },
147827 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
147828 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
147829 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
147830 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
147831 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
147832 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
147833 } },
147834 }, .{
147835 .required_features = .{ .sse2, null, null, null },
147836 .dst_constraints = .{ .{ .int = .byte }, .any },
147837 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
147838 .patterns = &.{
147839 .{ .src = .{ .mem, .none, .none } },
147840 .{ .src = .{ .to_sse, .none, .none } },
147841 },
147842 .extra_temps = .{
147843 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
147844 .{ .type = .vector_8_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
147845 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147846 .unused,
147847 .unused,
147848 .unused,
147849 .unused,
147850 .unused,
147851 .unused,
147852 .unused,
147853 .unused,
147854 },
147855 .dst_temps = .{ .{ .rc = .sse }, .unused },
147856 .each = .{ .once = &.{
147857 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
147858 .{ ._, ._q, .mov, .tmp2x, .lea(.tmp0q), ._, ._ },
147859 .{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
147860 .{ ._, .p_, .andn, .dst0x, .src0x, ._, ._ },
147861 .{ ._, .p_b, .sub, .dst0x, .tmp2x, ._, ._ },
147862 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
147863 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
147864 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
147865 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
147866 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
147867 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
147868 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
147869 } },
147870 }, .{
147871 .required_features = .{ .avx, null, null, null },
147872 .dst_constraints = .{ .{ .int = .byte }, .any },
147873 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
147874 .patterns = &.{
147875 .{ .src = .{ .to_sse, .none, .none } },
147876 },
147877 .extra_temps = .{
147878 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147879 .unused,
147880 .unused,
147881 .unused,
147882 .unused,
147883 .unused,
147884 .unused,
147885 .unused,
147886 .unused,
147887 .unused,
147888 .unused,
147889 },
147890 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147891 .each = .{ .once = &.{
147892 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
147893 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
147894 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
147895 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
147896 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
147897 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
147898 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
147899 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
147900 } },
147901 }, .{
147902 .required_features = .{ .sse2, null, null, null },
147903 .dst_constraints = .{ .{ .int = .byte }, .any },
147904 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
147905 .patterns = &.{
147906 .{ .src = .{ .to_sse, .none, .none } },
147907 },
147908 .extra_temps = .{
147909 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147910 .unused,
147911 .unused,
147912 .unused,
147913 .unused,
147914 .unused,
147915 .unused,
147916 .unused,
147917 .unused,
147918 .unused,
147919 .unused,
147920 },
147921 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147922 .each = .{ .once = &.{
147923 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
147924 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
147925 .{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
147926 .{ ._, .p_d, .shuf, .dst0x, .tmp0x, .ui(0b11_10), ._ },
147927 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
147928 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
147929 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
147930 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
147931 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
147932 } },
147933 }, .{
147934 .required_features = .{ .avx, null, null, null },
147935 .dst_constraints = .{ .{ .int = .byte }, .any },
147936 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
147937 .patterns = &.{
147938 .{ .src = .{ .to_sse, .none, .none } },
147939 },
147940 .extra_temps = .{
147941 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
147942 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
147943 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147944 .unused,
147945 .unused,
147946 .unused,
147947 .unused,
147948 .unused,
147949 .unused,
147950 .unused,
147951 .unused,
147952 },
147953 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
147954 .each = .{ .once = &.{
147955 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
147956 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
147957 .{ ._, .vp_, .andn, .dst0x, .tmp2x, .src0x, ._ },
147958 .{ ._, .vp_b, .sub, .dst0x, .dst0x, .tmp2x, ._ },
147959 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
147960 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
147961 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
147962 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
147963 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
147964 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
147965 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
147966 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
147967 } },
147968 }, .{
147969 .required_features = .{ .sse2, null, null, null },
147970 .dst_constraints = .{ .{ .int = .byte }, .any },
147971 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
147972 .patterns = &.{
147973 .{ .src = .{ .mem, .none, .none } },
147974 .{ .src = .{ .to_sse, .none, .none } },
147975 },
147976 .extra_temps = .{
147977 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
147978 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
147979 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
147980 .unused,
147981 .unused,
147982 .unused,
147983 .unused,
147984 .unused,
147985 .unused,
147986 .unused,
147987 .unused,
147988 },
147989 .dst_temps = .{ .{ .rc = .sse }, .unused },
147990 .each = .{ .once = &.{
147991 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
147992 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
147993 .{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
147994 .{ ._, .p_, .andn, .dst0x, .src0x, ._, ._ },
147995 .{ ._, .p_b, .sub, .dst0x, .tmp2x, ._, ._ },
147996 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
147997 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
147998 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
147999 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148000 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148001 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148002 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148003 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148004 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148005 } },
148006 }, .{
148007 .required_features = .{ .avx2, null, null, null },
148008 .dst_constraints = .{ .{ .int = .byte }, .any },
148009 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
148010 .patterns = &.{
148011 .{ .src = .{ .to_sse, .none, .none } },
148012 },
148013 .extra_temps = .{
148014 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148015 .unused,
148016 .unused,
148017 .unused,
148018 .unused,
148019 .unused,
148020 .unused,
148021 .unused,
148022 .unused,
148023 .unused,
148024 .unused,
148025 },
148026 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148027 .each = .{ .once = &.{
148028 .{ ._, .vp_w, .srl, .tmp0y, .src0y, .ui(8), ._ },
148029 .{ ._, .vp_w, .mull, .dst0y, .src0y, .tmp0y, ._ },
148030 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
148031 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148032 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148033 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148034 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148035 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148036 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
148037 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148038 } },
148039 }, .{
148040 .required_features = .{ .avx, null, null, null },
148041 .dst_constraints = .{ .{ .int = .byte }, .any },
148042 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
148043 .patterns = &.{
148044 .{ .src = .{ .to_sse, .none, .none } },
148045 },
148046 .extra_temps = .{
148047 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
148048 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
148049 .unused,
148050 .unused,
148051 .unused,
148052 .unused,
148053 .unused,
148054 .unused,
148055 .unused,
148056 .unused,
148057 .unused,
148058 },
148059 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148060 .each = .{ .once = &.{
148061 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
148062 .{ ._, .vp_w, .srl, .tmp1x, .src0x, .ui(8), ._ },
148063 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp1x, ._ },
148064 .{ ._, .vp_w, .srl, .tmp1x, .tmp0x, .ui(8), ._ },
148065 .{ ._, .vp_w, .mull, .tmp0x, .tmp0x, .tmp1x, ._ },
148066 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148067 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148068 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148069 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148070 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148071 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
148072 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148073 } },
148074 }, .{
148075 .required_features = .{ .avx2, null, null, null },
148076 .dst_constraints = .{ .{ .int = .byte }, .any },
148077 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
148078 .patterns = &.{
148079 .{ .src = .{ .mem, .none, .none } },
148080 .{ .src = .{ .to_sse, .none, .none } },
148081 },
148082 .extra_temps = .{
148083 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
148084 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148085 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148086 .unused,
148087 .unused,
148088 .unused,
148089 .unused,
148090 .unused,
148091 .unused,
148092 .unused,
148093 .unused,
148094 },
148095 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148096 .each = .{ .once = &.{
148097 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148098 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
148099 .{ ._, .vp_, .andn, .dst0y, .tmp2y, .src0y, ._ },
148100 .{ ._, .vp_b, .sub, .dst0y, .dst0y, .tmp2y, ._ },
148101 .{ ._, .vp_w, .srl, .tmp2y, .dst0y, .ui(8), ._ },
148102 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
148103 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
148104 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148105 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148106 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148107 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148108 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148109 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148110 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148111 } },
148112 }, .{
148113 .required_features = .{ .avx, null, null, null },
148114 .dst_constraints = .{ .{ .int = .byte }, .any },
148115 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
148116 .patterns = &.{
148117 .{ .src = .{ .mem, .none, .none } },
148118 .{ .src = .{ .to_sse, .none, .none } },
148119 },
148120 .extra_temps = .{
148121 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
148122 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148123 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148124 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148125 .unused,
148126 .unused,
148127 .unused,
148128 .unused,
148129 .unused,
148130 .unused,
148131 .unused,
148132 },
148133 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148134 .each = .{ .once = &.{
148135 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148136 .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
148137 .{ ._, .v_ps, .andn, .tmp3y, .tmp2y, .src0y, ._ },
148138 .{ ._, .vp_b, .sub, .dst0x, .tmp3x, .tmp2x, ._ },
148139 .{ ._, .v_f128, .extract, .tmp2x, .tmp2y, .ui(1), ._ },
148140 .{ ._, .v_f128, .extract, .tmp3x, .tmp3y, .ui(1), ._ },
148141 .{ ._, .vp_b, .sub, .tmp2x, .tmp3x, .tmp2x, ._ },
148142 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
148143 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp3x, ._ },
148144 .{ ._, .vp_w, .srl, .tmp3x, .tmp2x, .ui(8), ._ },
148145 .{ ._, .vp_w, .mull, .tmp2x, .tmp2x, .tmp3x, ._ },
148146 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148147 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148148 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148149 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148150 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148151 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148152 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148153 } },
148154 }, .{
148155 .required_features = .{ .avx512f, null, null, null },
148156 .dst_constraints = .{ .{ .int = .byte }, .any },
148157 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
148158 .patterns = &.{
148159 .{ .src = .{ .to_mem, .none, .none } },
148160 },
148161 .extra_temps = .{
148162 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148163 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148164 .unused,
148165 .unused,
148166 .unused,
148167 .unused,
148168 .unused,
148169 .unused,
148170 .unused,
148171 .unused,
148172 .unused,
148173 },
148174 .dst_temps = .{ .{ .rc = .sse }, .unused },
148175 .each = .{ .once = &.{
148176 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
148177 .{ ._, .v_dqa, .mov, .tmp0y, .memd(.src0y, 32), ._, ._ },
148178 .{ ._, .vp_w, .srl, .tmp1y, .dst0y, .ui(8), ._ },
148179 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp1y, ._ },
148180 .{ ._, .vp_w, .srl, .tmp1y, .tmp0y, .ui(8), ._ },
148181 .{ ._, .vp_w, .mull, .tmp0y, .tmp0y, .tmp1y, ._ },
148182 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp0y, ._ },
148183 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
148184 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148185 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148186 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148187 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148188 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148189 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
148190 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148191 } },
148192 }, .{
148193 .required_features = .{ .avx512f, null, null, null },
148194 .dst_constraints = .{ .{ .int = .byte }, .any },
148195 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
148196 .patterns = &.{
148197 .{ .src = .{ .to_mem, .none, .none } },
148198 },
148199 .extra_temps = .{
148200 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
148201 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148202 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148203 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148204 .unused,
148205 .unused,
148206 .unused,
148207 .unused,
148208 .unused,
148209 .unused,
148210 .unused,
148211 },
148212 .dst_temps = .{ .{ .rc = .sse }, .unused },
148213 .each = .{ .once = &.{
148214 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148215 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
148216 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
148217 .{ ._, .vp_, .andn, .tmp3y, .tmp2y, .memd(.src0y, 32), ._ },
148218 .{ ._, .vp_b, .sub, .tmp2y, .tmp3y, .tmp2y, ._ },
148219 .{ ._, .vp_, .andn, .tmp3y, .dst0y, .mem(.src0y), ._ },
148220 .{ ._, .vp_b, .sub, .dst0y, .tmp3y, .dst0y, ._ },
148221 .{ ._, .vp_w, .srl, .tmp3y, .tmp2y, .ui(8), ._ },
148222 .{ ._, .vp_w, .mull, .tmp2y, .tmp2y, .tmp3y, ._ },
148223 .{ ._, .vp_w, .srl, .tmp3y, .dst0y, .ui(8), ._ },
148224 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp3y, ._ },
148225 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
148226 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
148227 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148228 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148229 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148230 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148231 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148232 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148233 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148234 } },
148235 }, .{
148236 .required_features = .{ .avx2, null, null, null },
148237 .dst_constraints = .{ .{ .int = .byte }, .any },
148238 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
148239 .patterns = &.{
148240 .{ .src = .{ .to_mem, .none, .none } },
148241 },
148242 .extra_temps = .{
148243 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148244 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148245 .unused,
148246 .unused,
148247 .unused,
148248 .unused,
148249 .unused,
148250 .unused,
148251 .unused,
148252 .unused,
148253 .unused,
148254 },
148255 .dst_temps = .{ .{ .rc = .sse }, .unused },
148256 .clobbers = .{ .eflags = true },
148257 .each = .{ .once = &.{
148258 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_unaligned_size), ._, ._ },
148259 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
148260 .{ ._, .vp_w, .srl, .tmp1y, .dst0y, .ui(8), ._ },
148261 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp1y, ._ },
148262 .{ .@"0:", .vp_w, .movzxb, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
148263 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp1y, ._ },
148264 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
148265 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148266 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
148267 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148268 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
148269 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148270 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
148271 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148272 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
148273 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148274 } },
148275 }, .{
148276 .required_features = .{ .avx, null, null, null },
148277 .dst_constraints = .{ .{ .int = .byte }, .any },
148278 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
148279 .patterns = &.{
148280 .{ .src = .{ .to_mem, .none, .none } },
148281 },
148282 .extra_temps = .{
148283 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148284 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
148285 .unused,
148286 .unused,
148287 .unused,
148288 .unused,
148289 .unused,
148290 .unused,
148291 .unused,
148292 .unused,
148293 .unused,
148294 },
148295 .dst_temps = .{ .{ .rc = .sse }, .unused },
148296 .clobbers = .{ .eflags = true },
148297 .each = .{ .once = &.{
148298 .{ ._, ._, .mov, .tmp0d, .sia(-24, .src0, .add_unaligned_size), ._, ._ },
148299 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
148300 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
148301 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148302 .{ .@"0:", .vp_w, .movzxb, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
148303 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148304 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
148305 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148306 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
148307 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148308 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
148309 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148310 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
148311 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
148312 } },
148313 }, .{
148314 .required_features = .{ .sse4_1, null, null, null },
148315 .dst_constraints = .{ .{ .int = .byte }, .any },
148316 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
148317 .patterns = &.{
148318 .{ .src = .{ .to_mem, .none, .none } },
148319 },
148320 .extra_temps = .{
148321 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148322 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
148323 .unused,
148324 .unused,
148325 .unused,
148326 .unused,
148327 .unused,
148328 .unused,
148329 .unused,
148330 .unused,
148331 .unused,
148332 },
148333 .dst_temps = .{ .{ .rc = .sse }, .unused },
148334 .clobbers = .{ .eflags = true },
148335 .each = .{ .once = &.{
148336 .{ ._, ._, .mov, .tmp0d, .sia(-24, .src0, .add_unaligned_size), ._, ._ },
148337 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
148338 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
148339 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
148340 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148341 .{ .@"0:", .p_w, .movzxb, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
148342 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148343 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
148344 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148345 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
148346 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148347 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
148348 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148349 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
148350 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148351 } },
148352 }, .{
148353 .required_features = .{ .sse2, null, null, null },
148354 .dst_constraints = .{ .{ .int = .byte }, .any },
148355 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
148356 .patterns = &.{
148357 .{ .src = .{ .to_mem, .none, .none } },
148358 },
148359 .extra_temps = .{
148360 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148361 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
148362 .unused,
148363 .unused,
148364 .unused,
148365 .unused,
148366 .unused,
148367 .unused,
148368 .unused,
148369 .unused,
148370 .unused,
148371 },
148372 .dst_temps = .{ .{ .rc = .sse }, .unused },
148373 .clobbers = .{ .eflags = true },
148374 .each = .{ .once = &.{
148375 .{ ._, ._, .mov, .tmp0d, .sia(-24, .src0, .add_unaligned_size), ._, ._ },
148376 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
148377 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
148378 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
148379 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148380 .{ .@"0:", ._q, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
148381 .{ ._, .p_, .unpcklbw, .tmp1x, .tmp1x, ._, ._ },
148382 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148383 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
148384 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148385 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
148386 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148387 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
148388 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148389 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
148390 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
148391 } },
148392 }, .{
148393 .required_features = .{ .avx512f, null, null, null },
148394 .dst_constraints = .{ .{ .int = .byte }, .any },
148395 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
148396 .patterns = &.{
148397 .{ .src = .{ .to_mem, .none, .none } },
148398 },
148399 .extra_temps = .{
148400 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148401 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148402 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148403 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148404 .unused,
148405 .unused,
148406 .unused,
148407 .unused,
148408 .unused,
148409 .unused,
148410 .unused,
148411 },
148412 .dst_temps = .{ .{ .rc = .sse }, .unused },
148413 .clobbers = .{ .eflags = true },
148414 .each = .{ .once = &.{
148415 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148416 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
148417 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
148418 .{ ._, ._, .mov, .tmp0d, .sia(-96, .src0, .add_size), ._, ._ },
148419 .{ ._, .vp_, .andn, .tmp3y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
148420 .{ ._, .vp_b, .sub, .tmp2y, .tmp3y, .tmp2y, ._ },
148421 .{ ._, .vp_, .andn, .tmp3y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
148422 .{ ._, .vp_b, .sub, .dst0y, .tmp3y, .dst0y, ._ },
148423 .{ ._, .vp_w, .srl, .tmp3y, .tmp2y, .ui(8), ._ },
148424 .{ ._, .vp_w, .mull, .tmp2y, .tmp2y, .tmp3y, ._ },
148425 .{ ._, .vp_w, .srl, .tmp3y, .dst0y, .ui(8), ._ },
148426 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp3y, ._ },
148427 .{ .@"0:", .vp_w, .movzxb, .tmp3y, .memid(.src0x, .tmp0, 16), ._, ._ },
148428 .{ ._, .vp_w, .mull, .tmp2y, .tmp2y, .tmp3y, ._ },
148429 .{ ._, .vp_w, .movzxb, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
148430 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp3y, ._ },
148431 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
148432 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148433 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
148434 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
148435 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148436 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148437 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148438 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148439 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148440 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148441 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148442 } },
148443 }, .{
148444 .required_features = .{ .avx2, null, null, null },
148445 .dst_constraints = .{ .{ .int = .byte }, .any },
148446 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
148447 .patterns = &.{
148448 .{ .src = .{ .to_mem, .none, .none } },
148449 },
148450 .extra_temps = .{
148451 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148452 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148453 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148454 .unused,
148455 .unused,
148456 .unused,
148457 .unused,
148458 .unused,
148459 .unused,
148460 .unused,
148461 .unused,
148462 },
148463 .dst_temps = .{ .{ .rc = .sse }, .unused },
148464 .clobbers = .{ .eflags = true },
148465 .each = .{ .once = &.{
148466 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148467 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
148468 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
148469 .{ ._, .vp_, .andn, .dst0y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
148470 .{ ._, .vp_b, .sub, .dst0y, .dst0y, .tmp2y, ._ },
148471 .{ ._, .vp_w, .srl, .tmp2y, .dst0y, .ui(8), ._ },
148472 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
148473 .{ .@"0:", .vp_w, .movzxb, .tmp2y, .memi(.src0x, .tmp0), ._, ._ },
148474 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
148475 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
148476 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148477 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
148478 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148479 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148480 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148481 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148482 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148483 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148484 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148485 } },
148486 }, .{
148487 .required_features = .{ .avx, null, null, null },
148488 .dst_constraints = .{ .{ .int = .byte }, .any },
148489 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
148490 .patterns = &.{
148491 .{ .src = .{ .to_mem, .none, .none } },
148492 },
148493 .extra_temps = .{
148494 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148495 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148496 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148497 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
148498 .unused,
148499 .unused,
148500 .unused,
148501 .unused,
148502 .unused,
148503 .unused,
148504 .unused,
148505 },
148506 .dst_temps = .{ .{ .rc = .sse }, .unused },
148507 .clobbers = .{ .eflags = true },
148508 .each = .{ .once = &.{
148509 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148510 .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
148511 .{ ._, ._, .mov, .tmp0d, .sia(-40, .src0, .add_size), ._, ._ },
148512 .{ ._, .v_ps, .andn, .tmp3y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
148513 .{ ._, .vp_b, .sub, .dst0x, .tmp3x, .tmp2x, ._ },
148514 .{ ._, .v_f128, .extract, .tmp2x, .tmp2y, .ui(1), ._ },
148515 .{ ._, .v_f128, .extract, .tmp3x, .tmp3y, .ui(1), ._ },
148516 .{ ._, .vp_b, .sub, .tmp2x, .tmp3x, .tmp2x, ._ },
148517 .{ ._, .vp_w, .srl, .tmp3x, .dst0x, .ui(8), ._ },
148518 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp3x, ._ },
148519 .{ ._, .vp_w, .srl, .tmp3x, .tmp2x, .ui(8), ._ },
148520 .{ ._, .vp_w, .mull, .tmp2x, .tmp2x, .tmp3x, ._ },
148521 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148522 .{ .@"0:", .vp_w, .movzxb, .tmp2x, .memi(.src0q, .tmp0), ._, ._ },
148523 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148524 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
148525 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148526 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148527 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148528 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148529 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148530 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148531 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148532 } },
148533 }, .{
148534 .required_features = .{ .sse4_1, null, null, null },
148535 .dst_constraints = .{ .{ .int = .byte }, .any },
148536 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
148537 .patterns = &.{
148538 .{ .src = .{ .to_mem, .none, .none } },
148539 },
148540 .extra_temps = .{
148541 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148542 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148543 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
148544 .unused,
148545 .unused,
148546 .unused,
148547 .unused,
148548 .unused,
148549 .unused,
148550 .unused,
148551 .unused,
148552 },
148553 .dst_temps = .{ .{ .rc = .sse }, .unused },
148554 .clobbers = .{ .eflags = true },
148555 .each = .{ .once = &.{
148556 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148557 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
148558 .{ ._, ._, .mov, .tmp0d, .sia(-24, .src0, .add_size), ._, ._ },
148559 .{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
148560 .{ ._, .p_, .andn, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
148561 .{ ._, .p_b, .sub, .dst0x, .tmp2x, ._, ._ },
148562 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
148563 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
148564 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148565 .{ .@"0:", .p_w, .movzxb, .tmp2x, .memi(.src0q, .tmp0), ._, ._ },
148566 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148567 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
148568 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148569 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148570 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148571 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148572 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148573 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148574 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148575 } },
148576 }, .{
148577 .required_features = .{ .sse2, null, null, null },
148578 .dst_constraints = .{ .{ .int = .byte }, .any },
148579 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
148580 .patterns = &.{
148581 .{ .src = .{ .to_mem, .none, .none } },
148582 },
148583 .extra_temps = .{
148584 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148585 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148586 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
148587 .unused,
148588 .unused,
148589 .unused,
148590 .unused,
148591 .unused,
148592 .unused,
148593 .unused,
148594 .unused,
148595 },
148596 .dst_temps = .{ .{ .rc = .sse }, .unused },
148597 .clobbers = .{ .eflags = true },
148598 .each = .{ .once = &.{
148599 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148600 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
148601 .{ ._, ._, .mov, .tmp0d, .sia(-24, .src0, .add_size), ._, ._ },
148602 .{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
148603 .{ ._, .p_, .andn, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
148604 .{ ._, .p_b, .sub, .dst0x, .tmp2x, ._, ._ },
148605 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
148606 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
148607 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148608 .{ .@"0:", ._q, .mov, .tmp2x, .memi(.src0q, .tmp0), ._, ._ },
148609 .{ ._, .p_, .unpcklbw, .tmp2x, .tmp2x, ._, ._ },
148610 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148611 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
148612 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148613 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148614 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148615 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148616 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148617 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148618 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148619 } },
148620 }, .{
148621 .required_features = .{ .slow_incdec, null, null, null },
148622 .dst_constraints = .{ .{ .int = .byte }, .any },
148623 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
148624 .patterns = &.{
148625 .{ .src = .{ .to_mem, .none, .none } },
148626 },
148627 .extra_temps = .{
148628 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148629 .unused,
148630 .unused,
148631 .unused,
148632 .unused,
148633 .unused,
148634 .unused,
148635 .unused,
148636 .unused,
148637 .unused,
148638 .unused,
148639 },
148640 .dst_temps = .{ .{ .reg = .al }, .unused },
148641 .clobbers = .{ .eflags = true },
148642 .each = .{ .once = &.{
148643 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
148644 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
148645 .{ .@"0:", ._, .mul, .memi(.src0b, .tmp0), ._, ._, ._ },
148646 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
148647 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
148648 } },
148649 }, .{
148650 .dst_constraints = .{ .{ .int = .byte }, .any },
148651 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
148652 .patterns = &.{
148653 .{ .src = .{ .to_mem, .none, .none } },
148654 },
148655 .extra_temps = .{
148656 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
148657 .unused,
148658 .unused,
148659 .unused,
148660 .unused,
148661 .unused,
148662 .unused,
148663 .unused,
148664 .unused,
148665 .unused,
148666 .unused,
148667 },
148668 .dst_temps = .{ .{ .reg = .al }, .unused },
148669 .clobbers = .{ .eflags = true },
148670 .each = .{ .once = &.{
148671 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
148672 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
148673 .{ .@"0:", ._, .mul, .memi(.src0b, .tmp0), ._, ._, ._ },
148674 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
148675 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
148676 } },
148677 }, .{
148678 .required_features = .{ .avx, null, null, null },
148679 .dst_constraints = .{ .{ .int = .word }, .any },
148680 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
148681 .patterns = &.{
148682 .{ .src = .{ .to_sse, .none, .none } },
148683 },
148684 .extra_temps = .{
148685 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148686 .unused,
148687 .unused,
148688 .unused,
148689 .unused,
148690 .unused,
148691 .unused,
148692 .unused,
148693 .unused,
148694 .unused,
148695 .unused,
148696 },
148697 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148698 .each = .{ .once = &.{
148699 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
148700 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
148701 } },
148702 }, .{
148703 .required_features = .{ .sse2, null, null, null },
148704 .dst_constraints = .{ .{ .int = .word }, .any },
148705 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
148706 .patterns = &.{
148707 .{ .src = .{ .to_mut_sse, .none, .none } },
148708 },
148709 .extra_temps = .{
148710 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148711 .unused,
148712 .unused,
148713 .unused,
148714 .unused,
148715 .unused,
148716 .unused,
148717 .unused,
148718 .unused,
148719 .unused,
148720 .unused,
148721 },
148722 .dst_temps = .{ .{ .ref = .src0 }, .unused },
148723 .each = .{ .once = &.{
148724 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b01), ._ },
148725 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
148726 } },
148727 }, .{
148728 .required_features = .{ .avx, null, null, null },
148729 .dst_constraints = .{ .{ .int = .word }, .any },
148730 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
148731 .patterns = &.{
148732 .{ .src = .{ .to_sse, .none, .none } },
148733 },
148734 .extra_temps = .{
148735 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148736 .unused,
148737 .unused,
148738 .unused,
148739 .unused,
148740 .unused,
148741 .unused,
148742 .unused,
148743 .unused,
148744 .unused,
148745 .unused,
148746 },
148747 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148748 .each = .{ .once = &.{
148749 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
148750 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
148751 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
148752 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148753 } },
148754 }, .{
148755 .required_features = .{ .sse2, null, null, null },
148756 .dst_constraints = .{ .{ .int = .word }, .any },
148757 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
148758 .patterns = &.{
148759 .{ .src = .{ .to_mut_sse, .none, .none } },
148760 },
148761 .extra_temps = .{
148762 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148763 .unused,
148764 .unused,
148765 .unused,
148766 .unused,
148767 .unused,
148768 .unused,
148769 .unused,
148770 .unused,
148771 .unused,
148772 .unused,
148773 },
148774 .dst_temps = .{ .{ .ref = .src0 }, .unused },
148775 .each = .{ .once = &.{
148776 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
148777 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
148778 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
148779 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
148780 } },
148781 }, .{
148782 .required_features = .{ .avx, null, null, null },
148783 .dst_constraints = .{ .{ .int = .word }, .any },
148784 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
148785 .patterns = &.{
148786 .{ .src = .{ .to_sse, .none, .none } },
148787 },
148788 .extra_temps = .{
148789 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148790 .unused,
148791 .unused,
148792 .unused,
148793 .unused,
148794 .unused,
148795 .unused,
148796 .unused,
148797 .unused,
148798 .unused,
148799 .unused,
148800 },
148801 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148802 .each = .{ .once = &.{
148803 .{ ._, .vp_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
148804 .{ ._, .vp_w, .mull, .tmp0x, .src0x, .tmp0x, ._ },
148805 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
148806 .{ ._, .vp_w, .mull, .dst0x, .tmp0x, .dst0x, ._ },
148807 } },
148808 }, .{
148809 .required_features = .{ .sse2, null, null, null },
148810 .dst_constraints = .{ .{ .int = .word }, .any },
148811 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
148812 .patterns = &.{
148813 .{ .src = .{ .to_mut_sse, .none, .none } },
148814 },
148815 .extra_temps = .{
148816 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148817 .unused,
148818 .unused,
148819 .unused,
148820 .unused,
148821 .unused,
148822 .unused,
148823 .unused,
148824 .unused,
148825 .unused,
148826 .unused,
148827 },
148828 .dst_temps = .{ .{ .ref = .src0 }, .unused },
148829 .each = .{ .once = &.{
148830 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
148831 .{ ._, .p_w, .mull, .tmp0x, .src0x, ._, ._ },
148832 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b01), ._ },
148833 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
148834 } },
148835 }, .{
148836 .required_features = .{ .avx, null, null, null },
148837 .dst_constraints = .{ .{ .int = .word }, .any },
148838 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
148839 .patterns = &.{
148840 .{ .src = .{ .to_sse, .none, .none } },
148841 },
148842 .extra_temps = .{
148843 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148844 .unused,
148845 .unused,
148846 .unused,
148847 .unused,
148848 .unused,
148849 .unused,
148850 .unused,
148851 .unused,
148852 .unused,
148853 .unused,
148854 },
148855 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148856 .each = .{ .once = &.{
148857 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
148858 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
148859 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148860 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148861 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
148862 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148863 } },
148864 }, .{
148865 .required_features = .{ .sse2, null, null, null },
148866 .dst_constraints = .{ .{ .int = .word }, .any },
148867 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
148868 .patterns = &.{
148869 .{ .src = .{ .to_mut_sse, .none, .none } },
148870 },
148871 .extra_temps = .{
148872 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148873 .unused,
148874 .unused,
148875 .unused,
148876 .unused,
148877 .unused,
148878 .unused,
148879 .unused,
148880 .unused,
148881 .unused,
148882 .unused,
148883 },
148884 .dst_temps = .{ .{ .ref = .src0 }, .unused },
148885 .each = .{ .once = &.{
148886 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
148887 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
148888 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148889 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
148890 .{ ._, .p_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
148891 .{ ._, .p_w, .mull, .dst0x, .tmp0x, ._, ._ },
148892 } },
148893 }, .{
148894 .required_features = .{ .avx, null, null, null },
148895 .dst_constraints = .{ .{ .int = .word }, .any },
148896 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
148897 .patterns = &.{
148898 .{ .src = .{ .mem, .none, .none } },
148899 .{ .src = .{ .to_sse, .none, .none } },
148900 },
148901 .extra_temps = .{
148902 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
148903 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148904 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148905 .unused,
148906 .unused,
148907 .unused,
148908 .unused,
148909 .unused,
148910 .unused,
148911 .unused,
148912 .unused,
148913 },
148914 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148915 .each = .{ .once = &.{
148916 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148917 .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
148918 .{ ._, .vp_, .andn, .dst0x, .tmp2x, .src0x, ._ },
148919 .{ ._, .vp_w, .sub, .dst0x, .dst0x, .tmp2x, ._ },
148920 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148921 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148922 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148923 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148924 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148925 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
148926 } },
148927 }, .{
148928 .required_features = .{ .sse2, null, null, null },
148929 .dst_constraints = .{ .{ .int = .word }, .any },
148930 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
148931 .patterns = &.{
148932 .{ .src = .{ .mem, .none, .none } },
148933 .{ .src = .{ .to_sse, .none, .none } },
148934 },
148935 .extra_temps = .{
148936 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
148937 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
148938 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148939 .unused,
148940 .unused,
148941 .unused,
148942 .unused,
148943 .unused,
148944 .unused,
148945 .unused,
148946 .unused,
148947 },
148948 .dst_temps = .{ .{ .rc = .sse }, .unused },
148949 .each = .{ .once = &.{
148950 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
148951 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
148952 .{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
148953 .{ ._, .p_, .andn, .dst0x, .src0x, ._, ._ },
148954 .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
148955 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148956 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148957 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
148958 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148959 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
148960 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
148961 } },
148962 }, .{
148963 .required_features = .{ .avx2, null, null, null },
148964 .dst_constraints = .{ .{ .int = .word }, .any },
148965 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
148966 .patterns = &.{
148967 .{ .src = .{ .to_sse, .none, .none } },
148968 },
148969 .extra_temps = .{
148970 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
148971 .unused,
148972 .unused,
148973 .unused,
148974 .unused,
148975 .unused,
148976 .unused,
148977 .unused,
148978 .unused,
148979 .unused,
148980 .unused,
148981 },
148982 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
148983 .each = .{ .once = &.{
148984 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
148985 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
148986 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148987 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148988 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
148989 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148990 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
148991 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
148992 } },
148993 }, .{
148994 .required_features = .{ .avx, null, null, null },
148995 .dst_constraints = .{ .{ .int = .word }, .any },
148996 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
148997 .patterns = &.{
148998 .{ .src = .{ .to_sse, .none, .none } },
148999 },
149000 .extra_temps = .{
149001 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
149002 .unused,
149003 .unused,
149004 .unused,
149005 .unused,
149006 .unused,
149007 .unused,
149008 .unused,
149009 .unused,
149010 .unused,
149011 .unused,
149012 },
149013 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149014 .each = .{ .once = &.{
149015 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
149016 .{ ._, .vp_w, .mull, .dst0x, .src0x, .tmp0x, ._ },
149017 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149018 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
149019 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149020 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
149021 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
149022 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
149023 } },
149024 }, .{
149025 .required_features = .{ .avx2, null, null, null },
149026 .dst_constraints = .{ .{ .int = .word }, .any },
149027 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
149028 .patterns = &.{
149029 .{ .src = .{ .to_sse, .none, .none } },
149030 },
149031 .extra_temps = .{
149032 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
149033 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149034 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149035 .unused,
149036 .unused,
149037 .unused,
149038 .unused,
149039 .unused,
149040 .unused,
149041 .unused,
149042 .unused,
149043 },
149044 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149045 .each = .{ .once = &.{
149046 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149047 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
149048 .{ ._, .vp_, .andn, .dst0y, .tmp2y, .src0y, ._ },
149049 .{ ._, .vp_w, .sub, .dst0y, .dst0y, .tmp2y, ._ },
149050 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
149051 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149052 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149053 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149054 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149055 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149056 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
149057 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149058 } },
149059 }, .{
149060 .required_features = .{ .avx, null, null, null },
149061 .dst_constraints = .{ .{ .int = .word }, .any },
149062 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
149063 .patterns = &.{
149064 .{ .src = .{ .to_sse, .none, .none } },
149065 },
149066 .extra_temps = .{
149067 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
149068 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149069 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149070 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149071 .unused,
149072 .unused,
149073 .unused,
149074 .unused,
149075 .unused,
149076 .unused,
149077 .unused,
149078 },
149079 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149080 .each = .{ .once = &.{
149081 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149082 .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
149083 .{ ._, .v_ps, .andn, .tmp3y, .tmp2y, .src0y, ._ },
149084 .{ ._, .vp_w, .sub, .dst0x, .tmp3x, .tmp2x, ._ },
149085 .{ ._, .v_f128, .extract, .tmp2x, .tmp2y, .ui(1), ._ },
149086 .{ ._, .v_f128, .extract, .tmp3x, .tmp3y, .ui(1), ._ },
149087 .{ ._, .vp_w, .sub, .tmp2x, .tmp3x, .tmp2x, ._ },
149088 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149089 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149090 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149091 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149092 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149093 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
149094 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149095 } },
149096 }, .{
149097 .required_features = .{ .avx512f, null, null, null },
149098 .dst_constraints = .{ .{ .int = .word }, .any },
149099 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
149100 .patterns = &.{
149101 .{ .src = .{ .to_mem, .none, .none } },
149102 },
149103 .extra_temps = .{
149104 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
149105 .unused,
149106 .unused,
149107 .unused,
149108 .unused,
149109 .unused,
149110 .unused,
149111 .unused,
149112 .unused,
149113 .unused,
149114 .unused,
149115 },
149116 .dst_temps = .{ .{ .rc = .sse }, .unused },
149117 .each = .{ .once = &.{
149118 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
149119 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
149120 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
149121 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
149122 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149123 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
149124 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149125 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
149126 .{ ._, .vp_w, .shufl, .tmp0x, .dst0x, .ui(0b01), ._ },
149127 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp0x, ._ },
149128 } },
149129 }, .{
149130 .required_features = .{ .avx512f, null, null, null },
149131 .dst_constraints = .{ .{ .int = .word }, .any },
149132 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
149133 .patterns = &.{
149134 .{ .src = .{ .to_mem, .none, .none } },
149135 },
149136 .extra_temps = .{
149137 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
149138 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149139 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149140 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149141 .unused,
149142 .unused,
149143 .unused,
149144 .unused,
149145 .unused,
149146 .unused,
149147 .unused,
149148 },
149149 .dst_temps = .{ .{ .rc = .sse }, .unused },
149150 .each = .{ .once = &.{
149151 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149152 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
149153 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
149154 .{ ._, .vp_, .andn, .tmp3y, .tmp2y, .memd(.src0y, 32), ._ },
149155 .{ ._, .vp_w, .sub, .tmp2y, .tmp3y, .tmp2y, ._ },
149156 .{ ._, .vp_, .andn, .tmp3y, .dst0y, .mem(.src0y), ._ },
149157 .{ ._, .vp_w, .sub, .dst0y, .tmp3y, .dst0y, ._ },
149158 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
149159 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
149160 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149161 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149162 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149163 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149164 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149165 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
149166 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149167 } },
149168 }, .{
149169 .required_features = .{ .avx2, null, null, null },
149170 .dst_constraints = .{ .{ .int = .word }, .any },
149171 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
149172 .patterns = &.{
149173 .{ .src = .{ .to_mem, .none, .none } },
149174 },
149175 .extra_temps = .{
149176 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149177 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
149178 .unused,
149179 .unused,
149180 .unused,
149181 .unused,
149182 .unused,
149183 .unused,
149184 .unused,
149185 .unused,
149186 .unused,
149187 },
149188 .dst_temps = .{ .{ .rc = .sse }, .unused },
149189 .clobbers = .{ .eflags = true },
149190 .each = .{ .once = &.{
149191 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
149192 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
149193 .{ .@"0:", .vp_w, .mull, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
149194 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
149195 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149196 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
149197 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
149198 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149199 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
149200 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149201 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
149202 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
149203 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
149204 } },
149205 }, .{
149206 .required_features = .{ .avx, null, null, null },
149207 .dst_constraints = .{ .{ .int = .word }, .any },
149208 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
149209 .patterns = &.{
149210 .{ .src = .{ .to_mem, .none, .none } },
149211 },
149212 .extra_temps = .{
149213 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149214 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
149215 .unused,
149216 .unused,
149217 .unused,
149218 .unused,
149219 .unused,
149220 .unused,
149221 .unused,
149222 .unused,
149223 .unused,
149224 },
149225 .dst_temps = .{ .{ .rc = .sse }, .unused },
149226 .clobbers = .{ .eflags = true },
149227 .each = .{ .once = &.{
149228 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
149229 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
149230 .{ .@"0:", .vp_w, .mull, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
149231 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
149232 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149233 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149234 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
149235 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149236 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
149237 .{ ._, .vp_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
149238 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp1x, ._ },
149239 } },
149240 }, .{
149241 .required_features = .{ .sse2, null, null, null },
149242 .dst_constraints = .{ .{ .int = .word }, .any },
149243 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
149244 .patterns = &.{
149245 .{ .src = .{ .to_mem, .none, .none } },
149246 },
149247 .extra_temps = .{
149248 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149249 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
149250 .unused,
149251 .unused,
149252 .unused,
149253 .unused,
149254 .unused,
149255 .unused,
149256 .unused,
149257 .unused,
149258 .unused,
149259 },
149260 .dst_temps = .{ .{ .rc = .sse }, .unused },
149261 .clobbers = .{ .eflags = true },
149262 .each = .{ .once = &.{
149263 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
149264 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
149265 .{ .@"0:", .p_w, .mull, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
149266 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
149267 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149268 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149269 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
149270 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149271 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
149272 .{ ._, .p_w, .shufl, .tmp1x, .dst0x, .ui(0b01), ._ },
149273 .{ ._, .p_w, .mull, .dst0x, .tmp1x, ._, ._ },
149274 } },
149275 }, .{
149276 .required_features = .{ .avx512f, null, null, null },
149277 .dst_constraints = .{ .{ .int = .word }, .any },
149278 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
149279 .patterns = &.{
149280 .{ .src = .{ .to_mem, .none, .none } },
149281 },
149282 .extra_temps = .{
149283 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149284 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149285 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149286 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149287 .unused,
149288 .unused,
149289 .unused,
149290 .unused,
149291 .unused,
149292 .unused,
149293 .unused,
149294 },
149295 .dst_temps = .{ .{ .rc = .sse }, .unused },
149296 .clobbers = .{ .eflags = true },
149297 .each = .{ .once = &.{
149298 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149299 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
149300 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
149301 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
149302 .{ ._, .vp_, .andn, .tmp3y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
149303 .{ ._, .vp_w, .sub, .tmp2y, .tmp3y, .tmp2y, ._ },
149304 .{ ._, .vp_, .andn, .tmp3y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
149305 .{ ._, .vp_w, .sub, .dst0y, .tmp3y, .dst0y, ._ },
149306 .{ .@"0:", .vp_w, .mull, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
149307 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
149308 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
149309 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149310 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
149311 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
149312 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149313 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149314 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149315 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149316 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149317 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
149318 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149319 } },
149320 }, .{
149321 .required_features = .{ .avx2, null, null, null },
149322 .dst_constraints = .{ .{ .int = .word }, .any },
149323 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
149324 .patterns = &.{
149325 .{ .src = .{ .to_mem, .none, .none } },
149326 },
149327 .extra_temps = .{
149328 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149329 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149330 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149331 .unused,
149332 .unused,
149333 .unused,
149334 .unused,
149335 .unused,
149336 .unused,
149337 .unused,
149338 .unused,
149339 },
149340 .dst_temps = .{ .{ .rc = .sse }, .unused },
149341 .clobbers = .{ .eflags = true },
149342 .each = .{ .once = &.{
149343 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149344 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
149345 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
149346 .{ ._, .vp_, .andn, .dst0y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
149347 .{ ._, .vp_w, .sub, .dst0y, .dst0y, .tmp2y, ._ },
149348 .{ .@"0:", .vp_w, .mull, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
149349 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
149350 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149351 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
149352 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149353 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149354 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149355 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149356 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149357 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
149358 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149359 } },
149360 }, .{
149361 .required_features = .{ .avx, null, null, null },
149362 .dst_constraints = .{ .{ .int = .word }, .any },
149363 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
149364 .patterns = &.{
149365 .{ .src = .{ .to_mem, .none, .none } },
149366 },
149367 .extra_temps = .{
149368 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149369 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149370 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149371 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
149372 .unused,
149373 .unused,
149374 .unused,
149375 .unused,
149376 .unused,
149377 .unused,
149378 .unused,
149379 },
149380 .dst_temps = .{ .{ .rc = .sse }, .unused },
149381 .clobbers = .{ .eflags = true },
149382 .each = .{ .once = &.{
149383 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149384 .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
149385 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
149386 .{ ._, .v_ps, .andn, .tmp3y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
149387 .{ ._, .vp_w, .sub, .dst0x, .tmp3x, .tmp2x, ._ },
149388 .{ ._, .v_f128, .extract, .tmp2x, .tmp2y, .ui(1), ._ },
149389 .{ ._, .v_f128, .extract, .tmp3x, .tmp3y, .ui(1), ._ },
149390 .{ ._, .vp_w, .sub, .tmp2x, .tmp3x, .tmp2x, ._ },
149391 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149392 .{ .@"0:", .vp_w, .mull, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
149393 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
149394 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149395 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149396 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149397 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149398 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149399 .{ ._, .vp_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
149400 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149401 } },
149402 }, .{
149403 .required_features = .{ .sse2, null, null, null },
149404 .dst_constraints = .{ .{ .int = .word }, .any },
149405 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
149406 .patterns = &.{
149407 .{ .src = .{ .to_mem, .none, .none } },
149408 },
149409 .extra_temps = .{
149410 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149411 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149412 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
149413 .unused,
149414 .unused,
149415 .unused,
149416 .unused,
149417 .unused,
149418 .unused,
149419 .unused,
149420 .unused,
149421 },
149422 .dst_temps = .{ .{ .rc = .sse }, .unused },
149423 .clobbers = .{ .eflags = true },
149424 .each = .{ .once = &.{
149425 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149426 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
149427 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
149428 .{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
149429 .{ ._, .p_, .andn, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
149430 .{ ._, .p_w, .sub, .dst0x, .tmp2x, ._, ._ },
149431 .{ .@"0:", .p_w, .mull, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
149432 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
149433 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149434 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149435 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
149436 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149437 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
149438 .{ ._, .p_w, .shufl, .tmp2x, .dst0x, .ui(0b01), ._ },
149439 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
149440 } },
149441 }, .{
149442 .dst_constraints = .{ .{ .int = .word }, .any },
149443 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any },
149444 .patterns = &.{
149445 .{ .src = .{ .to_mem, .none, .none } },
149446 },
149447 .extra_temps = .{
149448 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149449 .unused,
149450 .unused,
149451 .unused,
149452 .unused,
149453 .unused,
149454 .unused,
149455 .unused,
149456 .unused,
149457 .unused,
149458 .unused,
149459 },
149460 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
149461 .clobbers = .{ .eflags = true },
149462 .each = .{ .once = &.{
149463 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
149464 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
149465 .{ .@"0:", .i_, .mul, .dst0w, .memi(.src0w, .tmp0), ._, ._ },
149466 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
149467 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149468 } },
149469 }, .{
149470 .required_features = .{ .avx, null, null, null },
149471 .dst_constraints = .{ .{ .int = .dword }, .any },
149472 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
149473 .patterns = &.{
149474 .{ .src = .{ .to_sse, .none, .none } },
149475 },
149476 .extra_temps = .{
149477 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149478 .unused,
149479 .unused,
149480 .unused,
149481 .unused,
149482 .unused,
149483 .unused,
149484 .unused,
149485 .unused,
149486 .unused,
149487 .unused,
149488 },
149489 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149490 .each = .{ .once = &.{
149491 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01), ._ },
149492 .{ ._, .vp_udq, .mul, .dst0x, .src0x, .tmp0x, ._ },
149493 } },
149494 }, .{
149495 .required_features = .{ .sse2, null, null, null },
149496 .dst_constraints = .{ .{ .int = .dword }, .any },
149497 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
149498 .patterns = &.{
149499 .{ .src = .{ .to_mut_sse, .none, .none } },
149500 },
149501 .extra_temps = .{
149502 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149503 .unused,
149504 .unused,
149505 .unused,
149506 .unused,
149507 .unused,
149508 .unused,
149509 .unused,
149510 .unused,
149511 .unused,
149512 .unused,
149513 },
149514 .dst_temps = .{ .{ .ref = .src0 }, .unused },
149515 .each = .{ .once = &.{
149516 .{ ._, .p_w, .shufl, .tmp0x, .src0x, .ui(0b11_10), ._ },
149517 .{ ._, .p_udq, .mul, .dst0x, .tmp0x, ._, ._ },
149518 } },
149519 }, .{
149520 .required_features = .{ .avx, null, null, null },
149521 .dst_constraints = .{ .{ .int = .dword }, .any },
149522 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
149523 .patterns = &.{
149524 .{ .src = .{ .to_sse, .none, .none } },
149525 },
149526 .extra_temps = .{
149527 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149528 .unused,
149529 .unused,
149530 .unused,
149531 .unused,
149532 .unused,
149533 .unused,
149534 .unused,
149535 .unused,
149536 .unused,
149537 .unused,
149538 },
149539 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149540 .each = .{ .once = &.{
149541 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_11_01_01), ._ },
149542 .{ ._, .vp_udq, .mul, .dst0x, .src0x, .tmp0x, ._ },
149543 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149544 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
149545 } },
149546 }, .{
149547 .required_features = .{ .sse2, null, null, null },
149548 .dst_constraints = .{ .{ .int = .dword }, .any },
149549 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
149550 .patterns = &.{
149551 .{ .src = .{ .to_mut_sse, .none, .none } },
149552 },
149553 .extra_temps = .{
149554 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149555 .unused,
149556 .unused,
149557 .unused,
149558 .unused,
149559 .unused,
149560 .unused,
149561 .unused,
149562 .unused,
149563 .unused,
149564 .unused,
149565 },
149566 .dst_temps = .{ .{ .ref = .src0 }, .unused },
149567 .each = .{ .once = &.{
149568 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_11_01_01), ._ },
149569 .{ ._, .p_udq, .mul, .dst0x, .tmp0x, ._, ._ },
149570 .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149571 .{ ._, .p_udq, .mul, .dst0x, .tmp0x, ._, ._ },
149572 } },
149573 }, .{
149574 .required_features = .{ .avx, null, null, null },
149575 .dst_constraints = .{ .{ .int = .dword }, .any },
149576 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
149577 .patterns = &.{
149578 .{ .src = .{ .to_sse, .none, .none } },
149579 },
149580 .extra_temps = .{
149581 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149582 .unused,
149583 .unused,
149584 .unused,
149585 .unused,
149586 .unused,
149587 .unused,
149588 .unused,
149589 .unused,
149590 .unused,
149591 .unused,
149592 },
149593 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149594 .each = .{ .once = &.{
149595 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
149596 .{ ._, .vp_udq, .mul, .tmp0x, .src0x, .tmp0x, ._ },
149597 .{ ._, .vp_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
149598 .{ ._, .vp_udq, .mul, .dst0x, .tmp0x, .dst0x, ._ },
149599 } },
149600 }, .{
149601 .required_features = .{ .sse2, null, null, null },
149602 .dst_constraints = .{ .{ .int = .dword }, .any },
149603 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
149604 .patterns = &.{
149605 .{ .src = .{ .to_sse, .none, .none } },
149606 },
149607 .extra_temps = .{
149608 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149609 .unused,
149610 .unused,
149611 .unused,
149612 .unused,
149613 .unused,
149614 .unused,
149615 .unused,
149616 .unused,
149617 .unused,
149618 .unused,
149619 },
149620 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149621 .each = .{ .once = &.{
149622 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10), ._ },
149623 .{ ._, .p_udq, .mul, .tmp0x, .src0x, ._, ._ },
149624 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b11_10), ._ },
149625 .{ ._, .p_udq, .mul, .dst0x, .tmp0x, ._, ._ },
149626 } },
149627 }, .{
149628 .required_features = .{ .avx2, null, null, null },
149629 .dst_constraints = .{ .{ .int = .dword }, .any },
149630 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
149631 .patterns = &.{
149632 .{ .src = .{ .to_sse, .none, .none } },
149633 },
149634 .extra_temps = .{
149635 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149636 .unused,
149637 .unused,
149638 .unused,
149639 .unused,
149640 .unused,
149641 .unused,
149642 .unused,
149643 .unused,
149644 .unused,
149645 .unused,
149646 },
149647 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149648 .each = .{ .once = &.{
149649 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
149650 .{ ._, .vp_d, .mull, .dst0x, .src0x, .tmp0x, ._ },
149651 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_11_01_01), ._ },
149652 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
149653 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149654 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
149655 } },
149656 }, .{
149657 .required_features = .{ .avx, null, null, null },
149658 .dst_constraints = .{ .{ .int = .dword }, .any },
149659 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
149660 .patterns = &.{
149661 .{ .src = .{ .to_sse, .none, .none } },
149662 },
149663 .extra_temps = .{
149664 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149665 .unused,
149666 .unused,
149667 .unused,
149668 .unused,
149669 .unused,
149670 .unused,
149671 .unused,
149672 .unused,
149673 .unused,
149674 .unused,
149675 },
149676 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149677 .each = .{ .once = &.{
149678 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
149679 .{ ._, .vp_d, .mull, .dst0x, .src0x, .tmp0x, ._ },
149680 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_11_01_01), ._ },
149681 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
149682 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149683 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
149684 } },
149685 }, .{
149686 .required_features = .{ .avx2, null, null, null },
149687 .dst_constraints = .{ .{ .int = .dword }, .any },
149688 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
149689 .patterns = &.{
149690 .{ .src = .{ .mem, .none, .none } },
149691 .{ .src = .{ .to_sse, .none, .none } },
149692 },
149693 .extra_temps = .{
149694 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
149695 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149696 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
149697 .unused,
149698 .unused,
149699 .unused,
149700 .unused,
149701 .unused,
149702 .unused,
149703 .unused,
149704 .unused,
149705 },
149706 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149707 .each = .{ .once = &.{
149708 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149709 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
149710 .{ ._, .vp_, .andn, .dst0y, .tmp2y, .src0y, ._ },
149711 .{ ._, .vp_d, .sub, .dst0y, .dst0y, .tmp2y, ._ },
149712 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
149713 .{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149714 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
149715 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
149716 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149717 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
149718 } },
149719 }, .{
149720 .required_features = .{ .avx, null, null, null },
149721 .dst_constraints = .{ .{ .int = .dword }, .any },
149722 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
149723 .patterns = &.{
149724 .{ .src = .{ .mem, .none, .none } },
149725 .{ .src = .{ .to_sse, .none, .none } },
149726 },
149727 .extra_temps = .{
149728 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
149729 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149730 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
149731 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
149732 .unused,
149733 .unused,
149734 .unused,
149735 .unused,
149736 .unused,
149737 .unused,
149738 .unused,
149739 },
149740 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
149741 .each = .{ .once = &.{
149742 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149743 .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
149744 .{ ._, .v_ps, .andn, .tmp3y, .tmp2y, .src0y, ._ },
149745 .{ ._, .vp_d, .sub, .dst0x, .tmp3x, .tmp2x, ._ },
149746 .{ ._, .v_f128, .extract, .tmp2x, .tmp2y, .ui(1), ._ },
149747 .{ ._, .v_f128, .extract, .tmp3x, .tmp3y, .ui(1), ._ },
149748 .{ ._, .vp_d, .sub, .tmp2x, .tmp3x, .tmp2x, ._ },
149749 .{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149750 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
149751 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
149752 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149753 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
149754 } },
149755 }, .{
149756 .required_features = .{ .avx512f, null, null, null },
149757 .dst_constraints = .{ .{ .int = .dword }, .any },
149758 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
149759 .patterns = &.{
149760 .{ .src = .{ .to_mem, .none, .none } },
149761 },
149762 .extra_temps = .{
149763 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149764 .unused,
149765 .unused,
149766 .unused,
149767 .unused,
149768 .unused,
149769 .unused,
149770 .unused,
149771 .unused,
149772 .unused,
149773 .unused,
149774 },
149775 .dst_temps = .{ .{ .rc = .sse }, .unused },
149776 .each = .{ .once = &.{
149777 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
149778 .{ ._, .vp_d, .mull, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
149779 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
149780 .{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp0x, ._ },
149781 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_11_01_01), ._ },
149782 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
149783 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10), ._ },
149784 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp0x, ._ },
149785 } },
149786 }, .{
149787 .required_features = .{ .avx512f, null, null, null },
149788 .dst_constraints = .{ .{ .int = .dword }, .any },
149789 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
149790 .patterns = &.{
149791 .{ .src = .{ .to_mem, .none, .none } },
149792 },
149793 .extra_temps = .{
149794 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
149795 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149796 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
149797 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
149798 .unused,
149799 .unused,
149800 .unused,
149801 .unused,
149802 .unused,
149803 .unused,
149804 .unused,
149805 },
149806 .dst_temps = .{ .{ .rc = .sse }, .unused },
149807 .each = .{ .once = &.{
149808 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149809 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
149810 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
149811 .{ ._, .vp_, .andn, .tmp3y, .tmp2y, .memd(.src0y, 32), ._ },
149812 .{ ._, .vp_d, .sub, .tmp2y, .tmp3y, .tmp2y, ._ },
149813 .{ ._, .vp_, .andn, .tmp3y, .dst0y, .mem(.src0y), ._ },
149814 .{ ._, .vp_d, .sub, .dst0y, .tmp3y, .dst0y, ._ },
149815 .{ ._, .vp_d, .mull, .dst0y, .dst0y, .tmp2y, ._ },
149816 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
149817 .{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149818 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
149819 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
149820 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
149821 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
149822 } },
149823 }, .{
149824 .required_features = .{ .avx2, null, null, null },
149825 .dst_constraints = .{ .{ .int = .dword }, .any },
149826 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
149827 .patterns = &.{
149828 .{ .src = .{ .to_mem, .none, .none } },
149829 },
149830 .extra_temps = .{
149831 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149832 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149833 .unused,
149834 .unused,
149835 .unused,
149836 .unused,
149837 .unused,
149838 .unused,
149839 .unused,
149840 .unused,
149841 .unused,
149842 },
149843 .dst_temps = .{ .{ .rc = .sse }, .unused },
149844 .clobbers = .{ .eflags = true },
149845 .each = .{ .once = &.{
149846 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
149847 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
149848 .{ .@"0:", .vp_d, .mull, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
149849 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
149850 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149851 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
149852 .{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp1x, ._ },
149853 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_11_01_01), ._ },
149854 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp1x, ._ },
149855 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149856 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp1x, ._ },
149857 } },
149858 }, .{
149859 .required_features = .{ .avx, null, null, null },
149860 .dst_constraints = .{ .{ .int = .dword }, .any },
149861 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
149862 .patterns = &.{
149863 .{ .src = .{ .to_mem, .none, .none } },
149864 },
149865 .extra_temps = .{
149866 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149867 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149868 .unused,
149869 .unused,
149870 .unused,
149871 .unused,
149872 .unused,
149873 .unused,
149874 .unused,
149875 .unused,
149876 .unused,
149877 },
149878 .dst_temps = .{ .{ .rc = .sse }, .unused },
149879 .clobbers = .{ .eflags = true },
149880 .each = .{ .once = &.{
149881 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
149882 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
149883 .{ .@"0:", .vp_d, .mull, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
149884 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
149885 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149886 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_11_01_01), ._ },
149887 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp1x, ._ },
149888 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149889 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp1x, ._ },
149890 } },
149891 }, .{
149892 .required_features = .{ .sse4_1, null, null, null },
149893 .dst_constraints = .{ .{ .int = .dword }, .any },
149894 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
149895 .patterns = &.{
149896 .{ .src = .{ .to_mem, .none, .none } },
149897 },
149898 .extra_temps = .{
149899 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149900 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149901 .unused,
149902 .unused,
149903 .unused,
149904 .unused,
149905 .unused,
149906 .unused,
149907 .unused,
149908 .unused,
149909 .unused,
149910 },
149911 .dst_temps = .{ .{ .rc = .sse }, .unused },
149912 .clobbers = .{ .eflags = true },
149913 .each = .{ .once = &.{
149914 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
149915 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
149916 .{ .@"0:", .p_d, .mull, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
149917 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
149918 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149919 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_11_01_01), ._ },
149920 .{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
149921 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149922 .{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
149923 } },
149924 }, .{
149925 .required_features = .{ .sse2, null, null, null },
149926 .dst_constraints = .{ .{ .int = .dword }, .any },
149927 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
149928 .patterns = &.{
149929 .{ .src = .{ .to_mem, .none, .none } },
149930 },
149931 .extra_temps = .{
149932 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149933 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
149934 .unused,
149935 .unused,
149936 .unused,
149937 .unused,
149938 .unused,
149939 .unused,
149940 .unused,
149941 .unused,
149942 .unused,
149943 },
149944 .dst_temps = .{ .{ .rc = .sse }, .unused },
149945 .clobbers = .{ .eflags = true },
149946 .each = .{ .once = &.{
149947 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
149948 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
149949 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_11_01_01), ._ },
149950 .{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
149951 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
149952 .{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
149953 .{ ._, .p_d, .shuf, .tmp1x, .tmp1x, .ui(0b11_11_01_01), ._ },
149954 .{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
149955 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
149956 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149957 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10), ._ },
149958 .{ ._, .p_udq, .mul, .dst0x, .tmp1x, ._, ._ },
149959 } },
149960 }, .{
149961 .required_features = .{ .avx512f, null, null, null },
149962 .dst_constraints = .{ .{ .int = .dword }, .any },
149963 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
149964 .patterns = &.{
149965 .{ .src = .{ .to_mem, .none, .none } },
149966 },
149967 .extra_temps = .{
149968 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
149969 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
149970 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
149971 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
149972 .unused,
149973 .unused,
149974 .unused,
149975 .unused,
149976 .unused,
149977 .unused,
149978 .unused,
149979 },
149980 .dst_temps = .{ .{ .rc = .sse }, .unused },
149981 .clobbers = .{ .eflags = true },
149982 .each = .{ .once = &.{
149983 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
149984 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
149985 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
149986 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
149987 .{ ._, .vp_, .andn, .tmp3y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
149988 .{ ._, .vp_d, .sub, .tmp2y, .tmp3y, .tmp2y, ._ },
149989 .{ ._, .vp_, .andn, .tmp3y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
149990 .{ ._, .vp_d, .sub, .dst0y, .tmp3y, .dst0y, ._ },
149991 .{ .@"0:", .vp_d, .mull, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
149992 .{ ._, .vp_d, .mull, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
149993 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
149994 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
149995 .{ ._, .vp_d, .mull, .dst0y, .dst0y, .tmp2y, ._ },
149996 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
149997 .{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
149998 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
149999 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
150000 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
150001 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
150002 } },
150003 }, .{
150004 .required_features = .{ .avx2, null, null, null },
150005 .dst_constraints = .{ .{ .int = .dword }, .any },
150006 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
150007 .patterns = &.{
150008 .{ .src = .{ .to_mem, .none, .none } },
150009 },
150010 .extra_temps = .{
150011 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
150012 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
150013 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
150014 .unused,
150015 .unused,
150016 .unused,
150017 .unused,
150018 .unused,
150019 .unused,
150020 .unused,
150021 .unused,
150022 },
150023 .dst_temps = .{ .{ .rc = .sse }, .unused },
150024 .clobbers = .{ .eflags = true },
150025 .each = .{ .once = &.{
150026 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
150027 .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ },
150028 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
150029 .{ ._, .vp_, .andn, .dst0y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
150030 .{ ._, .vp_d, .sub, .dst0y, .dst0y, .tmp2y, ._ },
150031 .{ .@"0:", .vp_d, .mull, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
150032 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
150033 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150034 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
150035 .{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
150036 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
150037 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
150038 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
150039 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
150040 } },
150041 }, .{
150042 .required_features = .{ .avx, null, null, null },
150043 .dst_constraints = .{ .{ .int = .dword }, .any },
150044 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
150045 .patterns = &.{
150046 .{ .src = .{ .to_mem, .none, .none } },
150047 },
150048 .extra_temps = .{
150049 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
150050 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
150051 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
150052 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
150053 .unused,
150054 .unused,
150055 .unused,
150056 .unused,
150057 .unused,
150058 .unused,
150059 .unused,
150060 },
150061 .dst_temps = .{ .{ .rc = .sse }, .unused },
150062 .clobbers = .{ .eflags = true },
150063 .each = .{ .once = &.{
150064 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
150065 .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ },
150066 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
150067 .{ ._, .v_ps, .andn, .tmp3y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
150068 .{ ._, .vp_d, .sub, .dst0x, .tmp3x, .tmp2x, ._ },
150069 .{ ._, .v_f128, .extract, .tmp2x, .tmp2y, .ui(1), ._ },
150070 .{ ._, .v_f128, .extract, .tmp3x, .tmp3y, .ui(1), ._ },
150071 .{ ._, .vp_d, .sub, .tmp2x, .tmp3x, .tmp2x, ._ },
150072 .{ ._, .vp_d, .mull, .dst0x, .dst0x, .tmp2x, ._ },
150073 .{ .@"0:", .vp_d, .mull, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
150074 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
150075 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150076 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
150077 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
150078 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
150079 .{ ._, .vp_udq, .mul, .dst0x, .dst0x, .tmp2x, ._ },
150080 } },
150081 }, .{
150082 .required_features = .{ .sse4_1, null, null, null },
150083 .dst_constraints = .{ .{ .int = .dword }, .any },
150084 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
150085 .patterns = &.{
150086 .{ .src = .{ .to_mem, .none, .none } },
150087 },
150088 .extra_temps = .{
150089 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
150090 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
150091 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
150092 .unused,
150093 .unused,
150094 .unused,
150095 .unused,
150096 .unused,
150097 .unused,
150098 .unused,
150099 .unused,
150100 },
150101 .dst_temps = .{ .{ .rc = .sse }, .unused },
150102 .clobbers = .{ .eflags = true },
150103 .each = .{ .once = &.{
150104 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
150105 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
150106 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
150107 .{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
150108 .{ ._, .p_, .andn, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
150109 .{ ._, .p_d, .sub, .dst0x, .tmp2x, ._, ._ },
150110 .{ .@"0:", .p_d, .mull, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
150111 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
150112 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150113 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
150114 .{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
150115 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
150116 .{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
150117 } },
150118 }, .{
150119 .required_features = .{ .sse2, null, null, null },
150120 .dst_constraints = .{ .{ .int = .dword }, .any },
150121 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
150122 .patterns = &.{
150123 .{ .src = .{ .to_mem, .none, .none } },
150124 },
150125 .extra_temps = .{
150126 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
150127 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0, .invert = true } } },
150128 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
150129 .unused,
150130 .unused,
150131 .unused,
150132 .unused,
150133 .unused,
150134 .unused,
150135 .unused,
150136 .unused,
150137 },
150138 .dst_temps = .{ .{ .rc = .sse }, .unused },
150139 .clobbers = .{ .eflags = true },
150140 .each = .{ .once = &.{
150141 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
150142 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
150143 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
150144 .{ ._, ._dqa, .mov, .dst0x, .tmp2x, ._, ._ },
150145 .{ ._, .p_, .andn, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
150146 .{ ._, .p_d, .sub, .dst0x, .tmp2x, ._, ._ },
150147 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_11_01_01), ._ },
150148 .{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
150149 .{ .@"0:", ._dqa, .mov, .tmp2x, .memi(.src0x, .tmp0), ._, ._ },
150150 .{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
150151 .{ ._, .p_d, .shuf, .tmp2x, .tmp2x, .ui(0b11_11_01_01), ._ },
150152 .{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
150153 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
150154 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150155 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10), ._ },
150156 .{ ._, .p_udq, .mul, .dst0x, .tmp2x, ._, ._ },
150157 } },
150158 }, .{
150159 .dst_constraints = .{ .{ .int = .dword }, .any },
150160 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any },
150161 .patterns = &.{
150162 .{ .src = .{ .to_mem, .none, .none } },
150163 },
150164 .extra_temps = .{
150165 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
150166 .unused,
150167 .unused,
150168 .unused,
150169 .unused,
150170 .unused,
150171 .unused,
150172 .unused,
150173 .unused,
150174 .unused,
150175 .unused,
150176 },
150177 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
150178 .clobbers = .{ .eflags = true },
150179 .each = .{ .once = &.{
150180 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
150181 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
150182 .{ .@"0:", .i_, .mul, .dst0d, .memi(.src0d, .tmp0), ._, ._ },
150183 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
150184 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150185 } },
150186 }, .{
150187 .required_features = .{ .@"64bit", null, null, null },
150188 .dst_constraints = .{ .{ .int = .qword }, .any },
150189 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any },
150190 .patterns = &.{
150191 .{ .src = .{ .to_mem, .none, .none } },
150192 },
150193 .extra_temps = .{
150194 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
150195 .unused,
150196 .unused,
150197 .unused,
150198 .unused,
150199 .unused,
150200 .unused,
150201 .unused,
150202 .unused,
150203 .unused,
150204 .unused,
150205 },
150206 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
150207 .clobbers = .{ .eflags = true },
150208 .each = .{ .once = &.{
150209 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
150210 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
150211 .{ .@"0:", .i_, .mul, .dst0q, .memi(.src0q, .tmp0), ._, ._ },
150212 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
150213 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150214 } },
150215 }, .{
150216 .required_features = .{ .@"64bit", .bmi2, .adx, null },
150217 .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
150218 .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },
150219 .patterns = &.{
150220 .{ .src = .{ .to_mem, .none, .none } },
150221 },
150222 .extra_temps = .{
150223 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150224 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150225 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150226 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150227 .{ .type = .u64, .kind = .{ .reg = .rdx } },
150228 .{ .type = .isize, .kind = .{ .reg = .rcx } },
150229 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150230 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150231 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150232 .unused,
150233 .unused,
150234 },
150235 .dst_temps = .{ .mem, .unused },
150236 .clobbers = .{ .eflags = true },
150237 .each = .{ .once = &.{
150238 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
150239 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
150240 .{ .@"0:", ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ },
150241 .{ ._, ._, .mov, .tmp3d, .sia(-8, .dst0, .add_size), ._, ._ },
150242 .{ .@"1:", ._, .xor, .tmp4d, .tmp4d, ._, ._ },
150243 .{ ._, ._, .@"or", .tmp4q, .leai(.tmp1q, .tmp3), ._, ._ },
150244 .{ ._, ._z, .j, .@"3f", ._, ._, ._ },
150245 .{ ._, ._, .lea, .tmp5p, .leaad(.tmp3, .sub_src0_elem_size, 8), ._, ._ },
150246 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
150247 .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leai(.tmp2q, .tmp5), ._ },
150248 .{ ._, ._x, .adc, .tmp7q, .tmp6q, ._, ._ },
150249 .{ ._, ._, .mov, .memiad(.dst0q, .tmp5, .add_src0_elem_size, -8), .tmp7q, ._, ._ },
150250 .{ ._, ._rcxz, .j, .@"2f", ._, ._, ._ },
150251 .{ ._, ._x, .ado, .tmp8q, .memia(.dst0q, .tmp5, .add_src0_elem_size), ._, ._ },
150252 .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ },
150253 .{ ._, ._, .lea, .tmp5p, .lead(.tmp5, 8), ._, ._ },
150254 .{ ._, ._mp, .j, .@"2b", ._, ._, ._ },
150255 .{ .@"3:", ._, .mov, .memi(.dst0q, .tmp3), .tmp4q, ._, ._ },
150256 .{ .@"2:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
150257 .{ ._, ._, .sub, .tmp3d, .si(8), ._, ._ },
150258 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
150259 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
150260 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
150261 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150262 } },
150263 }, .{
150264 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
150265 .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
150266 .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },
150267 .patterns = &.{
150268 .{ .src = .{ .to_mem, .none, .none } },
150269 },
150270 .extra_temps = .{
150271 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150272 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150273 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150274 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150275 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150276 .{ .type = .u64, .kind = .{ .reg = .rdx } },
150277 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
150278 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150279 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150280 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150281 .unused,
150282 },
150283 .dst_temps = .{ .mem, .unused },
150284 .clobbers = .{ .eflags = true },
150285 .each = .{ .once = &.{
150286 .{ ._, ._, .mov, .tmp0d, .sia(8, .src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
150287 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
150288 .{ .@"0:", ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ },
150289 .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
150290 .{ .@"1:", ._, .lea, .tmp4p, .leaa(.tmp3, .sub_src0_elem_size_div_8), ._, ._ },
150291 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
150292 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
150293 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
150294 .{ ._, ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
150295 .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
150296 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp3), .tmp5q, ._, ._ },
150297 .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
150298 .{ .@"2:", ._, .adc, .tmp9q, .memsia(.dst0q, .@"8", .tmp4, .add_src0_elem_size), ._, ._ },
150299 .{ ._, ._, .adc, .tmp6b, .si(0), ._, ._ },
150300 .{ ._, ._, .mov, .tmp7q, .tmp9q, ._, ._ },
150301 .{ ._, ._l, .sh, .tmp6b, .ui(4), ._, ._ },
150302 .{ .@"3:", ._x, .mul, .tmp9q, .tmp8q, .leasi(.tmp2q, .@"8", .tmp4), ._ },
150303 .{ ._, ._, .adc, .tmp8q, .tmp7q, ._, ._ },
150304 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp4, .add_src0_elem_size), .tmp8q, ._, ._ },
150305 .{ ._, ._c, .in, .tmp4p, ._, ._, ._ },
150306 .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
150307 .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
150308 .{ ._, ._, .sub, .tmp3d, .si(1), ._, ._ },
150309 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
150310 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
150311 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
150312 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150313 } },
150314 }, .{
150315 .required_features = .{ .@"64bit", .bmi2, null, null },
150316 .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
150317 .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },
150318 .patterns = &.{
150319 .{ .src = .{ .to_mem, .none, .none } },
150320 },
150321 .extra_temps = .{
150322 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150323 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150324 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150325 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150326 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150327 .{ .type = .u64, .kind = .{ .reg = .rdx } },
150328 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
150329 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150330 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150331 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150332 .unused,
150333 },
150334 .dst_temps = .{ .mem, .unused },
150335 .clobbers = .{ .eflags = true },
150336 .each = .{ .once = &.{
150337 .{ ._, ._, .mov, .tmp0d, .sia(8, .src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
150338 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
150339 .{ .@"0:", ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ },
150340 .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
150341 .{ .@"1:", ._, .lea, .tmp4p, .leaa(.tmp3, .sub_src0_elem_size_div_8), ._, ._ },
150342 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
150343 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
150344 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
150345 .{ ._, ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
150346 .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
150347 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp3), .tmp5q, ._, ._ },
150348 .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
150349 .{ .@"2:", ._, .adc, .tmp9q, .memsia(.dst0q, .@"8", .tmp4, .add_src0_elem_size), ._, ._ },
150350 .{ ._, ._, .adc, .tmp6b, .si(0), ._, ._ },
150351 .{ ._, ._, .mov, .tmp7q, .tmp9q, ._, ._ },
150352 .{ ._, ._l, .sh, .tmp6b, .ui(4), ._, ._ },
150353 .{ .@"3:", ._x, .mul, .tmp9q, .tmp8q, .leasi(.tmp2q, .@"8", .tmp4), ._ },
150354 .{ ._, ._, .adc, .tmp8q, .tmp7q, ._, ._ },
150355 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp4, .add_src0_elem_size), .tmp8q, ._, ._ },
150356 .{ ._, ._c, .in, .tmp4p, ._, ._, ._ },
150357 .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
150358 .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
150359 .{ ._, ._c, .de, .tmp3d, ._, ._, ._ },
150360 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
150361 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
150362 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
150363 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150364 } },
150365 }, .{
150366 .required_features = .{ .@"64bit", .slow_incdec, null, null },
150367 .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
150368 .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },
150369 .patterns = &.{
150370 .{ .src = .{ .to_mem, .none, .none } },
150371 },
150372 .extra_temps = .{
150373 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150374 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150375 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150376 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150377 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150378 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150379 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
150380 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150381 .{ .type = .u64, .kind = .{ .reg = .rax } },
150382 .{ .type = .u64, .kind = .{ .reg = .rdx } },
150383 .unused,
150384 },
150385 .dst_temps = .{ .mem, .unused },
150386 .clobbers = .{ .eflags = true },
150387 .each = .{ .once = &.{
150388 .{ ._, ._, .mov, .tmp0d, .sia(8, .src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
150389 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
150390 .{ .@"0:", ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ },
150391 .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
150392 .{ .@"1:", ._, .lea, .tmp4p, .leaa(.tmp3, .sub_src0_elem_size_div_8), ._, ._ },
150393 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
150394 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
150395 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
150396 .{ ._, ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
150397 .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
150398 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp3), .tmp5q, ._, ._ },
150399 .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
150400 .{ .@"2:", ._, .adc, .tmp9q, .memsia(.dst0q, .@"8", .tmp4, .add_src0_elem_size), ._, ._ },
150401 .{ ._, ._, .adc, .tmp6b, .si(0), ._, ._ },
150402 .{ ._, ._, .mov, .tmp7q, .tmp9q, ._, ._ },
150403 .{ .@"3:", ._, .mov, .tmp8q, .tmp5q, ._, ._ },
150404 .{ ._, ._, .mul, .leasi(.tmp2q, .@"8", .tmp4), ._, ._, ._ },
150405 .{ ._, ._l, .sh, .tmp6b, .ui(4), ._, ._ },
150406 .{ ._, ._, .adc, .tmp8q, .tmp7q, ._, ._ },
150407 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp4, .add_src0_elem_size), .tmp8q, ._, ._ },
150408 .{ ._, ._c, .in, .tmp4p, ._, ._, ._ },
150409 .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
150410 .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
150411 .{ ._, ._, .sub, .tmp3d, .si(1), ._, ._ },
150412 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
150413 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
150414 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
150415 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150416 } },
150417 }, .{
150418 .required_features = .{ .@"64bit", null, null, null },
150419 .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
150420 .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },
150421 .patterns = &.{
150422 .{ .src = .{ .to_mem, .none, .none } },
150423 },
150424 .extra_temps = .{
150425 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150426 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150427 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
150428 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150429 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150430 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150431 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
150432 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
150433 .{ .type = .u64, .kind = .{ .reg = .rax } },
150434 .{ .type = .u64, .kind = .{ .reg = .rdx } },
150435 .unused,
150436 },
150437 .dst_temps = .{ .mem, .unused },
150438 .clobbers = .{ .eflags = true },
150439 .each = .{ .once = &.{
150440 .{ ._, ._, .mov, .tmp0d, .sia(8, .src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
150441 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
150442 .{ .@"0:", ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ },
150443 .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
150444 .{ .@"1:", ._, .lea, .tmp4p, .leaa(.tmp3, .sub_src0_elem_size_div_8), ._, ._ },
150445 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
150446 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
150447 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
150448 .{ ._, ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ },
150449 .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
150450 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp3), .tmp5q, ._, ._ },
150451 .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
150452 .{ .@"2:", ._, .adc, .tmp9q, .memsia(.dst0q, .@"8", .tmp4, .add_src0_elem_size), ._, ._ },
150453 .{ ._, ._, .adc, .tmp6b, .si(0), ._, ._ },
150454 .{ ._, ._, .mov, .tmp7q, .tmp9q, ._, ._ },
150455 .{ .@"3:", ._, .mov, .tmp8q, .tmp5q, ._, ._ },
150456 .{ ._, ._, .mul, .leasi(.tmp2q, .@"8", .tmp4), ._, ._, ._ },
150457 .{ ._, ._l, .sh, .tmp6b, .ui(4), ._, ._ },
150458 .{ ._, ._, .adc, .tmp8q, .tmp7q, ._, ._ },
150459 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp4, .add_src0_elem_size), .tmp8q, ._, ._ },
150460 .{ ._, ._c, .in, .tmp4p, ._, ._, ._ },
150461 .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
150462 .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
150463 .{ ._, ._c, .de, .tmp3d, ._, ._, ._ },
150464 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
150465 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
150466 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
150467 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
150468 } },
150469 }, .{
150470 .required_features = .{ .f16c, null, null, null },
150471 .dst_constraints = .{ .{ .float = .word }, .any },
150472 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
150473 .patterns = &.{
150474 .{ .src = .{ .mem, .none, .none } },
150475 .{ .src = .{ .to_sse, .none, .none } },
150476 },
150477 .extra_temps = .{
150478 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
150479 .unused,
150480 .unused,
150481 .unused,
150482 .unused,
150483 .unused,
150484 .unused,
150485 .unused,
150486 .unused,
150487 .unused,
150488 .unused,
150489 },
150490 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
150491 .each = .{ .once = &.{
150492 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
150493 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
150494 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
150495 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
150496 } },
150497 }, .{
150498 .required_features = .{ .f16c, null, null, null },
150499 .dst_constraints = .{ .{ .float = .word }, .any },
150500 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
150501 .patterns = &.{
150502 .{ .src = .{ .mem, .none, .none } },
150503 .{ .src = .{ .to_sse, .none, .none } },
150504 },
150505 .extra_temps = .{
150506 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
150507 .unused,
150508 .unused,
150509 .unused,
150510 .unused,
150511 .unused,
150512 .unused,
150513 .unused,
150514 .unused,
150515 .unused,
150516 .unused,
150517 },
150518 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
150519 .each = .{ .once = &.{
150520 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
150521 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
150522 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
150523 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
150524 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
150525 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
150526 } },
150527 }, .{
150528 .required_features = .{ .f16c, null, null, null },
150529 .dst_constraints = .{ .{ .float = .word }, .any },
150530 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
150531 .patterns = &.{
150532 .{ .src = .{ .to_mem, .none, .none } },
150533 },
150534 .extra_temps = .{
150535 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150536 .{ .type = .f16, .kind = .{ .rc = .sse } },
150537 .unused,
150538 .unused,
150539 .unused,
150540 .unused,
150541 .unused,
150542 .unused,
150543 .unused,
150544 .unused,
150545 .unused,
150546 },
150547 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
150548 .clobbers = .{ .eflags = true },
150549 .each = .{ .once = &.{
150550 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
150551 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
150552 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) },
150553 .{ .@"0:", .vp_w, .insr, .dst0x, .dst0x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(1) },
150554 .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
150555 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
150556 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
150557 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
150558 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
150559 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150560 } },
150561 }, .{
150562 .required_features = .{ .avx, null, null, null },
150563 .dst_constraints = .{ .{ .float = .word }, .any },
150564 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
150565 .patterns = &.{
150566 .{ .src = .{ .to_mem, .none, .none } },
150567 },
150568 .call_frame = .{ .alignment = .@"16" },
150569 .extra_temps = .{
150570 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150571 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
150572 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
150573 .unused,
150574 .unused,
150575 .unused,
150576 .unused,
150577 .unused,
150578 .unused,
150579 .unused,
150580 .unused,
150581 },
150582 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
150583 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
150584 .each = .{ .once = &.{
150585 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
150586 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
150587 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .mem(.src0w), .ui(0) },
150588 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
150589 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
150590 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
150591 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
150592 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150593 } },
150594 }, .{
150595 .required_features = .{ .sse2, null, null, null },
150596 .dst_constraints = .{ .{ .float = .word }, .any },
150597 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
150598 .patterns = &.{
150599 .{ .src = .{ .to_mem, .none, .none } },
150600 },
150601 .call_frame = .{ .alignment = .@"16" },
150602 .extra_temps = .{
150603 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150604 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
150605 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
150606 .unused,
150607 .unused,
150608 .unused,
150609 .unused,
150610 .unused,
150611 .unused,
150612 .unused,
150613 .unused,
150614 },
150615 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
150616 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
150617 .each = .{ .once = &.{
150618 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
150619 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
150620 .{ ._, .p_w, .insr, .dst0x, .mem(.src0w), .ui(0), ._ },
150621 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
150622 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
150623 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
150624 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
150625 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150626 } },
150627 }, .{
150628 .required_features = .{ .sse, null, null, null },
150629 .dst_constraints = .{ .{ .float = .word }, .any },
150630 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
150631 .patterns = &.{
150632 .{ .src = .{ .to_mem, .none, .none } },
150633 },
150634 .call_frame = .{ .alignment = .@"16" },
150635 .extra_temps = .{
150636 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150637 .{ .type = .f16, .kind = .{ .reg = .ax } },
150638 .{ .type = .f32, .kind = .mem },
150639 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
150640 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
150641 .unused,
150642 .unused,
150643 .unused,
150644 .unused,
150645 .unused,
150646 .unused,
150647 },
150648 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
150649 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
150650 .each = .{ .once = &.{
150651 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
150652 .{ ._, ._, .mov, .tmp0p, .sia(2, .src0, .sub_unaligned_size), ._, ._ },
150653 .{ ._, ._, .movzx, .tmp1d, .mem(.src0w), ._, ._ },
150654 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
150655 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
150656 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
150657 .{ ._, ._ss, .mov, .tmp3x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
150658 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
150659 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
150660 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150661 } },
150662 }, .{
150663 .required_features = .{ .avx, null, null, null },
150664 .dst_constraints = .{ .{ .float = .dword }, .any },
150665 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
150666 .patterns = &.{
150667 .{ .src = .{ .to_sse, .none, .none } },
150668 },
150669 .extra_temps = .{
150670 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
150671 .unused,
150672 .unused,
150673 .unused,
150674 .unused,
150675 .unused,
150676 .unused,
150677 .unused,
150678 .unused,
150679 .unused,
150680 .unused,
150681 },
150682 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
150683 .each = .{ .once = &.{
150684 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
150685 .{ ._, .v_ss, .mul, .dst0x, .src0x, .tmp0x, ._ },
150686 } },
150687 }, .{
150688 .required_features = .{ .sse, null, null, null },
150689 .dst_constraints = .{ .{ .float = .dword }, .any },
150690 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
150691 .patterns = &.{
150692 .{ .src = .{ .to_mut_sse, .none, .none } },
150693 },
150694 .extra_temps = .{
150695 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
150696 .unused,
150697 .unused,
150698 .unused,
150699 .unused,
150700 .unused,
150701 .unused,
150702 .unused,
150703 .unused,
150704 .unused,
150705 .unused,
150706 },
150707 .dst_temps = .{ .{ .ref = .src0 }, .unused },
150708 .each = .{ .once = &.{
150709 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
150710 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
150711 .{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
150712 } },
150713 }, .{
150714 .required_features = .{ .avx, null, null, null },
150715 .dst_constraints = .{ .{ .float = .dword }, .any },
150716 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
150717 .patterns = &.{
150718 .{ .src = .{ .to_sse, .none, .none } },
150719 },
150720 .extra_temps = .{
150721 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
150722 .unused,
150723 .unused,
150724 .unused,
150725 .unused,
150726 .unused,
150727 .unused,
150728 .unused,
150729 .unused,
150730 .unused,
150731 .unused,
150732 },
150733 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
150734 .each = .{ .once = &.{
150735 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
150736 .{ ._, .v_ss, .mul, .tmp0x, .src0x, .tmp0x, ._ },
150737 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
150738 .{ ._, .v_ss, .mul, .dst0x, .tmp0x, .dst0x, ._ },
150739 } },
150740 }, .{
150741 .required_features = .{ .sse, null, null, null },
150742 .dst_constraints = .{ .{ .float = .dword }, .any },
150743 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
150744 .patterns = &.{
150745 .{ .src = .{ .to_mut_sse, .none, .none } },
150746 },
150747 .extra_temps = .{
150748 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
150749 .unused,
150750 .unused,
150751 .unused,
150752 .unused,
150753 .unused,
150754 .unused,
150755 .unused,
150756 .unused,
150757 .unused,
150758 .unused,
150759 },
150760 .dst_temps = .{ .{ .ref = .src0 }, .unused },
150761 .each = .{ .once = &.{
150762 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
150763 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
150764 .{ ._, ._ss, .mul, .tmp0x, .src0x, ._, ._ },
150765 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
150766 .{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
150767 } },
150768 }, .{
150769 .required_features = .{ .avx, null, null, null },
150770 .dst_constraints = .{ .{ .float = .dword }, .any },
150771 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any },
150772 .patterns = &.{
150773 .{ .src = .{ .to_mem, .none, .none } },
150774 },
150775 .extra_temps = .{
150776 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150777 .unused,
150778 .unused,
150779 .unused,
150780 .unused,
150781 .unused,
150782 .unused,
150783 .unused,
150784 .unused,
150785 .unused,
150786 .unused,
150787 },
150788 .dst_temps = .{ .{ .rc = .sse }, .unused },
150789 .clobbers = .{ .eflags = true },
150790 .each = .{ .once = &.{
150791 .{ ._, ._, .mov, .tmp0p, .sia(4, .src0, .sub_unaligned_size), ._, ._ },
150792 .{ ._, .v_ss, .mov, .dst0x, .mem(.src0d), ._, ._ },
150793 .{ .@"0:", .v_ss, .mul, .dst0x, .dst0x, .memia(.src0d, .tmp0, .add_unaligned_size), ._ },
150794 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
150795 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150796 } },
150797 }, .{
150798 .required_features = .{ .sse, null, null, null },
150799 .dst_constraints = .{ .{ .float = .dword }, .any },
150800 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any },
150801 .patterns = &.{
150802 .{ .src = .{ .to_mem, .none, .none } },
150803 },
150804 .extra_temps = .{
150805 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150806 .unused,
150807 .unused,
150808 .unused,
150809 .unused,
150810 .unused,
150811 .unused,
150812 .unused,
150813 .unused,
150814 .unused,
150815 .unused,
150816 },
150817 .dst_temps = .{ .{ .rc = .sse }, .unused },
150818 .clobbers = .{ .eflags = true },
150819 .each = .{ .once = &.{
150820 .{ ._, ._, .mov, .tmp0p, .sia(4, .src0, .sub_unaligned_size), ._, ._ },
150821 .{ ._, ._ss, .mov, .dst0x, .mem(.src0d), ._, ._ },
150822 .{ .@"0:", ._ss, .mul, .dst0x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
150823 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
150824 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150825 } },
150826 }, .{
150827 .required_features = .{ .avx, null, null, null },
150828 .dst_constraints = .{ .{ .float = .qword }, .any },
150829 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
150830 .patterns = &.{
150831 .{ .src = .{ .to_sse, .none, .none } },
150832 },
150833 .extra_temps = .{
150834 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
150835 .unused,
150836 .unused,
150837 .unused,
150838 .unused,
150839 .unused,
150840 .unused,
150841 .unused,
150842 .unused,
150843 .unused,
150844 .unused,
150845 },
150846 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
150847 .each = .{ .once = &.{
150848 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
150849 .{ ._, .v_sd, .mul, .dst0x, .src0x, .tmp0x, ._ },
150850 } },
150851 }, .{
150852 .required_features = .{ .sse2, null, null, null },
150853 .dst_constraints = .{ .{ .float = .qword }, .any },
150854 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
150855 .patterns = &.{
150856 .{ .src = .{ .to_mut_sse, .none, .none } },
150857 },
150858 .extra_temps = .{
150859 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
150860 .unused,
150861 .unused,
150862 .unused,
150863 .unused,
150864 .unused,
150865 .unused,
150866 .unused,
150867 .unused,
150868 .unused,
150869 .unused,
150870 },
150871 .dst_temps = .{ .{ .ref = .src0 }, .unused },
150872 .each = .{ .once = &.{
150873 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
150874 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
150875 .{ ._, ._sd, .mul, .dst0x, .tmp0x, ._, ._ },
150876 } },
150877 }, .{
150878 .required_features = .{ .avx, null, null, null },
150879 .dst_constraints = .{ .{ .float = .qword }, .any },
150880 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
150881 .patterns = &.{
150882 .{ .src = .{ .to_sse, .none, .none } },
150883 },
150884 .extra_temps = .{
150885 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
150886 .unused,
150887 .unused,
150888 .unused,
150889 .unused,
150890 .unused,
150891 .unused,
150892 .unused,
150893 .unused,
150894 .unused,
150895 .unused,
150896 },
150897 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
150898 .each = .{ .once = &.{
150899 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
150900 .{ ._, .v_sd, .mul, .tmp0x, .src0x, .tmp0x, ._ },
150901 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
150902 .{ ._, .v_sd, .mul, .dst0x, .tmp0x, .dst0x, ._ },
150903 } },
150904 }, .{
150905 .required_features = .{ .avx, null, null, null },
150906 .dst_constraints = .{ .{ .float = .qword }, .any },
150907 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
150908 .patterns = &.{
150909 .{ .src = .{ .to_mem, .none, .none } },
150910 },
150911 .extra_temps = .{
150912 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150913 .unused,
150914 .unused,
150915 .unused,
150916 .unused,
150917 .unused,
150918 .unused,
150919 .unused,
150920 .unused,
150921 .unused,
150922 .unused,
150923 },
150924 .dst_temps = .{ .{ .rc = .sse }, .unused },
150925 .clobbers = .{ .eflags = true },
150926 .each = .{ .once = &.{
150927 .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ },
150928 .{ ._, .v_sd, .mov, .dst0x, .mem(.src0q), ._, ._ },
150929 .{ .@"0:", .v_sd, .mul, .dst0x, .dst0x, .memia(.src0q, .tmp0, .add_unaligned_size), ._ },
150930 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
150931 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150932 } },
150933 }, .{
150934 .required_features = .{ .sse2, null, null, null },
150935 .dst_constraints = .{ .{ .float = .qword }, .any },
150936 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
150937 .patterns = &.{
150938 .{ .src = .{ .to_mem, .none, .none } },
150939 },
150940 .extra_temps = .{
150941 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150942 .unused,
150943 .unused,
150944 .unused,
150945 .unused,
150946 .unused,
150947 .unused,
150948 .unused,
150949 .unused,
150950 .unused,
150951 .unused,
150952 },
150953 .dst_temps = .{ .{ .rc = .sse }, .unused },
150954 .clobbers = .{ .eflags = true },
150955 .each = .{ .once = &.{
150956 .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ },
150957 .{ ._, ._sd, .mov, .dst0x, .mem(.src0q), ._, ._ },
150958 .{ .@"0:", ._sd, .mul, .dst0x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
150959 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
150960 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150961 } },
150962 }, .{
150963 .required_features = .{ .x87, null, null, null },
150964 .dst_constraints = .{ .{ .float = .qword }, .any },
150965 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
150966 .patterns = &.{
150967 .{ .src = .{ .to_mem, .none, .none } },
150968 },
150969 .extra_temps = .{
150970 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
150971 .{ .type = .f64, .kind = .{ .reg = .st7 } },
150972 .unused,
150973 .unused,
150974 .unused,
150975 .unused,
150976 .unused,
150977 .unused,
150978 .unused,
150979 .unused,
150980 .unused,
150981 },
150982 .dst_temps = .{ .mem, .unused },
150983 .clobbers = .{ .eflags = true },
150984 .each = .{ .once = &.{
150985 .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_unaligned_size), ._, ._ },
150986 .{ ._, .f_, .ld, .mem(.src0q), ._, ._, ._ },
150987 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
150988 .{ .pseudo, .f_cstp, .in, ._, ._, ._, ._ },
150989 .{ .@"0:", .f_, .ld, .dst0q, ._, ._, ._ },
150990 .{ .@"1:", .f_, .mul, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
150991 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
150992 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
150993 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
150994 } },
150995 }, .{
150996 .required_features = .{ .x87, null, null, null },
150997 .dst_constraints = .{ .{ .float = .tbyte }, .any },
150998 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
150999 .patterns = &.{
151000 .{ .src = .{ .to_mem, .none, .none } },
151001 },
151002 .extra_temps = .{
151003 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
151004 .{ .type = .f80, .kind = .{ .reg = .st7 } },
151005 .{ .type = .f80, .kind = .{ .reg = .st6 } },
151006 .unused,
151007 .unused,
151008 .unused,
151009 .unused,
151010 .unused,
151011 .unused,
151012 .unused,
151013 .unused,
151014 },
151015 .dst_temps = .{ .{ .rc = .x87 }, .unused },
151016 .clobbers = .{ .eflags = true },
151017 .each = .{ .once = &.{
151018 .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ },
151019 .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ },
151020 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
151021 .{ ._, .f_p, .mul, ._, ._, ._, ._ },
151022 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
151023 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
151024 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
151025 } },
151026 }, .{
151027 .required_features = .{ .avx, null, null, null },
151028 .dst_constraints = .{ .{ .float = .xword }, .any },
151029 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
151030 .patterns = &.{
151031 .{ .src = .{ .to_mem, .none, .none } },
151032 },
151033 .call_frame = .{ .alignment = .@"16" },
151034 .extra_temps = .{
151035 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
151036 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
151037 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
151038 .unused,
151039 .unused,
151040 .unused,
151041 .unused,
151042 .unused,
151043 .unused,
151044 .unused,
151045 .unused,
151046 },
151047 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
151048 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
151049 .each = .{ .once = &.{
151050 .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ },
151051 .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ },
151052 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
151053 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
151054 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
151055 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
151056 } },
151057 }, .{
151058 .required_features = .{ .sse2, null, null, null },
151059 .dst_constraints = .{ .{ .float = .xword }, .any },
151060 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
151061 .patterns = &.{
151062 .{ .src = .{ .to_mem, .none, .none } },
151063 },
151064 .call_frame = .{ .alignment = .@"16" },
151065 .extra_temps = .{
151066 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
151067 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
151068 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
151069 .unused,
151070 .unused,
151071 .unused,
151072 .unused,
151073 .unused,
151074 .unused,
151075 .unused,
151076 .unused,
151077 },
151078 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
151079 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
151080 .each = .{ .once = &.{
151081 .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ },
151082 .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ },
151083 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
151084 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
151085 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
151086 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
151087 } },
151088 }, .{
151089 .required_features = .{ .sse, null, null, null },
151090 .dst_constraints = .{ .{ .float = .xword }, .any },
151091 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
151092 .patterns = &.{
151093 .{ .src = .{ .to_mem, .none, .none } },
151094 },
151095 .call_frame = .{ .alignment = .@"16" },
151096 .extra_temps = .{
151097 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
151098 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
151099 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
151100 .unused,
151101 .unused,
151102 .unused,
151103 .unused,
151104 .unused,
151105 .unused,
151106 .unused,
151107 .unused,
151108 },
151109 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
151110 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
151111 .each = .{ .once = &.{
151112 .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ },
151113 .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ },
151114 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
151115 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
151116 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
151117 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
151118 } },
151119 } },
151120 }) catch |err| switch (err) {
151121 error.SelectFailed => return cg.fail("failed to select {s}.{s} {} {}", .{
151122 @tagName(air_tag),
151123 @tagName(reduce.operation),
151124 cg.typeOf(reduce.operand).fmt(pt),
151125 ops[0].tracking(cg),
151126 }),
151127 else => |e| return e,
151128 };
151129 switch (reduce.operation) {
151130 .And, .Or, .Xor, .Min, .Max => {},
151131 .Add, .Mul => if (cg.intInfo(res_ty)) |_| res[0].wrapInt(cg) catch |err| switch (err) {
151132 error.SelectFailed => return cg.fail("failed to select {s}.{s} wrap {} {}", .{
151133 @tagName(air_tag),
151134 @tagName(reduce.operation),
151135 res_ty.fmt(pt),
151136 res[0].tracking(cg),
151137 }),
151138 else => |e| return e,
151139 },
151140 }
151141 try res[0].finish(inst, &.{reduce.operand}, &ops, cg);
151142 },
151143 .reduce_optimized => |air_tag| if (use_old) try cg.airReduce(inst) else {
151144 const inf = std.math.inf(f16);
151145 const reduce = air_datas[@intFromEnum(inst)].reduce;
151146 var ops = try cg.tempsFromOperands(inst, .{reduce.operand});
151147 var res: [1]Temp = undefined;
151148 cg.select(&res, &.{cg.typeOfIndex(inst)}, &ops, switch (reduce.operation) {
151149 .And, .Or, .Xor => unreachable,
151150 .Min => comptime &.{ .{
151151 .required_features = .{ .f16c, null, null, null },
151152 .dst_constraints = .{ .{ .float = .word }, .any },
151153 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
151154 .patterns = &.{
151155 .{ .src = .{ .mem, .none, .none } },
151156 .{ .src = .{ .to_sse, .none, .none } },
151157 },
151158 .extra_temps = .{
151159 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151160 .unused,
151161 .unused,
151162 .unused,
151163 .unused,
151164 .unused,
151165 .unused,
151166 .unused,
151167 .unused,
151168 .unused,
151169 .unused,
151170 },
151171 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151172 .each = .{ .once = &.{
151173 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
151174 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151175 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151176 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151177 } },
151178 }, .{
151179 .required_features = .{ .f16c, null, null, null },
151180 .dst_constraints = .{ .{ .float = .word }, .any },
151181 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
151182 .patterns = &.{
151183 .{ .src = .{ .mem, .none, .none } },
151184 .{ .src = .{ .to_sse, .none, .none } },
151185 },
151186 .extra_temps = .{
151187 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151188 .unused,
151189 .unused,
151190 .unused,
151191 .unused,
151192 .unused,
151193 .unused,
151194 .unused,
151195 .unused,
151196 .unused,
151197 .unused,
151198 },
151199 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151200 .each = .{ .once = &.{
151201 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
151202 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
151203 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151204 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151205 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151206 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151207 } },
151208 }, .{
151209 .required_features = .{ .f16c, null, null, null },
151210 .dst_constraints = .{ .{ .float = .word }, .any },
151211 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
151212 .patterns = &.{
151213 .{ .src = .{ .mem, .none, .none } },
151214 .{ .src = .{ .to_sse, .none, .none } },
151215 },
151216 .extra_temps = .{
151217 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151218 .unused,
151219 .unused,
151220 .unused,
151221 .unused,
151222 .unused,
151223 .unused,
151224 .unused,
151225 .unused,
151226 .unused,
151227 .unused,
151228 },
151229 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151230 .each = .{ .once = &.{
151231 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
151232 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
151233 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151234 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151235 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151236 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151237 } },
151238 }, .{
151239 .required_features = .{ .f16c, null, null, null },
151240 .dst_constraints = .{ .{ .float = .word }, .any },
151241 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
151242 .patterns = &.{
151243 .{ .src = .{ .to_sse, .none, .none } },
151244 },
151245 .extra_temps = .{
151246 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
151247 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
151248 .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
151249 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151250 .unused,
151251 .unused,
151252 .unused,
151253 .unused,
151254 .unused,
151255 .unused,
151256 .unused,
151257 },
151258 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151259 .each = .{ .once = &.{
151260 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
151261 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
151262 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
151263 .{ ._, .v_ps, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
151264 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
151265 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151266 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151267 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
151268 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151269 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
151270 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
151271 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151272 } },
151273 }, .{
151274 .required_features = .{ .f16c, null, null, null },
151275 .dst_constraints = .{ .{ .float = .word }, .any },
151276 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
151277 .patterns = &.{
151278 .{ .src = .{ .mem, .none, .none } },
151279 .{ .src = .{ .to_sse, .none, .none } },
151280 },
151281 .extra_temps = .{
151282 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151283 .unused,
151284 .unused,
151285 .unused,
151286 .unused,
151287 .unused,
151288 .unused,
151289 .unused,
151290 .unused,
151291 .unused,
151292 .unused,
151293 },
151294 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151295 .each = .{ .once = &.{
151296 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
151297 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
151298 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151299 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
151300 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151301 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151302 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151303 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151304 } },
151305 }, .{
151306 .required_features = .{ .f16c, null, null, null },
151307 .dst_constraints = .{ .{ .float = .word }, .any },
151308 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
151309 .patterns = &.{
151310 .{ .src = .{ .to_sse, .none, .none } },
151311 },
151312 .extra_temps = .{
151313 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
151314 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
151315 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
151316 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151317 .unused,
151318 .unused,
151319 .unused,
151320 .unused,
151321 .unused,
151322 .unused,
151323 .unused,
151324 },
151325 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151326 .each = .{ .once = &.{
151327 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
151328 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
151329 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
151330 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
151331 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151332 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
151333 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
151334 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp3y, ._ },
151335 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151336 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151337 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
151338 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151339 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
151340 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
151341 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151342 } },
151343 }, .{
151344 .required_features = .{ .f16c, null, null, null },
151345 .dst_constraints = .{ .{ .float = .word }, .any },
151346 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
151347 .patterns = &.{
151348 .{ .src = .{ .to_sse, .none, .none } },
151349 },
151350 .extra_temps = .{
151351 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151352 .unused,
151353 .unused,
151354 .unused,
151355 .unused,
151356 .unused,
151357 .unused,
151358 .unused,
151359 .unused,
151360 .unused,
151361 .unused,
151362 },
151363 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151364 .each = .{ .once = &.{
151365 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
151366 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
151367 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
151368 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp0y, ._ },
151369 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
151370 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151371 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
151372 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151373 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151374 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151375 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151376 } },
151377 }, .{
151378 .required_features = .{ .avx512f, null, null, null },
151379 .dst_constraints = .{ .{ .float = .word }, .any },
151380 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
151381 .patterns = &.{
151382 .{ .src = .{ .to_mem, .none, .none } },
151383 },
151384 .extra_temps = .{
151385 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
151386 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
151387 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
151388 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151389 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151390 .unused,
151391 .unused,
151392 .unused,
151393 .unused,
151394 .unused,
151395 .unused,
151396 },
151397 .dst_temps = .{ .{ .rc = .sse }, .unused },
151398 .each = .{ .once = &.{
151399 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
151400 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
151401 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
151402 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
151403 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
151404 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
151405 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
151406 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
151407 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
151408 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
151409 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
151410 .{ ._, .v_ps, .min, .tmp3y, .tmp3y, .tmp4y, ._ },
151411 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
151412 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
151413 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
151414 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp4y, ._ },
151415 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp3y, ._ },
151416 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151417 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151418 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
151419 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151420 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
151421 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
151422 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151423 } },
151424 }, .{
151425 .required_features = .{ .avx512f, null, null, null },
151426 .dst_constraints = .{ .{ .float = .word }, .any },
151427 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
151428 .patterns = &.{
151429 .{ .src = .{ .to_mem, .none, .none } },
151430 },
151431 .extra_temps = .{
151432 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151433 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151434 .unused,
151435 .unused,
151436 .unused,
151437 .unused,
151438 .unused,
151439 .unused,
151440 .unused,
151441 .unused,
151442 .unused,
151443 },
151444 .dst_temps = .{ .{ .rc = .sse }, .unused },
151445 .each = .{ .once = &.{
151446 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
151447 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
151448 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
151449 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
151450 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
151451 .{ ._, .v_ps, .min, .tmp0y, .tmp0y, .tmp1y, ._ },
151452 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
151453 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
151454 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
151455 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp1y, ._ },
151456 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp0y, ._ },
151457 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
151458 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151459 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
151460 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151461 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151462 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151463 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151464 } },
151465 }, .{
151466 .required_features = .{ .f16c, null, null, null },
151467 .dst_constraints = .{ .{ .float = .word }, .any },
151468 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
151469 .patterns = &.{
151470 .{ .src = .{ .to_mem, .none, .none } },
151471 },
151472 .extra_temps = .{
151473 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
151474 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151475 .unused,
151476 .unused,
151477 .unused,
151478 .unused,
151479 .unused,
151480 .unused,
151481 .unused,
151482 .unused,
151483 .unused,
151484 },
151485 .dst_temps = .{ .{ .rc = .sse }, .unused },
151486 .clobbers = .{ .eflags = true },
151487 .each = .{ .once = &.{
151488 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
151489 .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
151490 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
151491 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp1y, ._ },
151492 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
151493 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
151494 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
151495 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp1x, ._ },
151496 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
151497 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp1x, ._ },
151498 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
151499 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp1x, ._ },
151500 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151501 } },
151502 }, .{
151503 .required_features = .{ .avx512f, null, null, null },
151504 .dst_constraints = .{ .{ .float = .word }, .any },
151505 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
151506 .patterns = &.{
151507 .{ .src = .{ .to_mem, .none, .none } },
151508 },
151509 .extra_temps = .{
151510 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
151511 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
151512 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
151513 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151514 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151515 .unused,
151516 .unused,
151517 .unused,
151518 .unused,
151519 .unused,
151520 .unused,
151521 },
151522 .dst_temps = .{ .{ .rc = .sse }, .unused },
151523 .clobbers = .{ .eflags = true },
151524 .each = .{ .once = &.{
151525 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
151526 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
151527 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
151528 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
151529 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
151530 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
151531 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
151532 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
151533 .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ },
151534 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
151535 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
151536 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
151537 .{ ._, .v_ps, .min, .tmp3y, .tmp3y, .tmp4y, ._ },
151538 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
151539 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
151540 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
151541 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp4y, ._ },
151542 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp3y, ._ },
151543 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
151544 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp3y, ._ },
151545 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
151546 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
151547 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151548 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151549 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
151550 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151551 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
151552 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
151553 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151554 } },
151555 }, .{
151556 .required_features = .{ .f16c, null, null, null },
151557 .dst_constraints = .{ .{ .float = .word }, .any },
151558 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
151559 .patterns = &.{
151560 .{ .src = .{ .to_mem, .none, .none } },
151561 },
151562 .extra_temps = .{
151563 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
151564 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
151565 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
151566 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151567 .unused,
151568 .unused,
151569 .unused,
151570 .unused,
151571 .unused,
151572 .unused,
151573 .unused,
151574 },
151575 .dst_temps = .{ .{ .rc = .sse }, .unused },
151576 .clobbers = .{ .eflags = true },
151577 .each = .{ .once = &.{
151578 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
151579 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
151580 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
151581 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
151582 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
151583 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
151584 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151585 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
151586 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
151587 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp3y, ._ },
151588 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
151589 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp3y, ._ },
151590 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
151591 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
151592 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151593 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151594 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
151595 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151596 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
151597 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
151598 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
151599 } },
151600 }, .{
151601 .required_features = .{ .avx, null, null, null },
151602 .dst_constraints = .{ .{ .float = .word }, .any },
151603 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
151604 .patterns = &.{
151605 .{ .src = .{ .to_mem, .none, .none } },
151606 },
151607 .call_frame = .{ .alignment = .@"16" },
151608 .extra_temps = .{
151609 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
151610 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
151611 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
151612 .unused,
151613 .unused,
151614 .unused,
151615 .unused,
151616 .unused,
151617 .unused,
151618 .unused,
151619 .unused,
151620 },
151621 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
151622 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
151623 .each = .{ .once = &.{
151624 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
151625 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
151626 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) },
151627 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
151628 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
151629 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
151630 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
151631 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
151632 } },
151633 }, .{
151634 .required_features = .{ .sse2, null, null, null },
151635 .dst_constraints = .{ .{ .float = .word }, .any },
151636 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
151637 .patterns = &.{
151638 .{ .src = .{ .to_mem, .none, .none } },
151639 },
151640 .call_frame = .{ .alignment = .@"16" },
151641 .extra_temps = .{
151642 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
151643 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
151644 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
151645 .unused,
151646 .unused,
151647 .unused,
151648 .unused,
151649 .unused,
151650 .unused,
151651 .unused,
151652 .unused,
151653 },
151654 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
151655 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
151656 .each = .{ .once = &.{
151657 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
151658 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
151659 .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ },
151660 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
151661 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
151662 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
151663 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
151664 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
151665 } },
151666 }, .{
151667 .required_features = .{ .sse, null, null, null },
151668 .dst_constraints = .{ .{ .float = .word }, .any },
151669 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
151670 .patterns = &.{
151671 .{ .src = .{ .to_mem, .none, .none } },
151672 },
151673 .call_frame = .{ .alignment = .@"16" },
151674 .extra_temps = .{
151675 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
151676 .{ .type = .f16, .kind = .{ .reg = .ax } },
151677 .{ .type = .f32, .kind = .mem },
151678 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
151679 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
151680 .unused,
151681 .unused,
151682 .unused,
151683 .unused,
151684 .unused,
151685 .unused,
151686 },
151687 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
151688 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
151689 .each = .{ .once = &.{
151690 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
151691 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
151692 .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
151693 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
151694 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
151695 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
151696 .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ },
151697 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
151698 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
151699 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
151700 } },
151701 }, .{
151702 .required_features = .{ .avx, null, null, null },
151703 .dst_constraints = .{ .{ .float = .dword }, .any },
151704 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
151705 .patterns = &.{
151706 .{ .src = .{ .to_sse, .none, .none } },
151707 },
151708 .extra_temps = .{
151709 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151710 .unused,
151711 .unused,
151712 .unused,
151713 .unused,
151714 .unused,
151715 .unused,
151716 .unused,
151717 .unused,
151718 .unused,
151719 .unused,
151720 },
151721 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151722 .each = .{ .once = &.{
151723 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
151724 .{ ._, .v_ss, .min, .dst0x, .src0x, .tmp0x, ._ },
151725 } },
151726 }, .{
151727 .required_features = .{ .sse, null, null, null },
151728 .dst_constraints = .{ .{ .float = .dword }, .any },
151729 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
151730 .patterns = &.{
151731 .{ .src = .{ .to_mut_sse, .none, .none } },
151732 },
151733 .extra_temps = .{
151734 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151735 .unused,
151736 .unused,
151737 .unused,
151738 .unused,
151739 .unused,
151740 .unused,
151741 .unused,
151742 .unused,
151743 .unused,
151744 .unused,
151745 },
151746 .dst_temps = .{ .{ .ref = .src0 }, .unused },
151747 .each = .{ .once = &.{
151748 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
151749 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
151750 .{ ._, ._ss, .min, .dst0x, .tmp0x, ._, ._ },
151751 } },
151752 }, .{
151753 .required_features = .{ .avx, null, null, null },
151754 .dst_constraints = .{ .{ .float = .dword }, .any },
151755 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
151756 .patterns = &.{
151757 .{ .src = .{ .to_sse, .none, .none } },
151758 },
151759 .extra_temps = .{
151760 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151761 .unused,
151762 .unused,
151763 .unused,
151764 .unused,
151765 .unused,
151766 .unused,
151767 .unused,
151768 .unused,
151769 .unused,
151770 .unused,
151771 },
151772 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151773 .each = .{ .once = &.{
151774 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
151775 .{ ._, .v_ss, .min, .tmp0x, .src0x, .tmp0x, ._ },
151776 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
151777 .{ ._, .v_ss, .min, .dst0x, .tmp0x, .dst0x, ._ },
151778 } },
151779 }, .{
151780 .required_features = .{ .sse, null, null, null },
151781 .dst_constraints = .{ .{ .float = .dword }, .any },
151782 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
151783 .patterns = &.{
151784 .{ .src = .{ .to_mut_sse, .none, .none } },
151785 },
151786 .extra_temps = .{
151787 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151788 .unused,
151789 .unused,
151790 .unused,
151791 .unused,
151792 .unused,
151793 .unused,
151794 .unused,
151795 .unused,
151796 .unused,
151797 .unused,
151798 },
151799 .dst_temps = .{ .{ .ref = .src0 }, .unused },
151800 .each = .{ .once = &.{
151801 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
151802 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
151803 .{ ._, ._ss, .min, .tmp0x, .src0x, ._, ._ },
151804 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
151805 .{ ._, ._ss, .min, .dst0x, .tmp0x, ._, ._ },
151806 } },
151807 }, .{
151808 .required_features = .{ .avx, null, null, null },
151809 .dst_constraints = .{ .{ .float = .dword }, .any },
151810 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
151811 .patterns = &.{
151812 .{ .src = .{ .to_sse, .none, .none } },
151813 },
151814 .extra_temps = .{
151815 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151816 .unused,
151817 .unused,
151818 .unused,
151819 .unused,
151820 .unused,
151821 .unused,
151822 .unused,
151823 .unused,
151824 .unused,
151825 .unused,
151826 },
151827 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151828 .each = .{ .once = &.{
151829 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
151830 .{ ._, .v_ps, .min, .dst0x, .src0x, .tmp0x, ._ },
151831 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151832 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151833 } },
151834 }, .{
151835 .required_features = .{ .sse, null, null, null },
151836 .dst_constraints = .{ .{ .float = .dword }, .any },
151837 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
151838 .patterns = &.{
151839 .{ .src = .{ .to_mut_sse, .none, .none } },
151840 },
151841 .extra_temps = .{
151842 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151843 .unused,
151844 .unused,
151845 .unused,
151846 .unused,
151847 .unused,
151848 .unused,
151849 .unused,
151850 .unused,
151851 .unused,
151852 .unused,
151853 },
151854 .dst_temps = .{ .{ .ref = .src0 }, .unused },
151855 .each = .{ .once = &.{
151856 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
151857 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
151858 .{ ._, ._ps, .min, .dst0x, .tmp0x, ._, ._ },
151859 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
151860 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
151861 .{ ._, ._ss, .min, .dst0x, .tmp0x, ._, ._ },
151862 } },
151863 }, .{
151864 .required_features = .{ .avx, null, null, null },
151865 .dst_constraints = .{ .{ .float = .dword }, .any },
151866 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
151867 .patterns = &.{
151868 .{ .src = .{ .to_sse, .none, .none } },
151869 },
151870 .extra_temps = .{
151871 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
151872 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
151873 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
151874 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151875 .unused,
151876 .unused,
151877 .unused,
151878 .unused,
151879 .unused,
151880 .unused,
151881 .unused,
151882 },
151883 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151884 .each = .{ .once = &.{
151885 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
151886 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
151887 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
151888 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
151889 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151890 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151891 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
151892 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151893 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
151894 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
151895 } },
151896 }, .{
151897 .required_features = .{ .avx, null, null, null },
151898 .dst_constraints = .{ .{ .float = .dword }, .any },
151899 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
151900 .patterns = &.{
151901 .{ .src = .{ .to_sse, .none, .none } },
151902 },
151903 .extra_temps = .{
151904 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151905 .unused,
151906 .unused,
151907 .unused,
151908 .unused,
151909 .unused,
151910 .unused,
151911 .unused,
151912 .unused,
151913 .unused,
151914 .unused,
151915 },
151916 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
151917 .each = .{ .once = &.{
151918 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
151919 .{ ._, .v_ps, .min, .dst0x, .src0x, .tmp0x, ._ },
151920 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
151921 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151922 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151923 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151924 } },
151925 }, .{
151926 .required_features = .{ .avx512f, null, null, null },
151927 .dst_constraints = .{ .{ .float = .dword }, .any },
151928 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
151929 .patterns = &.{
151930 .{ .src = .{ .to_mem, .none, .none } },
151931 },
151932 .extra_temps = .{
151933 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
151934 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
151935 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
151936 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
151937 .unused,
151938 .unused,
151939 .unused,
151940 .unused,
151941 .unused,
151942 .unused,
151943 .unused,
151944 },
151945 .dst_temps = .{ .{ .rc = .sse }, .unused },
151946 .each = .{ .once = &.{
151947 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
151948 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
151949 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
151950 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
151951 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
151952 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
151953 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
151954 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
151955 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp3y, ._ },
151956 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
151957 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151958 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
151959 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
151960 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
151961 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
151962 } },
151963 }, .{
151964 .required_features = .{ .avx512f, null, null, null },
151965 .dst_constraints = .{ .{ .float = .dword }, .any },
151966 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
151967 .patterns = &.{
151968 .{ .src = .{ .to_mem, .none, .none } },
151969 },
151970 .extra_temps = .{
151971 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
151972 .unused,
151973 .unused,
151974 .unused,
151975 .unused,
151976 .unused,
151977 .unused,
151978 .unused,
151979 .unused,
151980 .unused,
151981 .unused,
151982 },
151983 .dst_temps = .{ .{ .rc = .sse }, .unused },
151984 .each = .{ .once = &.{
151985 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
151986 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
151987 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp0y, ._ },
151988 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
151989 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151990 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
151991 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp0x, ._ },
151992 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
151993 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp0x, ._ },
151994 } },
151995 }, .{
151996 .required_features = .{ .avx, null, null, null },
151997 .dst_constraints = .{ .{ .float = .dword }, .any },
151998 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
151999 .patterns = &.{
152000 .{ .src = .{ .to_mem, .none, .none } },
152001 },
152002 .extra_temps = .{
152003 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152004 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
152005 .unused,
152006 .unused,
152007 .unused,
152008 .unused,
152009 .unused,
152010 .unused,
152011 .unused,
152012 .unused,
152013 .unused,
152014 },
152015 .dst_temps = .{ .{ .rc = .sse }, .unused },
152016 .clobbers = .{ .eflags = true },
152017 .each = .{ .once = &.{
152018 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
152019 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
152020 .{ .@"0:", .v_ps, .min, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
152021 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
152022 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152023 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
152024 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp1x, ._ },
152025 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
152026 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp1x, ._ },
152027 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
152028 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp1x, ._ },
152029 } },
152030 }, .{
152031 .required_features = .{ .sse, null, null, null },
152032 .dst_constraints = .{ .{ .float = .dword }, .any },
152033 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
152034 .patterns = &.{
152035 .{ .src = .{ .to_mem, .none, .none } },
152036 },
152037 .extra_temps = .{
152038 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152039 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
152040 .unused,
152041 .unused,
152042 .unused,
152043 .unused,
152044 .unused,
152045 .unused,
152046 .unused,
152047 .unused,
152048 .unused,
152049 },
152050 .dst_temps = .{ .{ .rc = .sse }, .unused },
152051 .clobbers = .{ .eflags = true },
152052 .each = .{ .once = &.{
152053 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
152054 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
152055 .{ .@"0:", ._ps, .min, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
152056 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152057 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152058 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
152059 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
152060 .{ ._, ._ps, .min, .dst0x, .tmp1x, ._, ._ },
152061 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
152062 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
152063 .{ ._, ._ss, .min, .dst0x, .tmp1x, ._, ._ },
152064 } },
152065 }, .{
152066 .required_features = .{ .avx512f, null, null, null },
152067 .dst_constraints = .{ .{ .float = .dword }, .any },
152068 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
152069 .patterns = &.{
152070 .{ .src = .{ .to_mem, .none, .none } },
152071 },
152072 .extra_temps = .{
152073 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152074 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
152075 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
152076 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
152077 .unused,
152078 .unused,
152079 .unused,
152080 .unused,
152081 .unused,
152082 .unused,
152083 .unused,
152084 },
152085 .dst_temps = .{ .{ .rc = .sse }, .unused },
152086 .clobbers = .{ .eflags = true },
152087 .each = .{ .once = &.{
152088 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152089 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
152090 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
152091 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152092 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
152093 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
152094 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
152095 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
152096 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
152097 .{ .@"0:", .v_ps, .min, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
152098 .{ ._, .v_ps, .min, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
152099 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
152100 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152101 .{ ._, .v_ps, .min, .dst0y, .dst0y, .tmp3y, ._ },
152102 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
152103 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
152104 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
152105 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
152106 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
152107 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
152108 } },
152109 }, .{
152110 .required_features = .{ .avx, null, null, null },
152111 .dst_constraints = .{ .{ .float = .dword }, .any },
152112 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
152113 .patterns = &.{
152114 .{ .src = .{ .to_mem, .none, .none } },
152115 },
152116 .extra_temps = .{
152117 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152118 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
152119 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
152120 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
152121 .unused,
152122 .unused,
152123 .unused,
152124 .unused,
152125 .unused,
152126 .unused,
152127 .unused,
152128 },
152129 .dst_temps = .{ .{ .rc = .sse }, .unused },
152130 .clobbers = .{ .eflags = true },
152131 .each = .{ .once = &.{
152132 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152133 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
152134 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152135 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
152136 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
152137 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
152138 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
152139 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
152140 .{ .@"0:", .v_ps, .min, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
152141 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152142 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152143 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
152144 .{ ._, .v_ps, .min, .dst0x, .dst0x, .tmp3x, ._ },
152145 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
152146 .{ ._, .v_ss, .min, .dst0x, .dst0x, .tmp3x, ._ },
152147 } },
152148 }, .{
152149 .required_features = .{ .sse, null, null, null },
152150 .dst_constraints = .{ .{ .float = .dword }, .any },
152151 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
152152 .patterns = &.{
152153 .{ .src = .{ .to_mem, .none, .none } },
152154 },
152155 .extra_temps = .{
152156 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152157 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
152158 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
152159 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
152160 .unused,
152161 .unused,
152162 .unused,
152163 .unused,
152164 .unused,
152165 .unused,
152166 .unused,
152167 },
152168 .dst_temps = .{ .{ .rc = .sse }, .unused },
152169 .clobbers = .{ .eflags = true },
152170 .each = .{ .once = &.{
152171 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152172 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
152173 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152174 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
152175 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
152176 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
152177 .{ .@"0:", ._ps, .min, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
152178 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152179 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152180 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
152181 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
152182 .{ ._, ._ps, .min, .dst0x, .tmp3x, ._, ._ },
152183 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
152184 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
152185 .{ ._, ._ss, .min, .dst0x, .tmp3x, ._, ._ },
152186 } },
152187 }, .{
152188 .required_features = .{ .avx, null, null, null },
152189 .dst_constraints = .{ .{ .float = .qword }, .any },
152190 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
152191 .patterns = &.{
152192 .{ .src = .{ .to_sse, .none, .none } },
152193 },
152194 .extra_temps = .{
152195 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152196 .unused,
152197 .unused,
152198 .unused,
152199 .unused,
152200 .unused,
152201 .unused,
152202 .unused,
152203 .unused,
152204 .unused,
152205 .unused,
152206 },
152207 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152208 .each = .{ .once = &.{
152209 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
152210 .{ ._, .v_sd, .min, .dst0x, .src0x, .tmp0x, ._ },
152211 } },
152212 }, .{
152213 .required_features = .{ .sse2, null, null, null },
152214 .dst_constraints = .{ .{ .float = .qword }, .any },
152215 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
152216 .patterns = &.{
152217 .{ .src = .{ .to_mut_sse, .none, .none } },
152218 },
152219 .extra_temps = .{
152220 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152221 .unused,
152222 .unused,
152223 .unused,
152224 .unused,
152225 .unused,
152226 .unused,
152227 .unused,
152228 .unused,
152229 .unused,
152230 .unused,
152231 },
152232 .dst_temps = .{ .{ .ref = .src0 }, .unused },
152233 .each = .{ .once = &.{
152234 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
152235 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
152236 .{ ._, ._sd, .min, .dst0x, .tmp0x, ._, ._ },
152237 } },
152238 }, .{
152239 .required_features = .{ .avx, null, null, null },
152240 .dst_constraints = .{ .{ .float = .qword }, .any },
152241 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
152242 .patterns = &.{
152243 .{ .src = .{ .to_sse, .none, .none } },
152244 },
152245 .extra_temps = .{
152246 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152247 .unused,
152248 .unused,
152249 .unused,
152250 .unused,
152251 .unused,
152252 .unused,
152253 .unused,
152254 .unused,
152255 .unused,
152256 .unused,
152257 },
152258 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152259 .each = .{ .once = &.{
152260 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
152261 .{ ._, .v_sd, .min, .tmp0x, .src0x, .tmp0x, ._ },
152262 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
152263 .{ ._, .v_sd, .min, .dst0x, .tmp0x, .dst0x, ._ },
152264 } },
152265 }, .{
152266 .required_features = .{ .avx, null, null, null },
152267 .dst_constraints = .{ .{ .float = .qword }, .any },
152268 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
152269 .patterns = &.{
152270 .{ .src = .{ .to_sse, .none, .none } },
152271 },
152272 .extra_temps = .{
152273 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152274 .unused,
152275 .unused,
152276 .unused,
152277 .unused,
152278 .unused,
152279 .unused,
152280 .unused,
152281 .unused,
152282 .unused,
152283 .unused,
152284 },
152285 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152286 .each = .{ .once = &.{
152287 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
152288 .{ ._, .v_pd, .min, .dst0x, .src0x, .tmp0x, ._ },
152289 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
152290 .{ ._, .v_sd, .min, .dst0x, .dst0x, .tmp0x, ._ },
152291 } },
152292 }, .{
152293 .required_features = .{ .avx512f, null, null, null },
152294 .dst_constraints = .{ .{ .float = .qword }, .any },
152295 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
152296 .patterns = &.{
152297 .{ .src = .{ .to_mem, .none, .none } },
152298 },
152299 .extra_temps = .{
152300 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
152301 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
152302 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
152303 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
152304 .unused,
152305 .unused,
152306 .unused,
152307 .unused,
152308 .unused,
152309 .unused,
152310 .unused,
152311 },
152312 .dst_temps = .{ .{ .rc = .sse }, .unused },
152313 .each = .{ .once = &.{
152314 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152315 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
152316 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
152317 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152318 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
152319 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
152320 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
152321 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
152322 .{ ._, .v_pd, .min, .dst0y, .dst0y, .tmp3y, ._ },
152323 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
152324 .{ ._, .v_pd, .min, .dst0x, .dst0x, .tmp3x, ._ },
152325 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
152326 .{ ._, .v_sd, .min, .dst0x, .dst0x, .tmp3x, ._ },
152327 } },
152328 }, .{
152329 .required_features = .{ .avx512f, null, null, null },
152330 .dst_constraints = .{ .{ .float = .qword }, .any },
152331 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
152332 .patterns = &.{
152333 .{ .src = .{ .to_mem, .none, .none } },
152334 },
152335 .extra_temps = .{
152336 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152337 .unused,
152338 .unused,
152339 .unused,
152340 .unused,
152341 .unused,
152342 .unused,
152343 .unused,
152344 .unused,
152345 .unused,
152346 .unused,
152347 },
152348 .dst_temps = .{ .{ .rc = .sse }, .unused },
152349 .each = .{ .once = &.{
152350 .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ },
152351 .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
152352 .{ ._, .v_pd, .min, .dst0y, .dst0y, .tmp0y, ._ },
152353 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
152354 .{ ._, .v_pd, .min, .dst0x, .dst0x, .tmp0x, ._ },
152355 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
152356 .{ ._, .v_sd, .min, .dst0x, .dst0x, .tmp0x, ._ },
152357 } },
152358 }, .{
152359 .required_features = .{ .avx, null, null, null },
152360 .dst_constraints = .{ .{ .float = .qword }, .any },
152361 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
152362 .patterns = &.{
152363 .{ .src = .{ .to_mem, .none, .none } },
152364 },
152365 .extra_temps = .{
152366 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152367 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152368 .unused,
152369 .unused,
152370 .unused,
152371 .unused,
152372 .unused,
152373 .unused,
152374 .unused,
152375 .unused,
152376 .unused,
152377 },
152378 .dst_temps = .{ .{ .rc = .sse }, .unused },
152379 .clobbers = .{ .eflags = true },
152380 .each = .{ .once = &.{
152381 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
152382 .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
152383 .{ .@"0:", .v_pd, .min, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
152384 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
152385 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152386 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
152387 .{ ._, .v_pd, .min, .dst0x, .dst0x, .tmp1x, ._ },
152388 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
152389 .{ ._, .v_sd, .min, .dst0x, .dst0x, .tmp1x, ._ },
152390 } },
152391 }, .{
152392 .required_features = .{ .sse2, null, null, null },
152393 .dst_constraints = .{ .{ .float = .qword }, .any },
152394 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
152395 .patterns = &.{
152396 .{ .src = .{ .to_mem, .none, .none } },
152397 },
152398 .extra_temps = .{
152399 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152400 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152401 .unused,
152402 .unused,
152403 .unused,
152404 .unused,
152405 .unused,
152406 .unused,
152407 .unused,
152408 .unused,
152409 .unused,
152410 },
152411 .dst_temps = .{ .{ .rc = .sse }, .unused },
152412 .clobbers = .{ .eflags = true },
152413 .each = .{ .once = &.{
152414 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
152415 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
152416 .{ .@"0:", ._pd, .min, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
152417 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152418 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152419 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
152420 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
152421 .{ ._, ._sd, .min, .dst0x, .tmp1x, ._, ._ },
152422 } },
152423 }, .{
152424 .required_features = .{ .avx512f, null, null, null },
152425 .dst_constraints = .{ .{ .float = .qword }, .any },
152426 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
152427 .patterns = &.{
152428 .{ .src = .{ .to_mem, .none, .none } },
152429 },
152430 .extra_temps = .{
152431 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152432 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
152433 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
152434 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
152435 .unused,
152436 .unused,
152437 .unused,
152438 .unused,
152439 .unused,
152440 .unused,
152441 .unused,
152442 },
152443 .dst_temps = .{ .{ .rc = .sse }, .unused },
152444 .clobbers = .{ .eflags = true },
152445 .each = .{ .once = &.{
152446 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152447 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
152448 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
152449 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152450 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
152451 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
152452 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
152453 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
152454 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
152455 .{ .@"0:", .v_pd, .min, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
152456 .{ ._, .v_pd, .min, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
152457 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
152458 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152459 .{ ._, .v_pd, .min, .dst0y, .dst0y, .tmp3y, ._ },
152460 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
152461 .{ ._, .v_pd, .min, .dst0x, .dst0x, .tmp3x, ._ },
152462 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
152463 .{ ._, .v_sd, .min, .dst0x, .dst0x, .tmp3x, ._ },
152464 } },
152465 }, .{
152466 .required_features = .{ .avx, null, null, null },
152467 .dst_constraints = .{ .{ .float = .qword }, .any },
152468 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
152469 .patterns = &.{
152470 .{ .src = .{ .to_mem, .none, .none } },
152471 },
152472 .extra_temps = .{
152473 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152474 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
152475 .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
152476 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152477 .unused,
152478 .unused,
152479 .unused,
152480 .unused,
152481 .unused,
152482 .unused,
152483 .unused,
152484 },
152485 .dst_temps = .{ .{ .rc = .sse }, .unused },
152486 .clobbers = .{ .eflags = true },
152487 .each = .{ .once = &.{
152488 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152489 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
152490 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152491 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
152492 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
152493 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
152494 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
152495 .{ ._, .v_pd, .min, .dst0x, .dst0x, .tmp3x, ._ },
152496 .{ .@"0:", .v_pd, .min, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
152497 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152498 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152499 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
152500 .{ ._, .v_sd, .min, .dst0x, .dst0x, .tmp3x, ._ },
152501 } },
152502 }, .{
152503 .required_features = .{ .sse2, null, null, null },
152504 .dst_constraints = .{ .{ .float = .qword }, .any },
152505 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
152506 .patterns = &.{
152507 .{ .src = .{ .to_mem, .none, .none } },
152508 },
152509 .extra_temps = .{
152510 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152511 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
152512 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = inf } } },
152513 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
152514 .unused,
152515 .unused,
152516 .unused,
152517 .unused,
152518 .unused,
152519 .unused,
152520 .unused,
152521 },
152522 .dst_temps = .{ .{ .rc = .sse }, .unused },
152523 .clobbers = .{ .eflags = true },
152524 .each = .{ .once = &.{
152525 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152526 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
152527 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152528 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
152529 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
152530 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
152531 .{ .@"0:", ._pd, .min, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
152532 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152533 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152534 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
152535 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
152536 .{ ._, ._sd, .min, .dst0x, .tmp3x, ._, ._ },
152537 } },
152538 }, .{
152539 .required_features = .{ .x87, .cmov, null, null },
152540 .dst_constraints = .{ .{ .float = .qword }, .any },
152541 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
152542 .patterns = &.{
152543 .{ .src = .{ .to_mem, .none, .none } },
152544 },
152545 .extra_temps = .{
152546 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152547 .{ .type = .f64, .kind = .{ .reg = .st7 } },
152548 .{ .type = .f64, .kind = .{ .reg = .st6 } },
152549 .unused,
152550 .unused,
152551 .unused,
152552 .unused,
152553 .unused,
152554 .unused,
152555 .unused,
152556 .unused,
152557 },
152558 .dst_temps = .{ .mem, .unused },
152559 .clobbers = .{ .eflags = true },
152560 .each = .{ .once = &.{
152561 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
152562 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
152563 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
152564 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
152565 .{ ._, .f_nb, .cmov, .tmp2t, .tmp1t, ._, ._ },
152566 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
152567 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
152568 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152569 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
152570 } },
152571 }, .{
152572 .required_features = .{ .sahf, .x87, null, null },
152573 .dst_constraints = .{ .{ .float = .qword }, .any },
152574 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
152575 .patterns = &.{
152576 .{ .src = .{ .to_mem, .none, .none } },
152577 },
152578 .extra_temps = .{
152579 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152580 .{ .type = .f64, .kind = .{ .reg = .st7 } },
152581 .{ .type = .f64, .kind = .{ .reg = .st6 } },
152582 .{ .type = .u16, .kind = .{ .reg = .ax } },
152583 .unused,
152584 .unused,
152585 .unused,
152586 .unused,
152587 .unused,
152588 .unused,
152589 .unused,
152590 },
152591 .dst_temps = .{ .mem, .unused },
152592 .clobbers = .{ .eflags = true },
152593 .each = .{ .once = &.{
152594 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
152595 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
152596 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
152597 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
152598 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
152599 .{ ._, ._, .sahf, ._, ._, ._, ._ },
152600 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
152601 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
152602 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
152603 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
152604 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152605 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
152606 } },
152607 }, .{
152608 .required_features = .{ .x87, null, null, null },
152609 .dst_constraints = .{ .{ .float = .qword }, .any },
152610 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
152611 .patterns = &.{
152612 .{ .src = .{ .to_mem, .none, .none } },
152613 },
152614 .extra_temps = .{
152615 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152616 .{ .type = .f64, .kind = .{ .reg = .st7 } },
152617 .{ .type = .f64, .kind = .{ .reg = .st6 } },
152618 .{ .type = .u16, .kind = .{ .reg = .ax } },
152619 .unused,
152620 .unused,
152621 .unused,
152622 .unused,
152623 .unused,
152624 .unused,
152625 .unused,
152626 },
152627 .dst_temps = .{ .mem, .unused },
152628 .clobbers = .{ .eflags = true },
152629 .each = .{ .once = &.{
152630 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
152631 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
152632 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
152633 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
152634 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
152635 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
152636 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
152637 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
152638 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
152639 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
152640 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152641 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
152642 } },
152643 }, .{
152644 .required_features = .{ .x87, .cmov, null, null },
152645 .dst_constraints = .{ .{ .float = .tbyte }, .any },
152646 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
152647 .patterns = &.{
152648 .{ .src = .{ .to_mem, .none, .none } },
152649 },
152650 .extra_temps = .{
152651 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152652 .{ .type = .f80, .kind = .{ .reg = .st7 } },
152653 .{ .type = .f80, .kind = .{ .reg = .st6 } },
152654 .unused,
152655 .unused,
152656 .unused,
152657 .unused,
152658 .unused,
152659 .unused,
152660 .unused,
152661 .unused,
152662 },
152663 .dst_temps = .{ .{ .rc = .x87 }, .unused },
152664 .clobbers = .{ .eflags = true },
152665 .each = .{ .once = &.{
152666 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
152667 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
152668 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
152669 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
152670 .{ ._, .f_nb, .cmov, .tmp2t, .tmp1t, ._, ._ },
152671 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
152672 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152673 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152674 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
152675 } },
152676 }, .{
152677 .required_features = .{ .sahf, .x87, null, null },
152678 .dst_constraints = .{ .{ .float = .tbyte }, .any },
152679 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
152680 .patterns = &.{
152681 .{ .src = .{ .to_mem, .none, .none } },
152682 },
152683 .extra_temps = .{
152684 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152685 .{ .type = .f80, .kind = .{ .reg = .st7 } },
152686 .{ .type = .f80, .kind = .{ .reg = .st6 } },
152687 .{ .type = .u16, .kind = .{ .reg = .ax } },
152688 .unused,
152689 .unused,
152690 .unused,
152691 .unused,
152692 .unused,
152693 .unused,
152694 .unused,
152695 },
152696 .dst_temps = .{ .{ .rc = .x87 }, .unused },
152697 .clobbers = .{ .eflags = true },
152698 .each = .{ .once = &.{
152699 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
152700 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
152701 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
152702 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
152703 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
152704 .{ ._, ._, .sahf, ._, ._, ._, ._ },
152705 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
152706 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
152707 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
152708 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152709 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152710 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
152711 } },
152712 }, .{
152713 .required_features = .{ .x87, null, null, null },
152714 .dst_constraints = .{ .{ .float = .tbyte }, .any },
152715 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
152716 .patterns = &.{
152717 .{ .src = .{ .to_mem, .none, .none } },
152718 },
152719 .extra_temps = .{
152720 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152721 .{ .type = .f80, .kind = .{ .reg = .st7 } },
152722 .{ .type = .f80, .kind = .{ .reg = .st6 } },
152723 .{ .type = .u16, .kind = .{ .reg = .ax } },
152724 .unused,
152725 .unused,
152726 .unused,
152727 .unused,
152728 .unused,
152729 .unused,
152730 .unused,
152731 },
152732 .dst_temps = .{ .{ .rc = .x87 }, .unused },
152733 .clobbers = .{ .eflags = true },
152734 .each = .{ .once = &.{
152735 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
152736 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
152737 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
152738 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
152739 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
152740 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
152741 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
152742 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
152743 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
152744 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152745 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152746 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
152747 } },
152748 }, .{
152749 .required_features = .{ .avx, null, null, null },
152750 .dst_constraints = .{ .{ .float = .xword }, .any },
152751 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
152752 .patterns = &.{
152753 .{ .src = .{ .to_mem, .none, .none } },
152754 },
152755 .call_frame = .{ .alignment = .@"16" },
152756 .extra_temps = .{
152757 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152758 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
152759 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
152760 .unused,
152761 .unused,
152762 .unused,
152763 .unused,
152764 .unused,
152765 .unused,
152766 .unused,
152767 .unused,
152768 },
152769 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
152770 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
152771 .each = .{ .once = &.{
152772 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
152773 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
152774 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
152775 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
152776 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152777 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152778 } },
152779 }, .{
152780 .required_features = .{ .sse2, null, null, null },
152781 .dst_constraints = .{ .{ .float = .xword }, .any },
152782 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
152783 .patterns = &.{
152784 .{ .src = .{ .to_mem, .none, .none } },
152785 },
152786 .call_frame = .{ .alignment = .@"16" },
152787 .extra_temps = .{
152788 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152789 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
152790 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
152791 .unused,
152792 .unused,
152793 .unused,
152794 .unused,
152795 .unused,
152796 .unused,
152797 .unused,
152798 .unused,
152799 },
152800 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
152801 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
152802 .each = .{ .once = &.{
152803 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
152804 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
152805 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
152806 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
152807 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152808 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152809 } },
152810 }, .{
152811 .required_features = .{ .sse, null, null, null },
152812 .dst_constraints = .{ .{ .float = .xword }, .any },
152813 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
152814 .patterns = &.{
152815 .{ .src = .{ .to_mem, .none, .none } },
152816 },
152817 .call_frame = .{ .alignment = .@"16" },
152818 .extra_temps = .{
152819 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
152820 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
152821 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
152822 .unused,
152823 .unused,
152824 .unused,
152825 .unused,
152826 .unused,
152827 .unused,
152828 .unused,
152829 .unused,
152830 },
152831 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
152832 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
152833 .each = .{ .once = &.{
152834 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
152835 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
152836 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
152837 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
152838 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
152839 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
152840 } },
152841 } },
152842 .Max => comptime &.{ .{
152843 .required_features = .{ .f16c, null, null, null },
152844 .dst_constraints = .{ .{ .float = .word }, .any },
152845 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
152846 .patterns = &.{
152847 .{ .src = .{ .mem, .none, .none } },
152848 .{ .src = .{ .to_sse, .none, .none } },
152849 },
152850 .extra_temps = .{
152851 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
152852 .unused,
152853 .unused,
152854 .unused,
152855 .unused,
152856 .unused,
152857 .unused,
152858 .unused,
152859 .unused,
152860 .unused,
152861 .unused,
152862 },
152863 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152864 .each = .{ .once = &.{
152865 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
152866 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
152867 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
152868 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
152869 } },
152870 }, .{
152871 .required_features = .{ .f16c, null, null, null },
152872 .dst_constraints = .{ .{ .float = .word }, .any },
152873 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
152874 .patterns = &.{
152875 .{ .src = .{ .mem, .none, .none } },
152876 .{ .src = .{ .to_sse, .none, .none } },
152877 },
152878 .extra_temps = .{
152879 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
152880 .unused,
152881 .unused,
152882 .unused,
152883 .unused,
152884 .unused,
152885 .unused,
152886 .unused,
152887 .unused,
152888 .unused,
152889 .unused,
152890 },
152891 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152892 .each = .{ .once = &.{
152893 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
152894 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
152895 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
152896 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
152897 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
152898 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
152899 } },
152900 }, .{
152901 .required_features = .{ .f16c, null, null, null },
152902 .dst_constraints = .{ .{ .float = .word }, .any },
152903 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
152904 .patterns = &.{
152905 .{ .src = .{ .mem, .none, .none } },
152906 .{ .src = .{ .to_sse, .none, .none } },
152907 },
152908 .extra_temps = .{
152909 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
152910 .unused,
152911 .unused,
152912 .unused,
152913 .unused,
152914 .unused,
152915 .unused,
152916 .unused,
152917 .unused,
152918 .unused,
152919 .unused,
152920 },
152921 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152922 .each = .{ .once = &.{
152923 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
152924 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
152925 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
152926 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
152927 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
152928 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
152929 } },
152930 }, .{
152931 .required_features = .{ .f16c, null, null, null },
152932 .dst_constraints = .{ .{ .float = .word }, .any },
152933 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
152934 .patterns = &.{
152935 .{ .src = .{ .to_sse, .none, .none } },
152936 },
152937 .extra_temps = .{
152938 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
152939 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
152940 .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
152941 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
152942 .unused,
152943 .unused,
152944 .unused,
152945 .unused,
152946 .unused,
152947 .unused,
152948 .unused,
152949 },
152950 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152951 .each = .{ .once = &.{
152952 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
152953 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
152954 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
152955 .{ ._, .v_ps, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
152956 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
152957 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
152958 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
152959 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
152960 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
152961 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
152962 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
152963 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
152964 } },
152965 }, .{
152966 .required_features = .{ .f16c, null, null, null },
152967 .dst_constraints = .{ .{ .float = .word }, .any },
152968 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
152969 .patterns = &.{
152970 .{ .src = .{ .mem, .none, .none } },
152971 .{ .src = .{ .to_sse, .none, .none } },
152972 },
152973 .extra_temps = .{
152974 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
152975 .unused,
152976 .unused,
152977 .unused,
152978 .unused,
152979 .unused,
152980 .unused,
152981 .unused,
152982 .unused,
152983 .unused,
152984 .unused,
152985 },
152986 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
152987 .each = .{ .once = &.{
152988 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
152989 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
152990 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
152991 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
152992 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
152993 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
152994 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
152995 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
152996 } },
152997 }, .{
152998 .required_features = .{ .f16c, null, null, null },
152999 .dst_constraints = .{ .{ .float = .word }, .any },
153000 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
153001 .patterns = &.{
153002 .{ .src = .{ .to_sse, .none, .none } },
153003 },
153004 .extra_temps = .{
153005 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
153006 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153007 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153008 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153009 .unused,
153010 .unused,
153011 .unused,
153012 .unused,
153013 .unused,
153014 .unused,
153015 .unused,
153016 },
153017 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153018 .each = .{ .once = &.{
153019 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153020 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
153021 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153022 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
153023 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153024 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
153025 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
153026 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp3y, ._ },
153027 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153028 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153029 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
153030 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153031 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
153032 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
153033 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
153034 } },
153035 }, .{
153036 .required_features = .{ .f16c, null, null, null },
153037 .dst_constraints = .{ .{ .float = .word }, .any },
153038 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
153039 .patterns = &.{
153040 .{ .src = .{ .to_sse, .none, .none } },
153041 },
153042 .extra_temps = .{
153043 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153044 .unused,
153045 .unused,
153046 .unused,
153047 .unused,
153048 .unused,
153049 .unused,
153050 .unused,
153051 .unused,
153052 .unused,
153053 .unused,
153054 },
153055 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153056 .each = .{ .once = &.{
153057 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
153058 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
153059 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
153060 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp0y, ._ },
153061 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
153062 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
153063 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
153064 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
153065 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
153066 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
153067 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
153068 } },
153069 }, .{
153070 .required_features = .{ .avx512f, null, null, null },
153071 .dst_constraints = .{ .{ .float = .word }, .any },
153072 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
153073 .patterns = &.{
153074 .{ .src = .{ .to_mem, .none, .none } },
153075 },
153076 .extra_temps = .{
153077 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
153078 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153079 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153080 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153081 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153082 .unused,
153083 .unused,
153084 .unused,
153085 .unused,
153086 .unused,
153087 .unused,
153088 },
153089 .dst_temps = .{ .{ .rc = .sse }, .unused },
153090 .each = .{ .once = &.{
153091 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153092 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
153093 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
153094 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153095 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
153096 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
153097 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
153098 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
153099 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
153100 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
153101 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
153102 .{ ._, .v_ps, .max, .tmp3y, .tmp3y, .tmp4y, ._ },
153103 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
153104 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
153105 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
153106 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp4y, ._ },
153107 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp3y, ._ },
153108 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153109 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153110 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
153111 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153112 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
153113 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
153114 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
153115 } },
153116 }, .{
153117 .required_features = .{ .avx512f, null, null, null },
153118 .dst_constraints = .{ .{ .float = .word }, .any },
153119 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
153120 .patterns = &.{
153121 .{ .src = .{ .to_mem, .none, .none } },
153122 },
153123 .extra_temps = .{
153124 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153125 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153126 .unused,
153127 .unused,
153128 .unused,
153129 .unused,
153130 .unused,
153131 .unused,
153132 .unused,
153133 .unused,
153134 .unused,
153135 },
153136 .dst_temps = .{ .{ .rc = .sse }, .unused },
153137 .each = .{ .once = &.{
153138 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
153139 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
153140 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
153141 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
153142 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
153143 .{ ._, .v_ps, .max, .tmp0y, .tmp0y, .tmp1y, ._ },
153144 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
153145 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
153146 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
153147 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp1y, ._ },
153148 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp0y, ._ },
153149 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
153150 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
153151 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
153152 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
153153 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
153154 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
153155 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
153156 } },
153157 }, .{
153158 .required_features = .{ .f16c, null, null, null },
153159 .dst_constraints = .{ .{ .float = .word }, .any },
153160 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
153161 .patterns = &.{
153162 .{ .src = .{ .to_mem, .none, .none } },
153163 },
153164 .extra_temps = .{
153165 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153166 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153167 .unused,
153168 .unused,
153169 .unused,
153170 .unused,
153171 .unused,
153172 .unused,
153173 .unused,
153174 .unused,
153175 .unused,
153176 },
153177 .dst_temps = .{ .{ .rc = .sse }, .unused },
153178 .clobbers = .{ .eflags = true },
153179 .each = .{ .once = &.{
153180 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
153181 .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
153182 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
153183 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp1y, ._ },
153184 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
153185 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153186 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
153187 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp1x, ._ },
153188 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
153189 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp1x, ._ },
153190 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
153191 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp1x, ._ },
153192 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
153193 } },
153194 }, .{
153195 .required_features = .{ .avx512f, null, null, null },
153196 .dst_constraints = .{ .{ .float = .word }, .any },
153197 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
153198 .patterns = &.{
153199 .{ .src = .{ .to_mem, .none, .none } },
153200 },
153201 .extra_temps = .{
153202 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153203 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153204 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153205 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153206 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153207 .unused,
153208 .unused,
153209 .unused,
153210 .unused,
153211 .unused,
153212 .unused,
153213 },
153214 .dst_temps = .{ .{ .rc = .sse }, .unused },
153215 .clobbers = .{ .eflags = true },
153216 .each = .{ .once = &.{
153217 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153218 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
153219 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
153220 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153221 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
153222 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
153223 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
153224 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
153225 .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ },
153226 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
153227 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
153228 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
153229 .{ ._, .v_ps, .max, .tmp3y, .tmp3y, .tmp4y, ._ },
153230 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
153231 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
153232 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
153233 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp4y, ._ },
153234 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp3y, ._ },
153235 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
153236 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp3y, ._ },
153237 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
153238 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153239 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153240 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153241 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
153242 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153243 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
153244 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
153245 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
153246 } },
153247 }, .{
153248 .required_features = .{ .f16c, null, null, null },
153249 .dst_constraints = .{ .{ .float = .word }, .any },
153250 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
153251 .patterns = &.{
153252 .{ .src = .{ .to_mem, .none, .none } },
153253 },
153254 .extra_temps = .{
153255 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153256 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153257 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153258 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153259 .unused,
153260 .unused,
153261 .unused,
153262 .unused,
153263 .unused,
153264 .unused,
153265 .unused,
153266 },
153267 .dst_temps = .{ .{ .rc = .sse }, .unused },
153268 .clobbers = .{ .eflags = true },
153269 .each = .{ .once = &.{
153270 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153271 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
153272 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153273 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
153274 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
153275 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
153276 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153277 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
153278 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
153279 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp3y, ._ },
153280 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
153281 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp3y, ._ },
153282 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
153283 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153284 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153285 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153286 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
153287 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153288 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
153289 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
153290 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
153291 } },
153292 }, .{
153293 .required_features = .{ .avx, null, null, null },
153294 .dst_constraints = .{ .{ .float = .word }, .any },
153295 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
153296 .patterns = &.{
153297 .{ .src = .{ .to_mem, .none, .none } },
153298 },
153299 .call_frame = .{ .alignment = .@"16" },
153300 .extra_temps = .{
153301 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153302 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
153303 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
153304 .unused,
153305 .unused,
153306 .unused,
153307 .unused,
153308 .unused,
153309 .unused,
153310 .unused,
153311 .unused,
153312 },
153313 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
153314 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
153315 .each = .{ .once = &.{
153316 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
153317 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
153318 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) },
153319 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
153320 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
153321 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
153322 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
153323 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153324 } },
153325 }, .{
153326 .required_features = .{ .sse2, null, null, null },
153327 .dst_constraints = .{ .{ .float = .word }, .any },
153328 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
153329 .patterns = &.{
153330 .{ .src = .{ .to_mem, .none, .none } },
153331 },
153332 .call_frame = .{ .alignment = .@"16" },
153333 .extra_temps = .{
153334 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153335 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
153336 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
153337 .unused,
153338 .unused,
153339 .unused,
153340 .unused,
153341 .unused,
153342 .unused,
153343 .unused,
153344 .unused,
153345 },
153346 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
153347 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
153348 .each = .{ .once = &.{
153349 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
153350 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
153351 .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ },
153352 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
153353 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
153354 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
153355 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
153356 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153357 } },
153358 }, .{
153359 .required_features = .{ .sse, null, null, null },
153360 .dst_constraints = .{ .{ .float = .word }, .any },
153361 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
153362 .patterns = &.{
153363 .{ .src = .{ .to_mem, .none, .none } },
153364 },
153365 .call_frame = .{ .alignment = .@"16" },
153366 .extra_temps = .{
153367 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153368 .{ .type = .f16, .kind = .{ .reg = .ax } },
153369 .{ .type = .f32, .kind = .mem },
153370 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
153371 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
153372 .unused,
153373 .unused,
153374 .unused,
153375 .unused,
153376 .unused,
153377 .unused,
153378 },
153379 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
153380 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
153381 .each = .{ .once = &.{
153382 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
153383 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
153384 .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
153385 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
153386 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
153387 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
153388 .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ },
153389 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
153390 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
153391 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153392 } },
153393 }, .{
153394 .required_features = .{ .avx, null, null, null },
153395 .dst_constraints = .{ .{ .float = .dword }, .any },
153396 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
153397 .patterns = &.{
153398 .{ .src = .{ .to_sse, .none, .none } },
153399 },
153400 .extra_temps = .{
153401 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153402 .unused,
153403 .unused,
153404 .unused,
153405 .unused,
153406 .unused,
153407 .unused,
153408 .unused,
153409 .unused,
153410 .unused,
153411 .unused,
153412 },
153413 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153414 .each = .{ .once = &.{
153415 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
153416 .{ ._, .v_ss, .max, .dst0x, .src0x, .tmp0x, ._ },
153417 } },
153418 }, .{
153419 .required_features = .{ .sse, null, null, null },
153420 .dst_constraints = .{ .{ .float = .dword }, .any },
153421 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
153422 .patterns = &.{
153423 .{ .src = .{ .to_mut_sse, .none, .none } },
153424 },
153425 .extra_temps = .{
153426 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153427 .unused,
153428 .unused,
153429 .unused,
153430 .unused,
153431 .unused,
153432 .unused,
153433 .unused,
153434 .unused,
153435 .unused,
153436 .unused,
153437 },
153438 .dst_temps = .{ .{ .ref = .src0 }, .unused },
153439 .each = .{ .once = &.{
153440 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
153441 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
153442 .{ ._, ._ss, .max, .dst0x, .tmp0x, ._, ._ },
153443 } },
153444 }, .{
153445 .required_features = .{ .avx, null, null, null },
153446 .dst_constraints = .{ .{ .float = .dword }, .any },
153447 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
153448 .patterns = &.{
153449 .{ .src = .{ .to_sse, .none, .none } },
153450 },
153451 .extra_temps = .{
153452 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153453 .unused,
153454 .unused,
153455 .unused,
153456 .unused,
153457 .unused,
153458 .unused,
153459 .unused,
153460 .unused,
153461 .unused,
153462 .unused,
153463 },
153464 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153465 .each = .{ .once = &.{
153466 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
153467 .{ ._, .v_ss, .max, .tmp0x, .src0x, .tmp0x, ._ },
153468 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
153469 .{ ._, .v_ss, .max, .dst0x, .tmp0x, .dst0x, ._ },
153470 } },
153471 }, .{
153472 .required_features = .{ .sse, null, null, null },
153473 .dst_constraints = .{ .{ .float = .dword }, .any },
153474 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
153475 .patterns = &.{
153476 .{ .src = .{ .to_mut_sse, .none, .none } },
153477 },
153478 .extra_temps = .{
153479 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153480 .unused,
153481 .unused,
153482 .unused,
153483 .unused,
153484 .unused,
153485 .unused,
153486 .unused,
153487 .unused,
153488 .unused,
153489 .unused,
153490 },
153491 .dst_temps = .{ .{ .ref = .src0 }, .unused },
153492 .each = .{ .once = &.{
153493 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
153494 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
153495 .{ ._, ._ss, .max, .tmp0x, .src0x, ._, ._ },
153496 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
153497 .{ ._, ._ss, .max, .dst0x, .tmp0x, ._, ._ },
153498 } },
153499 }, .{
153500 .required_features = .{ .avx, null, null, null },
153501 .dst_constraints = .{ .{ .float = .dword }, .any },
153502 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
153503 .patterns = &.{
153504 .{ .src = .{ .to_sse, .none, .none } },
153505 },
153506 .extra_temps = .{
153507 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153508 .unused,
153509 .unused,
153510 .unused,
153511 .unused,
153512 .unused,
153513 .unused,
153514 .unused,
153515 .unused,
153516 .unused,
153517 .unused,
153518 },
153519 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153520 .each = .{ .once = &.{
153521 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
153522 .{ ._, .v_ps, .max, .dst0x, .src0x, .tmp0x, ._ },
153523 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
153524 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
153525 } },
153526 }, .{
153527 .required_features = .{ .sse, null, null, null },
153528 .dst_constraints = .{ .{ .float = .dword }, .any },
153529 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
153530 .patterns = &.{
153531 .{ .src = .{ .to_mut_sse, .none, .none } },
153532 },
153533 .extra_temps = .{
153534 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153535 .unused,
153536 .unused,
153537 .unused,
153538 .unused,
153539 .unused,
153540 .unused,
153541 .unused,
153542 .unused,
153543 .unused,
153544 .unused,
153545 },
153546 .dst_temps = .{ .{ .ref = .src0 }, .unused },
153547 .each = .{ .once = &.{
153548 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
153549 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
153550 .{ ._, ._ps, .max, .dst0x, .tmp0x, ._, ._ },
153551 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
153552 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
153553 .{ ._, ._ss, .max, .dst0x, .tmp0x, ._, ._ },
153554 } },
153555 }, .{
153556 .required_features = .{ .avx, null, null, null },
153557 .dst_constraints = .{ .{ .float = .dword }, .any },
153558 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
153559 .patterns = &.{
153560 .{ .src = .{ .to_sse, .none, .none } },
153561 },
153562 .extra_temps = .{
153563 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
153564 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153565 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153566 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153567 .unused,
153568 .unused,
153569 .unused,
153570 .unused,
153571 .unused,
153572 .unused,
153573 .unused,
153574 },
153575 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153576 .each = .{ .once = &.{
153577 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153578 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
153579 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153580 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
153581 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153582 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153583 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
153584 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153585 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
153586 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
153587 } },
153588 }, .{
153589 .required_features = .{ .avx, null, null, null },
153590 .dst_constraints = .{ .{ .float = .dword }, .any },
153591 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
153592 .patterns = &.{
153593 .{ .src = .{ .to_sse, .none, .none } },
153594 },
153595 .extra_temps = .{
153596 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153597 .unused,
153598 .unused,
153599 .unused,
153600 .unused,
153601 .unused,
153602 .unused,
153603 .unused,
153604 .unused,
153605 .unused,
153606 .unused,
153607 },
153608 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153609 .each = .{ .once = &.{
153610 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
153611 .{ ._, .v_ps, .max, .dst0x, .src0x, .tmp0x, ._ },
153612 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
153613 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
153614 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
153615 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
153616 } },
153617 }, .{
153618 .required_features = .{ .avx512f, null, null, null },
153619 .dst_constraints = .{ .{ .float = .dword }, .any },
153620 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
153621 .patterns = &.{
153622 .{ .src = .{ .to_mem, .none, .none } },
153623 },
153624 .extra_temps = .{
153625 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
153626 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153627 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153628 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153629 .unused,
153630 .unused,
153631 .unused,
153632 .unused,
153633 .unused,
153634 .unused,
153635 .unused,
153636 },
153637 .dst_temps = .{ .{ .rc = .sse }, .unused },
153638 .each = .{ .once = &.{
153639 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153640 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
153641 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
153642 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153643 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
153644 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
153645 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
153646 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
153647 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp3y, ._ },
153648 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153649 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153650 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
153651 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153652 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
153653 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
153654 } },
153655 }, .{
153656 .required_features = .{ .avx512f, null, null, null },
153657 .dst_constraints = .{ .{ .float = .dword }, .any },
153658 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
153659 .patterns = &.{
153660 .{ .src = .{ .to_mem, .none, .none } },
153661 },
153662 .extra_temps = .{
153663 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153664 .unused,
153665 .unused,
153666 .unused,
153667 .unused,
153668 .unused,
153669 .unused,
153670 .unused,
153671 .unused,
153672 .unused,
153673 .unused,
153674 },
153675 .dst_temps = .{ .{ .rc = .sse }, .unused },
153676 .each = .{ .once = &.{
153677 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
153678 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
153679 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp0y, ._ },
153680 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
153681 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
153682 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
153683 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp0x, ._ },
153684 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
153685 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp0x, ._ },
153686 } },
153687 }, .{
153688 .required_features = .{ .avx, null, null, null },
153689 .dst_constraints = .{ .{ .float = .dword }, .any },
153690 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
153691 .patterns = &.{
153692 .{ .src = .{ .to_mem, .none, .none } },
153693 },
153694 .extra_temps = .{
153695 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153696 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153697 .unused,
153698 .unused,
153699 .unused,
153700 .unused,
153701 .unused,
153702 .unused,
153703 .unused,
153704 .unused,
153705 .unused,
153706 },
153707 .dst_temps = .{ .{ .rc = .sse }, .unused },
153708 .clobbers = .{ .eflags = true },
153709 .each = .{ .once = &.{
153710 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
153711 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
153712 .{ .@"0:", .v_ps, .max, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
153713 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
153714 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153715 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
153716 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp1x, ._ },
153717 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
153718 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp1x, ._ },
153719 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
153720 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp1x, ._ },
153721 } },
153722 }, .{
153723 .required_features = .{ .sse, null, null, null },
153724 .dst_constraints = .{ .{ .float = .dword }, .any },
153725 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
153726 .patterns = &.{
153727 .{ .src = .{ .to_mem, .none, .none } },
153728 },
153729 .extra_temps = .{
153730 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153731 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153732 .unused,
153733 .unused,
153734 .unused,
153735 .unused,
153736 .unused,
153737 .unused,
153738 .unused,
153739 .unused,
153740 .unused,
153741 },
153742 .dst_temps = .{ .{ .rc = .sse }, .unused },
153743 .clobbers = .{ .eflags = true },
153744 .each = .{ .once = &.{
153745 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
153746 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
153747 .{ .@"0:", ._ps, .max, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
153748 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
153749 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153750 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
153751 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
153752 .{ ._, ._ps, .max, .dst0x, .tmp1x, ._, ._ },
153753 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
153754 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
153755 .{ ._, ._ss, .max, .dst0x, .tmp1x, ._, ._ },
153756 } },
153757 }, .{
153758 .required_features = .{ .avx512f, null, null, null },
153759 .dst_constraints = .{ .{ .float = .dword }, .any },
153760 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
153761 .patterns = &.{
153762 .{ .src = .{ .to_mem, .none, .none } },
153763 },
153764 .extra_temps = .{
153765 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153766 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153767 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153768 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
153769 .unused,
153770 .unused,
153771 .unused,
153772 .unused,
153773 .unused,
153774 .unused,
153775 .unused,
153776 },
153777 .dst_temps = .{ .{ .rc = .sse }, .unused },
153778 .clobbers = .{ .eflags = true },
153779 .each = .{ .once = &.{
153780 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153781 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
153782 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
153783 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153784 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
153785 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
153786 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
153787 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
153788 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
153789 .{ .@"0:", .v_ps, .max, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
153790 .{ ._, .v_ps, .max, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
153791 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
153792 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153793 .{ ._, .v_ps, .max, .dst0y, .dst0y, .tmp3y, ._ },
153794 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153795 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153796 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
153797 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153798 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
153799 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
153800 } },
153801 }, .{
153802 .required_features = .{ .avx, null, null, null },
153803 .dst_constraints = .{ .{ .float = .dword }, .any },
153804 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
153805 .patterns = &.{
153806 .{ .src = .{ .to_mem, .none, .none } },
153807 },
153808 .extra_temps = .{
153809 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153810 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153811 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153812 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153813 .unused,
153814 .unused,
153815 .unused,
153816 .unused,
153817 .unused,
153818 .unused,
153819 .unused,
153820 },
153821 .dst_temps = .{ .{ .rc = .sse }, .unused },
153822 .clobbers = .{ .eflags = true },
153823 .each = .{ .once = &.{
153824 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153825 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
153826 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153827 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
153828 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
153829 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
153830 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
153831 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153832 .{ .@"0:", .v_ps, .max, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
153833 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
153834 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153835 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
153836 .{ ._, .v_ps, .max, .dst0x, .dst0x, .tmp3x, ._ },
153837 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
153838 .{ ._, .v_ss, .max, .dst0x, .dst0x, .tmp3x, ._ },
153839 } },
153840 }, .{
153841 .required_features = .{ .sse, null, null, null },
153842 .dst_constraints = .{ .{ .float = .dword }, .any },
153843 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
153844 .patterns = &.{
153845 .{ .src = .{ .to_mem, .none, .none } },
153846 },
153847 .extra_temps = .{
153848 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
153849 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153850 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153851 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
153852 .unused,
153853 .unused,
153854 .unused,
153855 .unused,
153856 .unused,
153857 .unused,
153858 .unused,
153859 },
153860 .dst_temps = .{ .{ .rc = .sse }, .unused },
153861 .clobbers = .{ .eflags = true },
153862 .each = .{ .once = &.{
153863 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
153864 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
153865 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
153866 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
153867 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
153868 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
153869 .{ .@"0:", ._ps, .max, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
153870 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
153871 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
153872 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
153873 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
153874 .{ ._, ._ps, .max, .dst0x, .tmp3x, ._, ._ },
153875 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
153876 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
153877 .{ ._, ._ss, .max, .dst0x, .tmp3x, ._, ._ },
153878 } },
153879 }, .{
153880 .required_features = .{ .avx, null, null, null },
153881 .dst_constraints = .{ .{ .float = .qword }, .any },
153882 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
153883 .patterns = &.{
153884 .{ .src = .{ .to_sse, .none, .none } },
153885 },
153886 .extra_temps = .{
153887 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
153888 .unused,
153889 .unused,
153890 .unused,
153891 .unused,
153892 .unused,
153893 .unused,
153894 .unused,
153895 .unused,
153896 .unused,
153897 .unused,
153898 },
153899 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153900 .each = .{ .once = &.{
153901 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
153902 .{ ._, .v_sd, .max, .dst0x, .src0x, .tmp0x, ._ },
153903 } },
153904 }, .{
153905 .required_features = .{ .sse2, null, null, null },
153906 .dst_constraints = .{ .{ .float = .qword }, .any },
153907 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
153908 .patterns = &.{
153909 .{ .src = .{ .to_mut_sse, .none, .none } },
153910 },
153911 .extra_temps = .{
153912 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
153913 .unused,
153914 .unused,
153915 .unused,
153916 .unused,
153917 .unused,
153918 .unused,
153919 .unused,
153920 .unused,
153921 .unused,
153922 .unused,
153923 },
153924 .dst_temps = .{ .{ .ref = .src0 }, .unused },
153925 .each = .{ .once = &.{
153926 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
153927 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
153928 .{ ._, ._sd, .max, .dst0x, .tmp0x, ._, ._ },
153929 } },
153930 }, .{
153931 .required_features = .{ .avx, null, null, null },
153932 .dst_constraints = .{ .{ .float = .qword }, .any },
153933 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
153934 .patterns = &.{
153935 .{ .src = .{ .to_sse, .none, .none } },
153936 },
153937 .extra_temps = .{
153938 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
153939 .unused,
153940 .unused,
153941 .unused,
153942 .unused,
153943 .unused,
153944 .unused,
153945 .unused,
153946 .unused,
153947 .unused,
153948 .unused,
153949 },
153950 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153951 .each = .{ .once = &.{
153952 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
153953 .{ ._, .v_sd, .max, .tmp0x, .src0x, .tmp0x, ._ },
153954 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
153955 .{ ._, .v_sd, .max, .dst0x, .tmp0x, .dst0x, ._ },
153956 } },
153957 }, .{
153958 .required_features = .{ .avx, null, null, null },
153959 .dst_constraints = .{ .{ .float = .qword }, .any },
153960 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
153961 .patterns = &.{
153962 .{ .src = .{ .to_sse, .none, .none } },
153963 },
153964 .extra_temps = .{
153965 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
153966 .unused,
153967 .unused,
153968 .unused,
153969 .unused,
153970 .unused,
153971 .unused,
153972 .unused,
153973 .unused,
153974 .unused,
153975 .unused,
153976 },
153977 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
153978 .each = .{ .once = &.{
153979 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
153980 .{ ._, .v_pd, .max, .dst0x, .src0x, .tmp0x, ._ },
153981 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
153982 .{ ._, .v_sd, .max, .dst0x, .dst0x, .tmp0x, ._ },
153983 } },
153984 }, .{
153985 .required_features = .{ .avx512f, null, null, null },
153986 .dst_constraints = .{ .{ .float = .qword }, .any },
153987 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
153988 .patterns = &.{
153989 .{ .src = .{ .to_mem, .none, .none } },
153990 },
153991 .extra_temps = .{
153992 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
153993 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
153994 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
153995 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
153996 .unused,
153997 .unused,
153998 .unused,
153999 .unused,
154000 .unused,
154001 .unused,
154002 .unused,
154003 },
154004 .dst_temps = .{ .{ .rc = .sse }, .unused },
154005 .each = .{ .once = &.{
154006 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154007 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
154008 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
154009 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
154010 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
154011 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
154012 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
154013 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
154014 .{ ._, .v_pd, .max, .dst0y, .dst0y, .tmp3y, ._ },
154015 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
154016 .{ ._, .v_pd, .max, .dst0x, .dst0x, .tmp3x, ._ },
154017 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
154018 .{ ._, .v_sd, .max, .dst0x, .dst0x, .tmp3x, ._ },
154019 } },
154020 }, .{
154021 .required_features = .{ .avx512f, null, null, null },
154022 .dst_constraints = .{ .{ .float = .qword }, .any },
154023 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
154024 .patterns = &.{
154025 .{ .src = .{ .to_mem, .none, .none } },
154026 },
154027 .extra_temps = .{
154028 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
154029 .unused,
154030 .unused,
154031 .unused,
154032 .unused,
154033 .unused,
154034 .unused,
154035 .unused,
154036 .unused,
154037 .unused,
154038 .unused,
154039 },
154040 .dst_temps = .{ .{ .rc = .sse }, .unused },
154041 .each = .{ .once = &.{
154042 .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ },
154043 .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
154044 .{ ._, .v_pd, .max, .dst0y, .dst0y, .tmp0y, ._ },
154045 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
154046 .{ ._, .v_pd, .max, .dst0x, .dst0x, .tmp0x, ._ },
154047 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
154048 .{ ._, .v_sd, .max, .dst0x, .dst0x, .tmp0x, ._ },
154049 } },
154050 }, .{
154051 .required_features = .{ .avx, null, null, null },
154052 .dst_constraints = .{ .{ .float = .qword }, .any },
154053 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
154054 .patterns = &.{
154055 .{ .src = .{ .to_mem, .none, .none } },
154056 },
154057 .extra_temps = .{
154058 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154059 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
154060 .unused,
154061 .unused,
154062 .unused,
154063 .unused,
154064 .unused,
154065 .unused,
154066 .unused,
154067 .unused,
154068 .unused,
154069 },
154070 .dst_temps = .{ .{ .rc = .sse }, .unused },
154071 .clobbers = .{ .eflags = true },
154072 .each = .{ .once = &.{
154073 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
154074 .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
154075 .{ .@"0:", .v_pd, .max, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
154076 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
154077 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154078 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
154079 .{ ._, .v_pd, .max, .dst0x, .dst0x, .tmp1x, ._ },
154080 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
154081 .{ ._, .v_sd, .max, .dst0x, .dst0x, .tmp1x, ._ },
154082 } },
154083 }, .{
154084 .required_features = .{ .sse2, null, null, null },
154085 .dst_constraints = .{ .{ .float = .qword }, .any },
154086 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
154087 .patterns = &.{
154088 .{ .src = .{ .to_mem, .none, .none } },
154089 },
154090 .extra_temps = .{
154091 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154092 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
154093 .unused,
154094 .unused,
154095 .unused,
154096 .unused,
154097 .unused,
154098 .unused,
154099 .unused,
154100 .unused,
154101 .unused,
154102 },
154103 .dst_temps = .{ .{ .rc = .sse }, .unused },
154104 .clobbers = .{ .eflags = true },
154105 .each = .{ .once = &.{
154106 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
154107 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
154108 .{ .@"0:", ._pd, .max, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
154109 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154110 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154111 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
154112 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
154113 .{ ._, ._sd, .max, .dst0x, .tmp1x, ._, ._ },
154114 } },
154115 }, .{
154116 .required_features = .{ .avx512f, null, null, null },
154117 .dst_constraints = .{ .{ .float = .qword }, .any },
154118 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
154119 .patterns = &.{
154120 .{ .src = .{ .to_mem, .none, .none } },
154121 },
154122 .extra_temps = .{
154123 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154124 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
154125 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
154126 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
154127 .unused,
154128 .unused,
154129 .unused,
154130 .unused,
154131 .unused,
154132 .unused,
154133 .unused,
154134 },
154135 .dst_temps = .{ .{ .rc = .sse }, .unused },
154136 .clobbers = .{ .eflags = true },
154137 .each = .{ .once = &.{
154138 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154139 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
154140 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
154141 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
154142 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
154143 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
154144 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
154145 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
154146 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
154147 .{ .@"0:", .v_pd, .max, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
154148 .{ ._, .v_pd, .max, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
154149 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
154150 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154151 .{ ._, .v_pd, .max, .dst0y, .dst0y, .tmp3y, ._ },
154152 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
154153 .{ ._, .v_pd, .max, .dst0x, .dst0x, .tmp3x, ._ },
154154 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
154155 .{ ._, .v_sd, .max, .dst0x, .dst0x, .tmp3x, ._ },
154156 } },
154157 }, .{
154158 .required_features = .{ .avx, null, null, null },
154159 .dst_constraints = .{ .{ .float = .qword }, .any },
154160 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
154161 .patterns = &.{
154162 .{ .src = .{ .to_mem, .none, .none } },
154163 },
154164 .extra_temps = .{
154165 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154166 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
154167 .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
154168 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
154169 .unused,
154170 .unused,
154171 .unused,
154172 .unused,
154173 .unused,
154174 .unused,
154175 .unused,
154176 },
154177 .dst_temps = .{ .{ .rc = .sse }, .unused },
154178 .clobbers = .{ .eflags = true },
154179 .each = .{ .once = &.{
154180 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154181 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
154182 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
154183 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
154184 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
154185 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
154186 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
154187 .{ ._, .v_pd, .max, .dst0x, .dst0x, .tmp3x, ._ },
154188 .{ .@"0:", .v_pd, .max, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
154189 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154190 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154191 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
154192 .{ ._, .v_sd, .max, .dst0x, .dst0x, .tmp3x, ._ },
154193 } },
154194 }, .{
154195 .required_features = .{ .sse2, null, null, null },
154196 .dst_constraints = .{ .{ .float = .qword }, .any },
154197 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
154198 .patterns = &.{
154199 .{ .src = .{ .to_mem, .none, .none } },
154200 },
154201 .extra_temps = .{
154202 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154203 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
154204 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = -inf } } },
154205 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
154206 .unused,
154207 .unused,
154208 .unused,
154209 .unused,
154210 .unused,
154211 .unused,
154212 .unused,
154213 },
154214 .dst_temps = .{ .{ .rc = .sse }, .unused },
154215 .clobbers = .{ .eflags = true },
154216 .each = .{ .once = &.{
154217 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154218 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
154219 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
154220 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
154221 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
154222 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
154223 .{ .@"0:", ._pd, .max, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
154224 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154225 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154226 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
154227 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
154228 .{ ._, ._sd, .max, .dst0x, .tmp3x, ._, ._ },
154229 } },
154230 }, .{
154231 .required_features = .{ .x87, .cmov, null, null },
154232 .dst_constraints = .{ .{ .float = .qword }, .any },
154233 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
154234 .patterns = &.{
154235 .{ .src = .{ .to_mem, .none, .none } },
154236 },
154237 .extra_temps = .{
154238 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154239 .{ .type = .f64, .kind = .{ .reg = .st7 } },
154240 .{ .type = .f64, .kind = .{ .reg = .st6 } },
154241 .unused,
154242 .unused,
154243 .unused,
154244 .unused,
154245 .unused,
154246 .unused,
154247 .unused,
154248 .unused,
154249 },
154250 .dst_temps = .{ .mem, .unused },
154251 .clobbers = .{ .eflags = true },
154252 .each = .{ .once = &.{
154253 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
154254 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
154255 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
154256 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
154257 .{ ._, .f_b, .cmov, .tmp2t, .tmp1t, ._, ._ },
154258 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
154259 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
154260 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154261 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
154262 } },
154263 }, .{
154264 .required_features = .{ .sahf, .x87, null, null },
154265 .dst_constraints = .{ .{ .float = .qword }, .any },
154266 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
154267 .patterns = &.{
154268 .{ .src = .{ .to_mem, .none, .none } },
154269 },
154270 .extra_temps = .{
154271 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154272 .{ .type = .f64, .kind = .{ .reg = .st7 } },
154273 .{ .type = .f64, .kind = .{ .reg = .st6 } },
154274 .{ .type = .u16, .kind = .{ .reg = .ax } },
154275 .unused,
154276 .unused,
154277 .unused,
154278 .unused,
154279 .unused,
154280 .unused,
154281 .unused,
154282 },
154283 .dst_temps = .{ .mem, .unused },
154284 .clobbers = .{ .eflags = true },
154285 .each = .{ .once = &.{
154286 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
154287 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
154288 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
154289 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
154290 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
154291 .{ ._, ._, .sahf, ._, ._, ._, ._ },
154292 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
154293 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
154294 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
154295 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
154296 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154297 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
154298 } },
154299 }, .{
154300 .required_features = .{ .x87, null, null, null },
154301 .dst_constraints = .{ .{ .float = .qword }, .any },
154302 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
154303 .patterns = &.{
154304 .{ .src = .{ .to_mem, .none, .none } },
154305 },
154306 .extra_temps = .{
154307 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154308 .{ .type = .f64, .kind = .{ .reg = .st7 } },
154309 .{ .type = .f64, .kind = .{ .reg = .st6 } },
154310 .{ .type = .u16, .kind = .{ .reg = .ax } },
154311 .unused,
154312 .unused,
154313 .unused,
154314 .unused,
154315 .unused,
154316 .unused,
154317 .unused,
154318 },
154319 .dst_temps = .{ .mem, .unused },
154320 .clobbers = .{ .eflags = true },
154321 .each = .{ .once = &.{
154322 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
154323 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
154324 .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ },
154325 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
154326 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
154327 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
154328 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
154329 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
154330 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
154331 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
154332 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154333 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
154334 } },
154335 }, .{
154336 .required_features = .{ .x87, .cmov, null, null },
154337 .dst_constraints = .{ .{ .float = .tbyte }, .any },
154338 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
154339 .patterns = &.{
154340 .{ .src = .{ .to_mem, .none, .none } },
154341 },
154342 .extra_temps = .{
154343 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154344 .{ .type = .f80, .kind = .{ .reg = .st7 } },
154345 .{ .type = .f80, .kind = .{ .reg = .st6 } },
154346 .unused,
154347 .unused,
154348 .unused,
154349 .unused,
154350 .unused,
154351 .unused,
154352 .unused,
154353 .unused,
154354 },
154355 .dst_temps = .{ .{ .rc = .x87 }, .unused },
154356 .clobbers = .{ .eflags = true },
154357 .each = .{ .once = &.{
154358 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
154359 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
154360 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
154361 .{ ._, .f_, .ucomi, .tmp2t, .tmp1t, ._, ._ },
154362 .{ ._, .f_b, .cmov, .tmp2t, .tmp1t, ._, ._ },
154363 .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ },
154364 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154365 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154366 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
154367 } },
154368 }, .{
154369 .required_features = .{ .sahf, .x87, null, null },
154370 .dst_constraints = .{ .{ .float = .tbyte }, .any },
154371 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
154372 .patterns = &.{
154373 .{ .src = .{ .to_mem, .none, .none } },
154374 },
154375 .extra_temps = .{
154376 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154377 .{ .type = .f80, .kind = .{ .reg = .st7 } },
154378 .{ .type = .f80, .kind = .{ .reg = .st6 } },
154379 .{ .type = .u16, .kind = .{ .reg = .ax } },
154380 .unused,
154381 .unused,
154382 .unused,
154383 .unused,
154384 .unused,
154385 .unused,
154386 .unused,
154387 },
154388 .dst_temps = .{ .{ .rc = .x87 }, .unused },
154389 .clobbers = .{ .eflags = true },
154390 .each = .{ .once = &.{
154391 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
154392 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
154393 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
154394 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
154395 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
154396 .{ ._, ._, .sahf, ._, ._, ._, ._ },
154397 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
154398 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
154399 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
154400 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154401 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154402 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
154403 } },
154404 }, .{
154405 .required_features = .{ .x87, null, null, null },
154406 .dst_constraints = .{ .{ .float = .tbyte }, .any },
154407 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
154408 .patterns = &.{
154409 .{ .src = .{ .to_mem, .none, .none } },
154410 },
154411 .extra_temps = .{
154412 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154413 .{ .type = .f80, .kind = .{ .reg = .st7 } },
154414 .{ .type = .f80, .kind = .{ .reg = .st6 } },
154415 .{ .type = .u16, .kind = .{ .reg = .ax } },
154416 .unused,
154417 .unused,
154418 .unused,
154419 .unused,
154420 .unused,
154421 .unused,
154422 .unused,
154423 },
154424 .dst_temps = .{ .{ .rc = .x87 }, .unused },
154425 .clobbers = .{ .eflags = true },
154426 .each = .{ .once = &.{
154427 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
154428 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
154429 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
154430 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
154431 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
154432 .{ ._, ._, .@"test", .tmp3h, .si(0b0_000_001), ._, ._ },
154433 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
154434 .{ ._, .f_, .st, .tmp1t, ._, ._, ._ },
154435 .{ .@"1:", .f_p, .st, .tmp2t, ._, ._, ._ },
154436 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154437 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154438 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
154439 } },
154440 }, .{
154441 .required_features = .{ .avx, null, null, null },
154442 .dst_constraints = .{ .{ .float = .xword }, .any },
154443 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
154444 .patterns = &.{
154445 .{ .src = .{ .to_mem, .none, .none } },
154446 },
154447 .call_frame = .{ .alignment = .@"16" },
154448 .extra_temps = .{
154449 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154450 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
154451 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
154452 .unused,
154453 .unused,
154454 .unused,
154455 .unused,
154456 .unused,
154457 .unused,
154458 .unused,
154459 .unused,
154460 },
154461 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
154462 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
154463 .each = .{ .once = &.{
154464 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
154465 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
154466 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
154467 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
154468 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154469 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154470 } },
154471 }, .{
154472 .required_features = .{ .sse2, null, null, null },
154473 .dst_constraints = .{ .{ .float = .xword }, .any },
154474 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
154475 .patterns = &.{
154476 .{ .src = .{ .to_mem, .none, .none } },
154477 },
154478 .call_frame = .{ .alignment = .@"16" },
154479 .extra_temps = .{
154480 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154481 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
154482 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
154483 .unused,
154484 .unused,
154485 .unused,
154486 .unused,
154487 .unused,
154488 .unused,
154489 .unused,
154490 .unused,
154491 },
154492 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
154493 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
154494 .each = .{ .once = &.{
154495 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
154496 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
154497 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
154498 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
154499 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154500 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154501 } },
154502 }, .{
154503 .required_features = .{ .sse, null, null, null },
154504 .dst_constraints = .{ .{ .float = .xword }, .any },
154505 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
154506 .patterns = &.{
154507 .{ .src = .{ .to_mem, .none, .none } },
154508 },
154509 .call_frame = .{ .alignment = .@"16" },
154510 .extra_temps = .{
154511 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
154512 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
154513 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
154514 .unused,
154515 .unused,
154516 .unused,
154517 .unused,
154518 .unused,
154519 .unused,
154520 .unused,
154521 .unused,
154522 },
154523 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
154524 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
154525 .each = .{ .once = &.{
154526 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
154527 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
154528 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
154529 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
154530 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
154531 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
154532 } },
154533 } },
154534 .Add => comptime &.{ .{
154535 .required_features = .{ .f16c, .fast_hops, null, null },
154536 .dst_constraints = .{ .{ .float = .word }, .any },
154537 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
154538 .patterns = &.{
154539 .{ .src = .{ .mem, .none, .none } },
154540 .{ .src = .{ .to_sse, .none, .none } },
154541 },
154542 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154543 .each = .{ .once = &.{
154544 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
154545 .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ },
154546 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154547 } },
154548 }, .{
154549 .required_features = .{ .f16c, null, null, null },
154550 .dst_constraints = .{ .{ .float = .word }, .any },
154551 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
154552 .patterns = &.{
154553 .{ .src = .{ .mem, .none, .none } },
154554 .{ .src = .{ .to_sse, .none, .none } },
154555 },
154556 .extra_temps = .{
154557 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
154558 .unused,
154559 .unused,
154560 .unused,
154561 .unused,
154562 .unused,
154563 .unused,
154564 .unused,
154565 .unused,
154566 .unused,
154567 .unused,
154568 },
154569 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154570 .each = .{ .once = &.{
154571 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
154572 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
154573 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
154574 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154575 } },
154576 }, .{
154577 .required_features = .{ .f16c, .fast_hops, null, null },
154578 .dst_constraints = .{ .{ .float = .word }, .any },
154579 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
154580 .patterns = &.{
154581 .{ .src = .{ .mem, .none, .none } },
154582 .{ .src = .{ .to_sse, .none, .none } },
154583 },
154584 .extra_temps = .{
154585 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
154586 .unused,
154587 .unused,
154588 .unused,
154589 .unused,
154590 .unused,
154591 .unused,
154592 .unused,
154593 .unused,
154594 .unused,
154595 .unused,
154596 },
154597 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154598 .each = .{ .once = &.{
154599 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
154600 .{ ._, .vh_ps, .add, .tmp0x, .dst0x, .dst0x, ._ },
154601 .{ ._, .v_ps, .shuf, .dst0x, .dst0x, .dst0x, .ui(0b11_10) },
154602 .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
154603 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154604 } },
154605 }, .{
154606 .required_features = .{ .f16c, null, null, null },
154607 .dst_constraints = .{ .{ .float = .word }, .any },
154608 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
154609 .patterns = &.{
154610 .{ .src = .{ .mem, .none, .none } },
154611 .{ .src = .{ .to_sse, .none, .none } },
154612 },
154613 .extra_temps = .{
154614 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
154615 .unused,
154616 .unused,
154617 .unused,
154618 .unused,
154619 .unused,
154620 .unused,
154621 .unused,
154622 .unused,
154623 .unused,
154624 .unused,
154625 },
154626 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154627 .each = .{ .once = &.{
154628 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
154629 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
154630 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
154631 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
154632 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
154633 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154634 } },
154635 }, .{
154636 .required_features = .{ .f16c, .fast_hops, null, null },
154637 .dst_constraints = .{ .{ .float = .word }, .any },
154638 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
154639 .patterns = &.{
154640 .{ .src = .{ .mem, .none, .none } },
154641 .{ .src = .{ .to_sse, .none, .none } },
154642 },
154643 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154644 .each = .{ .once = &.{
154645 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
154646 .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ },
154647 .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ },
154648 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154649 } },
154650 }, .{
154651 .required_features = .{ .f16c, null, null, null },
154652 .dst_constraints = .{ .{ .float = .word }, .any },
154653 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
154654 .patterns = &.{
154655 .{ .src = .{ .mem, .none, .none } },
154656 .{ .src = .{ .to_sse, .none, .none } },
154657 },
154658 .extra_temps = .{
154659 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
154660 .unused,
154661 .unused,
154662 .unused,
154663 .unused,
154664 .unused,
154665 .unused,
154666 .unused,
154667 .unused,
154668 .unused,
154669 .unused,
154670 },
154671 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154672 .each = .{ .once = &.{
154673 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
154674 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
154675 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
154676 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
154677 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
154678 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154679 } },
154680 }, .{
154681 .required_features = .{ .f16c, .fast_hops, null, null },
154682 .dst_constraints = .{ .{ .float = .word }, .any },
154683 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
154684 .patterns = &.{
154685 .{ .src = .{ .to_sse, .none, .none } },
154686 },
154687 .extra_temps = .{
154688 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
154689 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
154690 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154691 .unused,
154692 .unused,
154693 .unused,
154694 .unused,
154695 .unused,
154696 .unused,
154697 .unused,
154698 .unused,
154699 },
154700 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154701 .each = .{ .once = &.{
154702 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154703 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
154704 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
154705 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
154706 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
154707 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
154708 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
154709 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154710 } },
154711 }, .{
154712 .required_features = .{ .f16c, null, null, null },
154713 .dst_constraints = .{ .{ .float = .word }, .any },
154714 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
154715 .patterns = &.{
154716 .{ .src = .{ .to_sse, .none, .none } },
154717 },
154718 .extra_temps = .{
154719 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
154720 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
154721 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154722 .unused,
154723 .unused,
154724 .unused,
154725 .unused,
154726 .unused,
154727 .unused,
154728 .unused,
154729 .unused,
154730 },
154731 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154732 .each = .{ .once = &.{
154733 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154734 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
154735 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
154736 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
154737 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
154738 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
154739 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
154740 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
154741 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
154742 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154743 } },
154744 }, .{
154745 .required_features = .{ .f16c, .fast_hops, null, null },
154746 .dst_constraints = .{ .{ .float = .word }, .any },
154747 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
154748 .patterns = &.{
154749 .{ .src = .{ .mem, .none, .none } },
154750 .{ .src = .{ .to_sse, .none, .none } },
154751 },
154752 .extra_temps = .{
154753 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154754 .unused,
154755 .unused,
154756 .unused,
154757 .unused,
154758 .unused,
154759 .unused,
154760 .unused,
154761 .unused,
154762 .unused,
154763 .unused,
154764 },
154765 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154766 .each = .{ .once = &.{
154767 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
154768 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
154769 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
154770 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
154771 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
154772 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154773 } },
154774 }, .{
154775 .required_features = .{ .f16c, null, null, null },
154776 .dst_constraints = .{ .{ .float = .word }, .any },
154777 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
154778 .patterns = &.{
154779 .{ .src = .{ .mem, .none, .none } },
154780 .{ .src = .{ .to_sse, .none, .none } },
154781 },
154782 .extra_temps = .{
154783 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154784 .unused,
154785 .unused,
154786 .unused,
154787 .unused,
154788 .unused,
154789 .unused,
154790 .unused,
154791 .unused,
154792 .unused,
154793 .unused,
154794 },
154795 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154796 .each = .{ .once = &.{
154797 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
154798 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
154799 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
154800 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
154801 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
154802 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
154803 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
154804 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154805 } },
154806 }, .{
154807 .required_features = .{ .f16c, .fast_hops, null, null },
154808 .dst_constraints = .{ .{ .float = .word }, .any },
154809 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
154810 .patterns = &.{
154811 .{ .src = .{ .to_sse, .none, .none } },
154812 },
154813 .extra_temps = .{
154814 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
154815 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
154816 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154817 .unused,
154818 .unused,
154819 .unused,
154820 .unused,
154821 .unused,
154822 .unused,
154823 .unused,
154824 .unused,
154825 },
154826 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154827 .each = .{ .once = &.{
154828 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154829 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
154830 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
154831 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
154832 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
154833 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
154834 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
154835 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
154836 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
154837 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
154838 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154839 } },
154840 }, .{
154841 .required_features = .{ .f16c, null, null, null },
154842 .dst_constraints = .{ .{ .float = .word }, .any },
154843 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
154844 .patterns = &.{
154845 .{ .src = .{ .to_sse, .none, .none } },
154846 },
154847 .extra_temps = .{
154848 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
154849 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
154850 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154851 .unused,
154852 .unused,
154853 .unused,
154854 .unused,
154855 .unused,
154856 .unused,
154857 .unused,
154858 .unused,
154859 },
154860 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154861 .each = .{ .once = &.{
154862 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154863 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
154864 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
154865 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
154866 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
154867 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
154868 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
154869 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
154870 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
154871 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
154872 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
154873 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
154874 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154875 } },
154876 }, .{
154877 .required_features = .{ .f16c, .fast_hops, null, null },
154878 .dst_constraints = .{ .{ .float = .word }, .any },
154879 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
154880 .patterns = &.{
154881 .{ .src = .{ .to_sse, .none, .none } },
154882 },
154883 .extra_temps = .{
154884 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154885 .unused,
154886 .unused,
154887 .unused,
154888 .unused,
154889 .unused,
154890 .unused,
154891 .unused,
154892 .unused,
154893 .unused,
154894 .unused,
154895 },
154896 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154897 .each = .{ .once = &.{
154898 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
154899 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
154900 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
154901 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ },
154902 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
154903 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
154904 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
154905 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
154906 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154907 } },
154908 }, .{
154909 .required_features = .{ .f16c, null, null, null },
154910 .dst_constraints = .{ .{ .float = .word }, .any },
154911 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
154912 .patterns = &.{
154913 .{ .src = .{ .to_sse, .none, .none } },
154914 },
154915 .extra_temps = .{
154916 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154917 .unused,
154918 .unused,
154919 .unused,
154920 .unused,
154921 .unused,
154922 .unused,
154923 .unused,
154924 .unused,
154925 .unused,
154926 .unused,
154927 },
154928 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
154929 .each = .{ .once = &.{
154930 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
154931 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
154932 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
154933 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ },
154934 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
154935 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
154936 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
154937 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
154938 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
154939 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
154940 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154941 } },
154942 }, .{
154943 .required_features = .{ .avx512f, null, null, null },
154944 .dst_constraints = .{ .{ .float = .word }, .any },
154945 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
154946 .patterns = &.{
154947 .{ .src = .{ .to_mem, .none, .none } },
154948 },
154949 .extra_temps = .{
154950 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
154951 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
154952 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154953 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154954 .unused,
154955 .unused,
154956 .unused,
154957 .unused,
154958 .unused,
154959 .unused,
154960 .unused,
154961 },
154962 .dst_temps = .{ .{ .rc = .sse }, .unused },
154963 .each = .{ .once = &.{
154964 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
154965 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
154966 .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
154967 .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
154968 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
154969 .{ ._, .v_f128, .extract, .tmp3x, .tmp2y, .ui(1), ._ },
154970 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
154971 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
154972 .{ ._, .v_ps, .add, .tmp2y, .tmp2y, .tmp3y, ._ },
154973 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
154974 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
154975 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
154976 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp3y, ._ },
154977 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
154978 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
154979 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
154980 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
154981 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
154982 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
154983 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
154984 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
154985 } },
154986 }, .{
154987 .required_features = .{ .avx512f, null, null, null },
154988 .dst_constraints = .{ .{ .float = .word }, .any },
154989 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
154990 .patterns = &.{
154991 .{ .src = .{ .to_mem, .none, .none } },
154992 },
154993 .extra_temps = .{
154994 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154995 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
154996 .unused,
154997 .unused,
154998 .unused,
154999 .unused,
155000 .unused,
155001 .unused,
155002 .unused,
155003 .unused,
155004 .unused,
155005 },
155006 .dst_temps = .{ .{ .rc = .sse }, .unused },
155007 .each = .{ .once = &.{
155008 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
155009 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
155010 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
155011 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
155012 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
155013 .{ ._, .v_ps, .add, .tmp0y, .tmp0y, .tmp1y, ._ },
155014 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
155015 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
155016 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
155017 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp1y, ._ },
155018 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ },
155019 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
155020 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
155021 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
155022 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
155023 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
155024 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
155025 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
155026 } },
155027 }, .{
155028 .required_features = .{ .f16c, .fast_hops, null, null },
155029 .dst_constraints = .{ .{ .float = .word }, .any },
155030 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
155031 .patterns = &.{
155032 .{ .src = .{ .to_mem, .none, .none } },
155033 },
155034 .extra_temps = .{
155035 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155036 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
155037 .unused,
155038 .unused,
155039 .unused,
155040 .unused,
155041 .unused,
155042 .unused,
155043 .unused,
155044 .unused,
155045 .unused,
155046 },
155047 .dst_temps = .{ .{ .rc = .sse }, .unused },
155048 .clobbers = .{ .eflags = true },
155049 .each = .{ .once = &.{
155050 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
155051 .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
155052 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
155053 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp1y, ._ },
155054 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
155055 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155056 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155057 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155058 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
155059 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
155060 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
155061 } },
155062 }, .{
155063 .required_features = .{ .f16c, null, null, null },
155064 .dst_constraints = .{ .{ .float = .word }, .any },
155065 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
155066 .patterns = &.{
155067 .{ .src = .{ .to_mem, .none, .none } },
155068 },
155069 .extra_temps = .{
155070 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155071 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
155072 .unused,
155073 .unused,
155074 .unused,
155075 .unused,
155076 .unused,
155077 .unused,
155078 .unused,
155079 .unused,
155080 .unused,
155081 },
155082 .dst_temps = .{ .{ .rc = .sse }, .unused },
155083 .clobbers = .{ .eflags = true },
155084 .each = .{ .once = &.{
155085 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
155086 .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
155087 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
155088 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp1y, ._ },
155089 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
155090 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155091 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
155092 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
155093 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
155094 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
155095 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
155096 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
155097 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
155098 } },
155099 }, .{
155100 .required_features = .{ .avx512f, null, null, null },
155101 .dst_constraints = .{ .{ .float = .word }, .any },
155102 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
155103 .patterns = &.{
155104 .{ .src = .{ .to_mem, .none, .none } },
155105 },
155106 .extra_temps = .{
155107 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155108 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155109 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
155110 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
155111 .unused,
155112 .unused,
155113 .unused,
155114 .unused,
155115 .unused,
155116 .unused,
155117 .unused,
155118 },
155119 .dst_temps = .{ .{ .rc = .sse }, .unused },
155120 .clobbers = .{ .eflags = true },
155121 .each = .{ .once = &.{
155122 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
155123 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
155124 .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
155125 .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ },
155126 .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
155127 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
155128 .{ ._, .v_f128, .extract, .tmp3x, .tmp2y, .ui(1), ._ },
155129 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
155130 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
155131 .{ ._, .v_ps, .add, .tmp2y, .tmp2y, .tmp3y, ._ },
155132 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
155133 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
155134 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
155135 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp3y, ._ },
155136 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
155137 .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memi(.src0x, .tmp0), ._, ._ },
155138 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
155139 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
155140 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155141 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155142 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155143 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
155144 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155145 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
155146 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
155147 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
155148 } },
155149 }, .{
155150 .required_features = .{ .f16c, .fast_hops, null, null },
155151 .dst_constraints = .{ .{ .float = .word }, .any },
155152 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
155153 .patterns = &.{
155154 .{ .src = .{ .to_mem, .none, .none } },
155155 },
155156 .extra_temps = .{
155157 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155158 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155159 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
155160 .unused,
155161 .unused,
155162 .unused,
155163 .unused,
155164 .unused,
155165 .unused,
155166 .unused,
155167 .unused,
155168 },
155169 .dst_temps = .{ .{ .rc = .sse }, .unused },
155170 .clobbers = .{ .eflags = true },
155171 .each = .{ .once = &.{
155172 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
155173 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
155174 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
155175 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
155176 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155177 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
155178 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
155179 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
155180 .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memi(.src0x, .tmp0), ._, ._ },
155181 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
155182 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
155183 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155184 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155185 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155186 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155187 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
155188 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
155189 } },
155190 }, .{
155191 .required_features = .{ .f16c, null, null, null },
155192 .dst_constraints = .{ .{ .float = .word }, .any },
155193 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
155194 .patterns = &.{
155195 .{ .src = .{ .to_mem, .none, .none } },
155196 },
155197 .extra_temps = .{
155198 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155199 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155200 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
155201 .unused,
155202 .unused,
155203 .unused,
155204 .unused,
155205 .unused,
155206 .unused,
155207 .unused,
155208 .unused,
155209 },
155210 .dst_temps = .{ .{ .rc = .sse }, .unused },
155211 .clobbers = .{ .eflags = true },
155212 .each = .{ .once = &.{
155213 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
155214 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
155215 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
155216 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
155217 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155218 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
155219 .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ },
155220 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
155221 .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memi(.src0x, .tmp0), ._, ._ },
155222 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
155223 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
155224 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155225 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155226 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155227 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10) },
155228 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155229 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
155230 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
155231 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
155232 } },
155233 }, .{
155234 .required_features = .{ .avx, null, null, null },
155235 .dst_constraints = .{ .{ .float = .word }, .any },
155236 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
155237 .patterns = &.{
155238 .{ .src = .{ .to_mem, .none, .none } },
155239 },
155240 .call_frame = .{ .alignment = .@"16" },
155241 .extra_temps = .{
155242 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155243 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
155244 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
155245 .unused,
155246 .unused,
155247 .unused,
155248 .unused,
155249 .unused,
155250 .unused,
155251 .unused,
155252 .unused,
155253 },
155254 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
155255 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
155256 .each = .{ .once = &.{
155257 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
155258 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
155259 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) },
155260 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
155261 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
155262 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
155263 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
155264 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155265 } },
155266 }, .{
155267 .required_features = .{ .sse2, null, null, null },
155268 .dst_constraints = .{ .{ .float = .word }, .any },
155269 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
155270 .patterns = &.{
155271 .{ .src = .{ .to_mem, .none, .none } },
155272 },
155273 .call_frame = .{ .alignment = .@"16" },
155274 .extra_temps = .{
155275 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155276 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
155277 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
155278 .unused,
155279 .unused,
155280 .unused,
155281 .unused,
155282 .unused,
155283 .unused,
155284 .unused,
155285 .unused,
155286 },
155287 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
155288 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
155289 .each = .{ .once = &.{
155290 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
155291 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
155292 .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ },
155293 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
155294 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
155295 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
155296 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
155297 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155298 } },
155299 }, .{
155300 .required_features = .{ .sse, null, null, null },
155301 .dst_constraints = .{ .{ .float = .word }, .any },
155302 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
155303 .patterns = &.{
155304 .{ .src = .{ .to_mem, .none, .none } },
155305 },
155306 .call_frame = .{ .alignment = .@"16" },
155307 .extra_temps = .{
155308 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155309 .{ .type = .f16, .kind = .{ .reg = .ax } },
155310 .{ .type = .f32, .kind = .mem },
155311 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
155312 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } },
155313 .unused,
155314 .unused,
155315 .unused,
155316 .unused,
155317 .unused,
155318 .unused,
155319 },
155320 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
155321 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
155322 .each = .{ .once = &.{
155323 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
155324 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
155325 .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
155326 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
155327 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
155328 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
155329 .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ },
155330 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
155331 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
155332 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155333 } },
155334 }, .{
155335 .required_features = .{ .avx, .fast_hops, null, null },
155336 .dst_constraints = .{ .{ .float = .dword }, .any },
155337 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
155338 .patterns = &.{
155339 .{ .src = .{ .to_sse, .none, .none } },
155340 },
155341 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155342 .each = .{ .once = &.{
155343 .{ ._, .vh_ps, .add, .dst0x, .src0x, .src0x, ._ },
155344 } },
155345 }, .{
155346 .required_features = .{ .avx, null, null, null },
155347 .dst_constraints = .{ .{ .float = .dword }, .any },
155348 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
155349 .patterns = &.{
155350 .{ .src = .{ .to_sse, .none, .none } },
155351 },
155352 .extra_temps = .{
155353 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155354 .unused,
155355 .unused,
155356 .unused,
155357 .unused,
155358 .unused,
155359 .unused,
155360 .unused,
155361 .unused,
155362 .unused,
155363 .unused,
155364 },
155365 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155366 .each = .{ .once = &.{
155367 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
155368 .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ },
155369 } },
155370 }, .{
155371 .required_features = .{ .sse3, .fast_hops, null, null },
155372 .dst_constraints = .{ .{ .float = .dword }, .any },
155373 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
155374 .patterns = &.{
155375 .{ .src = .{ .to_mut_sse, .none, .none } },
155376 },
155377 .dst_temps = .{ .{ .ref = .src0 }, .unused },
155378 .each = .{ .once = &.{
155379 .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ },
155380 } },
155381 }, .{
155382 .required_features = .{ .sse, null, null, null },
155383 .dst_constraints = .{ .{ .float = .dword }, .any },
155384 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
155385 .patterns = &.{
155386 .{ .src = .{ .to_mut_sse, .none, .none } },
155387 },
155388 .extra_temps = .{
155389 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155390 .unused,
155391 .unused,
155392 .unused,
155393 .unused,
155394 .unused,
155395 .unused,
155396 .unused,
155397 .unused,
155398 .unused,
155399 .unused,
155400 },
155401 .dst_temps = .{ .{ .ref = .src0 }, .unused },
155402 .each = .{ .once = &.{
155403 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
155404 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
155405 .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
155406 } },
155407 }, .{
155408 .required_features = .{ .avx, .fast_hops, null, null },
155409 .dst_constraints = .{ .{ .float = .dword }, .any },
155410 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155411 .patterns = &.{
155412 .{ .src = .{ .to_sse, .none, .none } },
155413 },
155414 .extra_temps = .{
155415 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155416 .unused,
155417 .unused,
155418 .unused,
155419 .unused,
155420 .unused,
155421 .unused,
155422 .unused,
155423 .unused,
155424 .unused,
155425 .unused,
155426 },
155427 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155428 .each = .{ .once = &.{
155429 .{ ._, .vh_ps, .add, .tmp0x, .src0x, .src0x, ._ },
155430 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
155431 .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
155432 } },
155433 }, .{
155434 .required_features = .{ .avx, null, null, null },
155435 .dst_constraints = .{ .{ .float = .dword }, .any },
155436 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155437 .patterns = &.{
155438 .{ .src = .{ .to_sse, .none, .none } },
155439 },
155440 .extra_temps = .{
155441 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155442 .unused,
155443 .unused,
155444 .unused,
155445 .unused,
155446 .unused,
155447 .unused,
155448 .unused,
155449 .unused,
155450 .unused,
155451 .unused,
155452 },
155453 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155454 .each = .{ .once = &.{
155455 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
155456 .{ ._, .v_ss, .add, .tmp0x, .src0x, .tmp0x, ._ },
155457 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
155458 .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ },
155459 } },
155460 }, .{
155461 .required_features = .{ .sse3, .fast_hops, null, null },
155462 .dst_constraints = .{ .{ .float = .dword }, .any },
155463 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155464 .patterns = &.{
155465 .{ .src = .{ .to_mut_sse, .none, .none } },
155466 },
155467 .extra_temps = .{
155468 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155469 .unused,
155470 .unused,
155471 .unused,
155472 .unused,
155473 .unused,
155474 .unused,
155475 .unused,
155476 .unused,
155477 .unused,
155478 .unused,
155479 },
155480 .dst_temps = .{ .{ .ref = .src0 }, .unused },
155481 .each = .{ .once = &.{
155482 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
155483 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
155484 .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ },
155485 .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
155486 } },
155487 }, .{
155488 .required_features = .{ .sse, null, null, null },
155489 .dst_constraints = .{ .{ .float = .dword }, .any },
155490 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155491 .patterns = &.{
155492 .{ .src = .{ .to_mut_sse, .none, .none } },
155493 },
155494 .extra_temps = .{
155495 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155496 .unused,
155497 .unused,
155498 .unused,
155499 .unused,
155500 .unused,
155501 .unused,
155502 .unused,
155503 .unused,
155504 .unused,
155505 .unused,
155506 },
155507 .dst_temps = .{ .{ .ref = .src0 }, .unused },
155508 .each = .{ .once = &.{
155509 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
155510 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
155511 .{ ._, ._ss, .add, .tmp0x, .src0x, ._, ._ },
155512 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
155513 .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
155514 } },
155515 }, .{
155516 .required_features = .{ .avx, .fast_hops, null, null },
155517 .dst_constraints = .{ .{ .float = .dword }, .any },
155518 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155519 .patterns = &.{
155520 .{ .src = .{ .to_sse, .none, .none } },
155521 },
155522 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155523 .each = .{ .once = &.{
155524 .{ ._, .vh_ps, .add, .dst0x, .src0x, .src0x, ._ },
155525 .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ },
155526 } },
155527 }, .{
155528 .required_features = .{ .avx, null, null, null },
155529 .dst_constraints = .{ .{ .float = .dword }, .any },
155530 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155531 .patterns = &.{
155532 .{ .src = .{ .to_sse, .none, .none } },
155533 },
155534 .extra_temps = .{
155535 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155536 .unused,
155537 .unused,
155538 .unused,
155539 .unused,
155540 .unused,
155541 .unused,
155542 .unused,
155543 .unused,
155544 .unused,
155545 .unused,
155546 },
155547 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155548 .each = .{ .once = &.{
155549 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
155550 .{ ._, .v_ps, .add, .dst0x, .src0x, .tmp0x, ._ },
155551 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
155552 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
155553 } },
155554 }, .{
155555 .required_features = .{ .sse3, .fast_hops, null, null },
155556 .dst_constraints = .{ .{ .float = .dword }, .any },
155557 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155558 .patterns = &.{
155559 .{ .src = .{ .to_mut_sse, .none, .none } },
155560 },
155561 .dst_temps = .{ .{ .ref = .src0 }, .unused },
155562 .each = .{ .once = &.{
155563 .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ },
155564 .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ },
155565 } },
155566 }, .{
155567 .required_features = .{ .sse, null, null, null },
155568 .dst_constraints = .{ .{ .float = .dword }, .any },
155569 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155570 .patterns = &.{
155571 .{ .src = .{ .to_mut_sse, .none, .none } },
155572 },
155573 .extra_temps = .{
155574 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155575 .unused,
155576 .unused,
155577 .unused,
155578 .unused,
155579 .unused,
155580 .unused,
155581 .unused,
155582 .unused,
155583 .unused,
155584 .unused,
155585 },
155586 .dst_temps = .{ .{ .ref = .src0 }, .unused },
155587 .each = .{ .once = &.{
155588 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
155589 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
155590 .{ ._, ._ps, .add, .dst0x, .tmp0x, ._, ._ },
155591 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
155592 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
155593 .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ },
155594 } },
155595 }, .{
155596 .required_features = .{ .avx, .fast_hops, null, null },
155597 .dst_constraints = .{ .{ .float = .dword }, .any },
155598 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
155599 .patterns = &.{
155600 .{ .src = .{ .to_sse, .none, .none } },
155601 },
155602 .extra_temps = .{
155603 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
155604 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155605 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155606 .unused,
155607 .unused,
155608 .unused,
155609 .unused,
155610 .unused,
155611 .unused,
155612 .unused,
155613 .unused,
155614 },
155615 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155616 .each = .{ .once = &.{
155617 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
155618 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
155619 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155620 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155621 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155622 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
155623 } },
155624 }, .{
155625 .required_features = .{ .avx, null, null, null },
155626 .dst_constraints = .{ .{ .float = .dword }, .any },
155627 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
155628 .patterns = &.{
155629 .{ .src = .{ .to_sse, .none, .none } },
155630 },
155631 .extra_temps = .{
155632 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
155633 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155634 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155635 .unused,
155636 .unused,
155637 .unused,
155638 .unused,
155639 .unused,
155640 .unused,
155641 .unused,
155642 .unused,
155643 },
155644 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155645 .each = .{ .once = &.{
155646 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
155647 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
155648 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155649 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155650 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
155651 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155652 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
155653 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
155654 } },
155655 }, .{
155656 .required_features = .{ .avx, .fast_hops, null, null },
155657 .dst_constraints = .{ .{ .float = .dword }, .any },
155658 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
155659 .patterns = &.{
155660 .{ .src = .{ .to_sse, .none, .none } },
155661 },
155662 .extra_temps = .{
155663 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155664 .unused,
155665 .unused,
155666 .unused,
155667 .unused,
155668 .unused,
155669 .unused,
155670 .unused,
155671 .unused,
155672 .unused,
155673 .unused,
155674 },
155675 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155676 .each = .{ .once = &.{
155677 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155678 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155679 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
155680 .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ },
155681 } },
155682 }, .{
155683 .required_features = .{ .avx, null, null, null },
155684 .dst_constraints = .{ .{ .float = .dword }, .any },
155685 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
155686 .patterns = &.{
155687 .{ .src = .{ .to_sse, .none, .none } },
155688 },
155689 .extra_temps = .{
155690 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155691 .unused,
155692 .unused,
155693 .unused,
155694 .unused,
155695 .unused,
155696 .unused,
155697 .unused,
155698 .unused,
155699 .unused,
155700 .unused,
155701 },
155702 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
155703 .each = .{ .once = &.{
155704 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
155705 .{ ._, .v_ps, .add, .dst0x, .src0x, .tmp0x, ._ },
155706 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
155707 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
155708 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
155709 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
155710 } },
155711 }, .{
155712 .required_features = .{ .avx512f, null, null, null },
155713 .dst_constraints = .{ .{ .float = .dword }, .any },
155714 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
155715 .patterns = &.{
155716 .{ .src = .{ .to_mem, .none, .none } },
155717 },
155718 .extra_temps = .{
155719 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
155720 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155721 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
155722 .unused,
155723 .unused,
155724 .unused,
155725 .unused,
155726 .unused,
155727 .unused,
155728 .unused,
155729 .unused,
155730 },
155731 .dst_temps = .{ .{ .rc = .sse }, .unused },
155732 .each = .{ .once = &.{
155733 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
155734 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
155735 .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
155736 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
155737 .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
155738 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
155739 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155740 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155741 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
155742 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155743 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
155744 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
155745 } },
155746 }, .{
155747 .required_features = .{ .avx512f, null, null, null },
155748 .dst_constraints = .{ .{ .float = .dword }, .any },
155749 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
155750 .patterns = &.{
155751 .{ .src = .{ .to_mem, .none, .none } },
155752 },
155753 .extra_temps = .{
155754 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155755 .unused,
155756 .unused,
155757 .unused,
155758 .unused,
155759 .unused,
155760 .unused,
155761 .unused,
155762 .unused,
155763 .unused,
155764 .unused,
155765 },
155766 .dst_temps = .{ .{ .rc = .sse }, .unused },
155767 .each = .{ .once = &.{
155768 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
155769 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
155770 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ },
155771 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
155772 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
155773 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
155774 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ },
155775 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
155776 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ },
155777 } },
155778 }, .{
155779 .required_features = .{ .avx, .fast_hops, null, null },
155780 .dst_constraints = .{ .{ .float = .dword }, .any },
155781 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
155782 .patterns = &.{
155783 .{ .src = .{ .to_mem, .none, .none } },
155784 },
155785 .extra_temps = .{
155786 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155787 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155788 .unused,
155789 .unused,
155790 .unused,
155791 .unused,
155792 .unused,
155793 .unused,
155794 .unused,
155795 .unused,
155796 .unused,
155797 },
155798 .dst_temps = .{ .{ .rc = .sse }, .unused },
155799 .clobbers = .{ .eflags = true },
155800 .each = .{ .once = &.{
155801 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
155802 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
155803 .{ .@"0:", .v_ps, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
155804 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
155805 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155806 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155807 .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ },
155808 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
155809 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
155810 } },
155811 }, .{
155812 .required_features = .{ .avx, null, null, null },
155813 .dst_constraints = .{ .{ .float = .dword }, .any },
155814 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
155815 .patterns = &.{
155816 .{ .src = .{ .to_mem, .none, .none } },
155817 },
155818 .extra_temps = .{
155819 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155820 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155821 .unused,
155822 .unused,
155823 .unused,
155824 .unused,
155825 .unused,
155826 .unused,
155827 .unused,
155828 .unused,
155829 .unused,
155830 },
155831 .dst_temps = .{ .{ .rc = .sse }, .unused },
155832 .clobbers = .{ .eflags = true },
155833 .each = .{ .once = &.{
155834 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
155835 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
155836 .{ .@"0:", .v_ps, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
155837 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
155838 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155839 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
155840 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
155841 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
155842 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ },
155843 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
155844 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ },
155845 } },
155846 }, .{
155847 .required_features = .{ .sse3, .fast_hops, null, null },
155848 .dst_constraints = .{ .{ .float = .dword }, .any },
155849 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155850 .patterns = &.{
155851 .{ .src = .{ .to_mem, .none, .none } },
155852 },
155853 .extra_temps = .{
155854 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155855 .unused,
155856 .unused,
155857 .unused,
155858 .unused,
155859 .unused,
155860 .unused,
155861 .unused,
155862 .unused,
155863 .unused,
155864 .unused,
155865 },
155866 .dst_temps = .{ .{ .rc = .sse }, .unused },
155867 .clobbers = .{ .eflags = true },
155868 .each = .{ .once = &.{
155869 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
155870 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
155871 .{ .@"0:", ._ps, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
155872 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
155873 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155874 .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ },
155875 .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ },
155876 } },
155877 }, .{
155878 .required_features = .{ .sse, null, null, null },
155879 .dst_constraints = .{ .{ .float = .dword }, .any },
155880 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
155881 .patterns = &.{
155882 .{ .src = .{ .to_mem, .none, .none } },
155883 },
155884 .extra_temps = .{
155885 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155886 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155887 .unused,
155888 .unused,
155889 .unused,
155890 .unused,
155891 .unused,
155892 .unused,
155893 .unused,
155894 .unused,
155895 .unused,
155896 },
155897 .dst_temps = .{ .{ .rc = .sse }, .unused },
155898 .clobbers = .{ .eflags = true },
155899 .each = .{ .once = &.{
155900 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
155901 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
155902 .{ .@"0:", ._ps, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
155903 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
155904 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155905 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
155906 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
155907 .{ ._, ._ps, .add, .dst0x, .tmp1x, ._, ._ },
155908 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
155909 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
155910 .{ ._, ._ss, .add, .dst0x, .tmp1x, ._, ._ },
155911 } },
155912 }, .{
155913 .required_features = .{ .avx512f, null, null, null },
155914 .dst_constraints = .{ .{ .float = .dword }, .any },
155915 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
155916 .patterns = &.{
155917 .{ .src = .{ .to_mem, .none, .none } },
155918 },
155919 .extra_temps = .{
155920 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155921 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155922 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
155923 .unused,
155924 .unused,
155925 .unused,
155926 .unused,
155927 .unused,
155928 .unused,
155929 .unused,
155930 .unused,
155931 },
155932 .dst_temps = .{ .{ .rc = .sse }, .unused },
155933 .clobbers = .{ .eflags = true },
155934 .each = .{ .once = &.{
155935 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
155936 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
155937 .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
155938 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
155939 .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
155940 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
155941 .{ .@"0:", .v_ps, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
155942 .{ ._, .v_ps, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
155943 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
155944 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155945 .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ },
155946 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155947 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155948 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
155949 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155950 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
155951 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
155952 } },
155953 }, .{
155954 .required_features = .{ .avx, .fast_hops, null, null },
155955 .dst_constraints = .{ .{ .float = .dword }, .any },
155956 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
155957 .patterns = &.{
155958 .{ .src = .{ .to_mem, .none, .none } },
155959 },
155960 .extra_temps = .{
155961 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155962 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155963 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155964 .unused,
155965 .unused,
155966 .unused,
155967 .unused,
155968 .unused,
155969 .unused,
155970 .unused,
155971 .unused,
155972 },
155973 .dst_temps = .{ .{ .rc = .sse }, .unused },
155974 .clobbers = .{ .eflags = true },
155975 .each = .{ .once = &.{
155976 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
155977 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
155978 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
155979 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
155980 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
155981 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
155982 .{ .@"0:", .v_ps, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
155983 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
155984 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
155985 .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ },
155986 .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ },
155987 } },
155988 }, .{
155989 .required_features = .{ .avx, null, null, null },
155990 .dst_constraints = .{ .{ .float = .dword }, .any },
155991 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
155992 .patterns = &.{
155993 .{ .src = .{ .to_mem, .none, .none } },
155994 },
155995 .extra_temps = .{
155996 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
155997 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
155998 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
155999 .unused,
156000 .unused,
156001 .unused,
156002 .unused,
156003 .unused,
156004 .unused,
156005 .unused,
156006 .unused,
156007 },
156008 .dst_temps = .{ .{ .rc = .sse }, .unused },
156009 .clobbers = .{ .eflags = true },
156010 .each = .{ .once = &.{
156011 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156012 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
156013 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
156014 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
156015 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
156016 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
156017 .{ .@"0:", .v_ps, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
156018 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156019 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156020 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
156021 .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ },
156022 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01) },
156023 .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ },
156024 } },
156025 }, .{
156026 .required_features = .{ .sse3, .fast_hops, null, null },
156027 .dst_constraints = .{ .{ .float = .dword }, .any },
156028 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
156029 .patterns = &.{
156030 .{ .src = .{ .to_mem, .none, .none } },
156031 },
156032 .extra_temps = .{
156033 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156034 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156035 .unused,
156036 .unused,
156037 .unused,
156038 .unused,
156039 .unused,
156040 .unused,
156041 .unused,
156042 .unused,
156043 .unused,
156044 },
156045 .dst_temps = .{ .{ .rc = .sse }, .unused },
156046 .clobbers = .{ .eflags = true },
156047 .each = .{ .once = &.{
156048 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156049 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
156050 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
156051 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
156052 .{ .@"0:", ._ps, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
156053 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156054 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156055 .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ },
156056 .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ },
156057 } },
156058 }, .{
156059 .required_features = .{ .sse, null, null, null },
156060 .dst_constraints = .{ .{ .float = .dword }, .any },
156061 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
156062 .patterns = &.{
156063 .{ .src = .{ .to_mem, .none, .none } },
156064 },
156065 .extra_temps = .{
156066 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156067 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156068 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
156069 .unused,
156070 .unused,
156071 .unused,
156072 .unused,
156073 .unused,
156074 .unused,
156075 .unused,
156076 .unused,
156077 },
156078 .dst_temps = .{ .{ .rc = .sse }, .unused },
156079 .clobbers = .{ .eflags = true },
156080 .each = .{ .once = &.{
156081 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156082 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
156083 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
156084 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
156085 .{ .@"0:", ._ps, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
156086 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156087 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156088 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
156089 .{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ },
156090 .{ ._, ._ps, .add, .dst0x, .tmp2x, ._, ._ },
156091 .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ },
156092 .{ ._, ._ps, .shuf, .tmp2x, .tmp2x, .ui(0b01), ._ },
156093 .{ ._, ._ss, .add, .dst0x, .tmp2x, ._, ._ },
156094 } },
156095 }, .{
156096 .required_features = .{ .avx, .fast_hops, null, null },
156097 .dst_constraints = .{ .{ .float = .qword }, .any },
156098 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
156099 .patterns = &.{
156100 .{ .src = .{ .to_sse, .none, .none } },
156101 },
156102 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156103 .each = .{ .once = &.{
156104 .{ ._, .vh_pd, .add, .dst0x, .src0x, .src0x, ._ },
156105 } },
156106 }, .{
156107 .required_features = .{ .avx, null, null, null },
156108 .dst_constraints = .{ .{ .float = .qword }, .any },
156109 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
156110 .patterns = &.{
156111 .{ .src = .{ .to_sse, .none, .none } },
156112 },
156113 .extra_temps = .{
156114 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156115 .unused,
156116 .unused,
156117 .unused,
156118 .unused,
156119 .unused,
156120 .unused,
156121 .unused,
156122 .unused,
156123 .unused,
156124 .unused,
156125 },
156126 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156127 .each = .{ .once = &.{
156128 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
156129 .{ ._, .v_sd, .add, .dst0x, .src0x, .tmp0x, ._ },
156130 } },
156131 }, .{
156132 .required_features = .{ .sse3, .fast_hops, null, null },
156133 .dst_constraints = .{ .{ .float = .qword }, .any },
156134 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
156135 .patterns = &.{
156136 .{ .src = .{ .to_mut_sse, .none, .none } },
156137 },
156138 .dst_temps = .{ .{ .ref = .src0 }, .unused },
156139 .each = .{ .once = &.{
156140 .{ ._, .h_pd, .add, .dst0x, .src0x, ._, ._ },
156141 } },
156142 }, .{
156143 .required_features = .{ .sse2, null, null, null },
156144 .dst_constraints = .{ .{ .float = .qword }, .any },
156145 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
156146 .patterns = &.{
156147 .{ .src = .{ .to_mut_sse, .none, .none } },
156148 },
156149 .extra_temps = .{
156150 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156151 .unused,
156152 .unused,
156153 .unused,
156154 .unused,
156155 .unused,
156156 .unused,
156157 .unused,
156158 .unused,
156159 .unused,
156160 .unused,
156161 },
156162 .dst_temps = .{ .{ .ref = .src0 }, .unused },
156163 .each = .{ .once = &.{
156164 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
156165 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
156166 .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ },
156167 } },
156168 }, .{
156169 .required_features = .{ .avx, .fast_hops, null, null },
156170 .dst_constraints = .{ .{ .float = .qword }, .any },
156171 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
156172 .patterns = &.{
156173 .{ .src = .{ .to_sse, .none, .none } },
156174 },
156175 .extra_temps = .{
156176 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156177 .unused,
156178 .unused,
156179 .unused,
156180 .unused,
156181 .unused,
156182 .unused,
156183 .unused,
156184 .unused,
156185 .unused,
156186 .unused,
156187 },
156188 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156189 .each = .{ .once = &.{
156190 .{ ._, .vh_pd, .add, .tmp0x, .src0x, .src0x, ._ },
156191 .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ },
156192 .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ },
156193 } },
156194 }, .{
156195 .required_features = .{ .avx, null, null, null },
156196 .dst_constraints = .{ .{ .float = .qword }, .any },
156197 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
156198 .patterns = &.{
156199 .{ .src = .{ .to_sse, .none, .none } },
156200 },
156201 .extra_temps = .{
156202 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156203 .unused,
156204 .unused,
156205 .unused,
156206 .unused,
156207 .unused,
156208 .unused,
156209 .unused,
156210 .unused,
156211 .unused,
156212 .unused,
156213 },
156214 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156215 .each = .{ .once = &.{
156216 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
156217 .{ ._, .v_sd, .add, .tmp0x, .src0x, .tmp0x, ._ },
156218 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
156219 .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ },
156220 } },
156221 }, .{
156222 .required_features = .{ .avx, .fast_hops, null, null },
156223 .dst_constraints = .{ .{ .float = .qword }, .any },
156224 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
156225 .patterns = &.{
156226 .{ .src = .{ .to_sse, .none, .none } },
156227 },
156228 .extra_temps = .{
156229 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156230 .unused,
156231 .unused,
156232 .unused,
156233 .unused,
156234 .unused,
156235 .unused,
156236 .unused,
156237 .unused,
156238 .unused,
156239 .unused,
156240 },
156241 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156242 .each = .{ .once = &.{
156243 .{ ._, .vh_pd, .add, .dst0y, .src0y, .src0y, ._ },
156244 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
156245 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ },
156246 } },
156247 }, .{
156248 .required_features = .{ .avx, null, null, null },
156249 .dst_constraints = .{ .{ .float = .qword }, .any },
156250 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
156251 .patterns = &.{
156252 .{ .src = .{ .to_sse, .none, .none } },
156253 },
156254 .extra_temps = .{
156255 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156256 .unused,
156257 .unused,
156258 .unused,
156259 .unused,
156260 .unused,
156261 .unused,
156262 .unused,
156263 .unused,
156264 .unused,
156265 .unused,
156266 },
156267 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156268 .each = .{ .once = &.{
156269 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
156270 .{ ._, .v_pd, .add, .dst0x, .src0x, .tmp0x, ._ },
156271 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
156272 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ },
156273 } },
156274 }, .{
156275 .required_features = .{ .avx512f, null, null, null },
156276 .dst_constraints = .{ .{ .float = .qword }, .any },
156277 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
156278 .patterns = &.{
156279 .{ .src = .{ .to_mem, .none, .none } },
156280 },
156281 .extra_temps = .{
156282 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
156283 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156284 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
156285 .unused,
156286 .unused,
156287 .unused,
156288 .unused,
156289 .unused,
156290 .unused,
156291 .unused,
156292 .unused,
156293 },
156294 .dst_temps = .{ .{ .rc = .sse }, .unused },
156295 .each = .{ .once = &.{
156296 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156297 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
156298 .{ ._, .v_pd, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
156299 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
156300 .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ },
156301 .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ },
156302 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
156303 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ },
156304 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
156305 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ },
156306 } },
156307 }, .{
156308 .required_features = .{ .avx512f, null, null, null },
156309 .dst_constraints = .{ .{ .float = .qword }, .any },
156310 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
156311 .patterns = &.{
156312 .{ .src = .{ .to_mem, .none, .none } },
156313 },
156314 .extra_temps = .{
156315 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
156316 .unused,
156317 .unused,
156318 .unused,
156319 .unused,
156320 .unused,
156321 .unused,
156322 .unused,
156323 .unused,
156324 .unused,
156325 .unused,
156326 },
156327 .dst_temps = .{ .{ .rc = .sse }, .unused },
156328 .each = .{ .once = &.{
156329 .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ },
156330 .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
156331 .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp0y, ._ },
156332 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
156333 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp0x, ._ },
156334 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
156335 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ },
156336 } },
156337 }, .{
156338 .required_features = .{ .avx, .fast_hops, null, null },
156339 .dst_constraints = .{ .{ .float = .qword }, .any },
156340 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
156341 .patterns = &.{
156342 .{ .src = .{ .to_mem, .none, .none } },
156343 },
156344 .extra_temps = .{
156345 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156346 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156347 .unused,
156348 .unused,
156349 .unused,
156350 .unused,
156351 .unused,
156352 .unused,
156353 .unused,
156354 .unused,
156355 .unused,
156356 },
156357 .dst_temps = .{ .{ .rc = .sse }, .unused },
156358 .clobbers = .{ .eflags = true },
156359 .each = .{ .once = &.{
156360 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
156361 .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
156362 .{ .@"0:", .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
156363 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
156364 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156365 .{ ._, .vh_pd, .add, .dst0y, .dst0y, .dst0y, ._ },
156366 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
156367 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp1x, ._ },
156368 } },
156369 }, .{
156370 .required_features = .{ .avx, null, null, null },
156371 .dst_constraints = .{ .{ .float = .qword }, .any },
156372 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
156373 .patterns = &.{
156374 .{ .src = .{ .to_mem, .none, .none } },
156375 },
156376 .extra_temps = .{
156377 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156378 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
156379 .unused,
156380 .unused,
156381 .unused,
156382 .unused,
156383 .unused,
156384 .unused,
156385 .unused,
156386 .unused,
156387 .unused,
156388 },
156389 .dst_temps = .{ .{ .rc = .sse }, .unused },
156390 .clobbers = .{ .eflags = true },
156391 .each = .{ .once = &.{
156392 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
156393 .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
156394 .{ .@"0:", .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
156395 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
156396 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156397 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
156398 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ },
156399 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
156400 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp1x, ._ },
156401 } },
156402 }, .{
156403 .required_features = .{ .sse3, .fast_hops, null, null },
156404 .dst_constraints = .{ .{ .float = .qword }, .any },
156405 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
156406 .patterns = &.{
156407 .{ .src = .{ .to_mem, .none, .none } },
156408 },
156409 .extra_temps = .{
156410 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156411 .unused,
156412 .unused,
156413 .unused,
156414 .unused,
156415 .unused,
156416 .unused,
156417 .unused,
156418 .unused,
156419 .unused,
156420 .unused,
156421 },
156422 .dst_temps = .{ .{ .rc = .sse }, .unused },
156423 .clobbers = .{ .eflags = true },
156424 .each = .{ .once = &.{
156425 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
156426 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
156427 .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
156428 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156429 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156430 .{ ._, .h_pd, .add, .dst0x, .dst0x, ._, ._ },
156431 } },
156432 }, .{
156433 .required_features = .{ .sse2, null, null, null },
156434 .dst_constraints = .{ .{ .float = .qword }, .any },
156435 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
156436 .patterns = &.{
156437 .{ .src = .{ .to_mem, .none, .none } },
156438 },
156439 .extra_temps = .{
156440 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156441 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156442 .unused,
156443 .unused,
156444 .unused,
156445 .unused,
156446 .unused,
156447 .unused,
156448 .unused,
156449 .unused,
156450 .unused,
156451 },
156452 .dst_temps = .{ .{ .rc = .sse }, .unused },
156453 .clobbers = .{ .eflags = true },
156454 .each = .{ .once = &.{
156455 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
156456 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
156457 .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
156458 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156459 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156460 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
156461 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
156462 .{ ._, ._sd, .add, .dst0x, .tmp1x, ._, ._ },
156463 } },
156464 }, .{
156465 .required_features = .{ .avx512f, null, null, null },
156466 .dst_constraints = .{ .{ .float = .qword }, .any },
156467 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
156468 .patterns = &.{
156469 .{ .src = .{ .to_mem, .none, .none } },
156470 },
156471 .extra_temps = .{
156472 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156473 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156474 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
156475 .unused,
156476 .unused,
156477 .unused,
156478 .unused,
156479 .unused,
156480 .unused,
156481 .unused,
156482 .unused,
156483 },
156484 .dst_temps = .{ .{ .rc = .sse }, .unused },
156485 .clobbers = .{ .eflags = true },
156486 .each = .{ .once = &.{
156487 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156488 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
156489 .{ ._, .v_pd, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
156490 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
156491 .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
156492 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
156493 .{ .@"0:", .v_pd, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
156494 .{ ._, .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
156495 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
156496 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156497 .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ },
156498 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
156499 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ },
156500 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
156501 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ },
156502 } },
156503 }, .{
156504 .required_features = .{ .avx, .fast_hops, null, null },
156505 .dst_constraints = .{ .{ .float = .qword }, .any },
156506 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
156507 .patterns = &.{
156508 .{ .src = .{ .to_mem, .none, .none } },
156509 },
156510 .extra_temps = .{
156511 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156512 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156513 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156514 .unused,
156515 .unused,
156516 .unused,
156517 .unused,
156518 .unused,
156519 .unused,
156520 .unused,
156521 .unused,
156522 },
156523 .dst_temps = .{ .{ .rc = .sse }, .unused },
156524 .clobbers = .{ .eflags = true },
156525 .each = .{ .once = &.{
156526 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156527 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
156528 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
156529 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
156530 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
156531 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ },
156532 .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
156533 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156534 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156535 .{ ._, .vh_pd, .add, .dst0x, .dst0x, .dst0x, ._ },
156536 } },
156537 }, .{
156538 .required_features = .{ .avx, null, null, null },
156539 .dst_constraints = .{ .{ .float = .qword }, .any },
156540 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
156541 .patterns = &.{
156542 .{ .src = .{ .to_mem, .none, .none } },
156543 },
156544 .extra_temps = .{
156545 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156546 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156547 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156548 .unused,
156549 .unused,
156550 .unused,
156551 .unused,
156552 .unused,
156553 .unused,
156554 .unused,
156555 .unused,
156556 },
156557 .dst_temps = .{ .{ .rc = .sse }, .unused },
156558 .clobbers = .{ .eflags = true },
156559 .each = .{ .once = &.{
156560 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156561 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
156562 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
156563 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
156564 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
156565 .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ },
156566 .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
156567 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156568 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156569 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
156570 .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ },
156571 } },
156572 }, .{
156573 .required_features = .{ .sse3, .fast_hops, null, null },
156574 .dst_constraints = .{ .{ .float = .qword }, .any },
156575 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
156576 .patterns = &.{
156577 .{ .src = .{ .to_mem, .none, .none } },
156578 },
156579 .extra_temps = .{
156580 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156581 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156582 .unused,
156583 .unused,
156584 .unused,
156585 .unused,
156586 .unused,
156587 .unused,
156588 .unused,
156589 .unused,
156590 .unused,
156591 },
156592 .dst_temps = .{ .{ .rc = .sse }, .unused },
156593 .clobbers = .{ .eflags = true },
156594 .each = .{ .once = &.{
156595 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156596 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
156597 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
156598 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
156599 .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
156600 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156601 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156602 .{ ._, .h_pd, .add, .dst0x, .dst0x, ._, ._ },
156603 } },
156604 }, .{
156605 .required_features = .{ .sse2, null, null, null },
156606 .dst_constraints = .{ .{ .float = .qword }, .any },
156607 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
156608 .patterns = &.{
156609 .{ .src = .{ .to_mem, .none, .none } },
156610 },
156611 .extra_temps = .{
156612 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156613 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156614 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
156615 .unused,
156616 .unused,
156617 .unused,
156618 .unused,
156619 .unused,
156620 .unused,
156621 .unused,
156622 .unused,
156623 },
156624 .dst_temps = .{ .{ .rc = .sse }, .unused },
156625 .clobbers = .{ .eflags = true },
156626 .each = .{ .once = &.{
156627 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156628 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
156629 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
156630 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
156631 .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
156632 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156633 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156634 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
156635 .{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ },
156636 .{ ._, ._sd, .add, .dst0x, .tmp2x, ._, ._ },
156637 } },
156638 }, .{
156639 .required_features = .{ .x87, null, null, null },
156640 .dst_constraints = .{ .{ .float = .qword }, .any },
156641 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
156642 .patterns = &.{
156643 .{ .src = .{ .to_mem, .none, .none } },
156644 },
156645 .extra_temps = .{
156646 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156647 .{ .type = .f64, .kind = .{ .reg = .st7 } },
156648 .unused,
156649 .unused,
156650 .unused,
156651 .unused,
156652 .unused,
156653 .unused,
156654 .unused,
156655 .unused,
156656 .unused,
156657 },
156658 .dst_temps = .{ .mem, .unused },
156659 .clobbers = .{ .eflags = true },
156660 .each = .{ .once = &.{
156661 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
156662 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
156663 .{ .@"0:", .f_, .add, .memi(.src0q, .tmp0), ._, ._, ._ },
156664 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
156665 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156666 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
156667 } },
156668 }, .{
156669 .required_features = .{ .x87, null, null, null },
156670 .dst_constraints = .{ .{ .float = .tbyte }, .any },
156671 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
156672 .patterns = &.{
156673 .{ .src = .{ .to_mem, .none, .none } },
156674 },
156675 .extra_temps = .{
156676 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156677 .{ .type = .f80, .kind = .{ .reg = .st7 } },
156678 .{ .type = .f80, .kind = .{ .reg = .st6 } },
156679 .unused,
156680 .unused,
156681 .unused,
156682 .unused,
156683 .unused,
156684 .unused,
156685 .unused,
156686 .unused,
156687 },
156688 .dst_temps = .{ .{ .rc = .x87 }, .unused },
156689 .clobbers = .{ .eflags = true },
156690 .each = .{ .once = &.{
156691 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
156692 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
156693 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
156694 .{ ._, .f_p, .add, ._, ._, ._, ._ },
156695 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156696 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156697 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
156698 } },
156699 }, .{
156700 .required_features = .{ .avx, null, null, null },
156701 .dst_constraints = .{ .{ .float = .xword }, .any },
156702 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
156703 .patterns = &.{
156704 .{ .src = .{ .to_mem, .none, .none } },
156705 },
156706 .call_frame = .{ .alignment = .@"16" },
156707 .extra_temps = .{
156708 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156709 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
156710 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
156711 .unused,
156712 .unused,
156713 .unused,
156714 .unused,
156715 .unused,
156716 .unused,
156717 .unused,
156718 .unused,
156719 },
156720 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
156721 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
156722 .each = .{ .once = &.{
156723 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
156724 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
156725 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
156726 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
156727 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156728 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156729 } },
156730 }, .{
156731 .required_features = .{ .sse2, null, null, null },
156732 .dst_constraints = .{ .{ .float = .xword }, .any },
156733 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
156734 .patterns = &.{
156735 .{ .src = .{ .to_mem, .none, .none } },
156736 },
156737 .call_frame = .{ .alignment = .@"16" },
156738 .extra_temps = .{
156739 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156740 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
156741 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
156742 .unused,
156743 .unused,
156744 .unused,
156745 .unused,
156746 .unused,
156747 .unused,
156748 .unused,
156749 .unused,
156750 },
156751 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
156752 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
156753 .each = .{ .once = &.{
156754 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
156755 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
156756 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
156757 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
156758 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156759 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156760 } },
156761 }, .{
156762 .required_features = .{ .sse, null, null, null },
156763 .dst_constraints = .{ .{ .float = .xword }, .any },
156764 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
156765 .patterns = &.{
156766 .{ .src = .{ .to_mem, .none, .none } },
156767 },
156768 .call_frame = .{ .alignment = .@"16" },
156769 .extra_temps = .{
156770 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
156771 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
156772 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } },
156773 .unused,
156774 .unused,
156775 .unused,
156776 .unused,
156777 .unused,
156778 .unused,
156779 .unused,
156780 .unused,
156781 },
156782 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
156783 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
156784 .each = .{ .once = &.{
156785 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
156786 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
156787 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
156788 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
156789 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
156790 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
156791 } },
156792 } },
156793 .Mul => comptime &.{ .{
156794 .required_features = .{ .f16c, null, null, null },
156795 .dst_constraints = .{ .{ .float = .word }, .any },
156796 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any },
156797 .patterns = &.{
156798 .{ .src = .{ .mem, .none, .none } },
156799 .{ .src = .{ .to_sse, .none, .none } },
156800 },
156801 .extra_temps = .{
156802 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
156803 .unused,
156804 .unused,
156805 .unused,
156806 .unused,
156807 .unused,
156808 .unused,
156809 .unused,
156810 .unused,
156811 .unused,
156812 .unused,
156813 },
156814 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156815 .each = .{ .once = &.{
156816 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
156817 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
156818 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
156819 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
156820 } },
156821 }, .{
156822 .required_features = .{ .f16c, null, null, null },
156823 .dst_constraints = .{ .{ .float = .word }, .any },
156824 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
156825 .patterns = &.{
156826 .{ .src = .{ .mem, .none, .none } },
156827 .{ .src = .{ .to_sse, .none, .none } },
156828 },
156829 .extra_temps = .{
156830 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
156831 .unused,
156832 .unused,
156833 .unused,
156834 .unused,
156835 .unused,
156836 .unused,
156837 .unused,
156838 .unused,
156839 .unused,
156840 .unused,
156841 },
156842 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156843 .each = .{ .once = &.{
156844 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
156845 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
156846 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
156847 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
156848 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
156849 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
156850 } },
156851 }, .{
156852 .required_features = .{ .f16c, null, null, null },
156853 .dst_constraints = .{ .{ .float = .word }, .any },
156854 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any },
156855 .patterns = &.{
156856 .{ .src = .{ .mem, .none, .none } },
156857 .{ .src = .{ .to_sse, .none, .none } },
156858 },
156859 .extra_temps = .{
156860 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
156861 .unused,
156862 .unused,
156863 .unused,
156864 .unused,
156865 .unused,
156866 .unused,
156867 .unused,
156868 .unused,
156869 .unused,
156870 .unused,
156871 },
156872 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156873 .each = .{ .once = &.{
156874 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
156875 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
156876 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
156877 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
156878 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
156879 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
156880 } },
156881 }, .{
156882 .required_features = .{ .f16c, null, null, null },
156883 .dst_constraints = .{ .{ .float = .word }, .any },
156884 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
156885 .patterns = &.{
156886 .{ .src = .{ .to_sse, .none, .none } },
156887 },
156888 .extra_temps = .{
156889 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
156890 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156891 .{ .type = .vector_8_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
156892 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
156893 .unused,
156894 .unused,
156895 .unused,
156896 .unused,
156897 .unused,
156898 .unused,
156899 .unused,
156900 },
156901 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156902 .each = .{ .once = &.{
156903 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156904 .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ },
156905 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
156906 .{ ._, .v_ps, .@"or", .dst0x, .src0x, .lea(.tmp0x), ._ },
156907 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
156908 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
156909 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
156910 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
156911 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
156912 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
156913 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
156914 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
156915 } },
156916 }, .{
156917 .required_features = .{ .f16c, null, null, null },
156918 .dst_constraints = .{ .{ .float = .word }, .any },
156919 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
156920 .patterns = &.{
156921 .{ .src = .{ .mem, .none, .none } },
156922 .{ .src = .{ .to_sse, .none, .none } },
156923 },
156924 .extra_temps = .{
156925 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
156926 .unused,
156927 .unused,
156928 .unused,
156929 .unused,
156930 .unused,
156931 .unused,
156932 .unused,
156933 .unused,
156934 .unused,
156935 .unused,
156936 },
156937 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156938 .each = .{ .once = &.{
156939 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
156940 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
156941 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
156942 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
156943 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
156944 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
156945 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
156946 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
156947 } },
156948 }, .{
156949 .required_features = .{ .f16c, null, null, null },
156950 .dst_constraints = .{ .{ .float = .word }, .any },
156951 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
156952 .patterns = &.{
156953 .{ .src = .{ .to_sse, .none, .none } },
156954 },
156955 .extra_temps = .{
156956 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
156957 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
156958 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
156959 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
156960 .unused,
156961 .unused,
156962 .unused,
156963 .unused,
156964 .unused,
156965 .unused,
156966 .unused,
156967 },
156968 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
156969 .each = .{ .once = &.{
156970 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
156971 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
156972 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
156973 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
156974 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
156975 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
156976 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
156977 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
156978 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
156979 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
156980 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
156981 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
156982 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
156983 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
156984 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
156985 } },
156986 }, .{
156987 .required_features = .{ .f16c, null, null, null },
156988 .dst_constraints = .{ .{ .float = .word }, .any },
156989 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
156990 .patterns = &.{
156991 .{ .src = .{ .to_sse, .none, .none } },
156992 },
156993 .extra_temps = .{
156994 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
156995 .unused,
156996 .unused,
156997 .unused,
156998 .unused,
156999 .unused,
157000 .unused,
157001 .unused,
157002 .unused,
157003 .unused,
157004 .unused,
157005 },
157006 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157007 .each = .{ .once = &.{
157008 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
157009 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
157010 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
157011 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ },
157012 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
157013 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157014 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
157015 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157016 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
157017 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157018 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
157019 } },
157020 }, .{
157021 .required_features = .{ .avx512f, null, null, null },
157022 .dst_constraints = .{ .{ .float = .word }, .any },
157023 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
157024 .patterns = &.{
157025 .{ .src = .{ .to_mem, .none, .none } },
157026 },
157027 .extra_temps = .{
157028 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
157029 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157030 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157031 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157032 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157033 .unused,
157034 .unused,
157035 .unused,
157036 .unused,
157037 .unused,
157038 .unused,
157039 },
157040 .dst_temps = .{ .{ .rc = .sse }, .unused },
157041 .each = .{ .once = &.{
157042 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157043 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
157044 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
157045 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157046 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
157047 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
157048 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
157049 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
157050 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
157051 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
157052 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
157053 .{ ._, .v_ps, .mul, .tmp3y, .tmp3y, .tmp4y, ._ },
157054 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
157055 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
157056 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
157057 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp4y, ._ },
157058 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
157059 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157060 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157061 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
157062 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157063 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
157064 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157065 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
157066 } },
157067 }, .{
157068 .required_features = .{ .avx512f, null, null, null },
157069 .dst_constraints = .{ .{ .float = .word }, .any },
157070 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
157071 .patterns = &.{
157072 .{ .src = .{ .to_mem, .none, .none } },
157073 },
157074 .extra_temps = .{
157075 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157076 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157077 .unused,
157078 .unused,
157079 .unused,
157080 .unused,
157081 .unused,
157082 .unused,
157083 .unused,
157084 .unused,
157085 .unused,
157086 },
157087 .dst_temps = .{ .{ .rc = .sse }, .unused },
157088 .each = .{ .once = &.{
157089 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
157090 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
157091 .{ ._, .v_f128, .extract, .tmp1x, .tmp0y, .ui(1), ._ },
157092 .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ },
157093 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
157094 .{ ._, .v_ps, .mul, .tmp0y, .tmp0y, .tmp1y, ._ },
157095 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
157096 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
157097 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
157098 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp1y, ._ },
157099 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ },
157100 .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
157101 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157102 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10) },
157103 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157104 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
157105 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157106 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
157107 } },
157108 }, .{
157109 .required_features = .{ .f16c, null, null, null },
157110 .dst_constraints = .{ .{ .float = .word }, .any },
157111 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any },
157112 .patterns = &.{
157113 .{ .src = .{ .to_mem, .none, .none } },
157114 },
157115 .extra_temps = .{
157116 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157117 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157118 .unused,
157119 .unused,
157120 .unused,
157121 .unused,
157122 .unused,
157123 .unused,
157124 .unused,
157125 .unused,
157126 .unused,
157127 },
157128 .dst_temps = .{ .{ .rc = .sse }, .unused },
157129 .clobbers = .{ .eflags = true },
157130 .each = .{ .once = &.{
157131 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
157132 .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
157133 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
157134 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp1y, ._ },
157135 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
157136 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157137 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
157138 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
157139 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10) },
157140 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
157141 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
157142 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
157143 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
157144 } },
157145 }, .{
157146 .required_features = .{ .avx512f, null, null, null },
157147 .dst_constraints = .{ .{ .float = .word }, .any },
157148 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any },
157149 .patterns = &.{
157150 .{ .src = .{ .to_mem, .none, .none } },
157151 },
157152 .extra_temps = .{
157153 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157154 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157155 .{ .type = .vector_32_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157156 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157157 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157158 .unused,
157159 .unused,
157160 .unused,
157161 .unused,
157162 .unused,
157163 .unused,
157164 },
157165 .dst_temps = .{ .{ .rc = .sse }, .unused },
157166 .clobbers = .{ .eflags = true },
157167 .each = .{ .once = &.{
157168 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157169 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
157170 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
157171 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157172 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
157173 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
157174 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
157175 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
157176 .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ },
157177 .{ ._, .v_f128, .extract, .tmp4x, .tmp3y, .ui(1), ._ },
157178 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
157179 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
157180 .{ ._, .v_ps, .mul, .tmp3y, .tmp3y, .tmp4y, ._ },
157181 .{ ._, .v_f128, .extract, .tmp4x, .dst0y, .ui(1), ._ },
157182 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
157183 .{ ._, .v_ps, .cvtph2, .tmp4y, .tmp4x, ._, ._ },
157184 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp4y, ._ },
157185 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
157186 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
157187 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
157188 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
157189 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157190 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157191 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157192 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
157193 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157194 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
157195 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157196 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
157197 } },
157198 }, .{
157199 .required_features = .{ .f16c, null, null, null },
157200 .dst_constraints = .{ .{ .float = .word }, .any },
157201 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any },
157202 .patterns = &.{
157203 .{ .src = .{ .to_mem, .none, .none } },
157204 },
157205 .extra_temps = .{
157206 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157207 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157208 .{ .type = .vector_16_f16, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157209 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157210 .unused,
157211 .unused,
157212 .unused,
157213 .unused,
157214 .unused,
157215 .unused,
157216 .unused,
157217 },
157218 .dst_temps = .{ .{ .rc = .sse }, .unused },
157219 .clobbers = .{ .eflags = true },
157220 .each = .{ .once = &.{
157221 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157222 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
157223 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157224 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
157225 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
157226 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
157227 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157228 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
157229 .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ },
157230 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
157231 .{ .@"0:", .v_ps, .cvtph2, .tmp3y, .memi(.src0x, .tmp0), ._, ._ },
157232 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
157233 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
157234 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157235 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157236 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157237 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b11_10) },
157238 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157239 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
157240 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157241 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
157242 } },
157243 }, .{
157244 .required_features = .{ .avx, null, null, null },
157245 .dst_constraints = .{ .{ .float = .word }, .any },
157246 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
157247 .patterns = &.{
157248 .{ .src = .{ .to_mem, .none, .none } },
157249 },
157250 .call_frame = .{ .alignment = .@"16" },
157251 .extra_temps = .{
157252 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157253 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
157254 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
157255 .unused,
157256 .unused,
157257 .unused,
157258 .unused,
157259 .unused,
157260 .unused,
157261 .unused,
157262 .unused,
157263 },
157264 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
157265 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
157266 .each = .{ .once = &.{
157267 .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ },
157268 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
157269 .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) },
157270 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
157271 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
157272 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
157273 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
157274 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157275 } },
157276 }, .{
157277 .required_features = .{ .sse2, null, null, null },
157278 .dst_constraints = .{ .{ .float = .word }, .any },
157279 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
157280 .patterns = &.{
157281 .{ .src = .{ .to_mem, .none, .none } },
157282 },
157283 .call_frame = .{ .alignment = .@"16" },
157284 .extra_temps = .{
157285 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157286 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
157287 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
157288 .unused,
157289 .unused,
157290 .unused,
157291 .unused,
157292 .unused,
157293 .unused,
157294 .unused,
157295 .unused,
157296 },
157297 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
157298 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
157299 .each = .{ .once = &.{
157300 .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ },
157301 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
157302 .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ },
157303 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
157304 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
157305 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
157306 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
157307 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157308 } },
157309 }, .{
157310 .required_features = .{ .sse, null, null, null },
157311 .dst_constraints = .{ .{ .float = .word }, .any },
157312 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any },
157313 .patterns = &.{
157314 .{ .src = .{ .to_mem, .none, .none } },
157315 },
157316 .call_frame = .{ .alignment = .@"16" },
157317 .extra_temps = .{
157318 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157319 .{ .type = .f16, .kind = .{ .reg = .ax } },
157320 .{ .type = .f32, .kind = .mem },
157321 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
157322 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
157323 .unused,
157324 .unused,
157325 .unused,
157326 .unused,
157327 .unused,
157328 .unused,
157329 },
157330 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
157331 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
157332 .each = .{ .once = &.{
157333 .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ },
157334 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
157335 .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
157336 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
157337 .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ },
157338 .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
157339 .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ },
157340 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
157341 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
157342 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157343 } },
157344 }, .{
157345 .required_features = .{ .avx, null, null, null },
157346 .dst_constraints = .{ .{ .float = .dword }, .any },
157347 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
157348 .patterns = &.{
157349 .{ .src = .{ .to_sse, .none, .none } },
157350 },
157351 .extra_temps = .{
157352 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157353 .unused,
157354 .unused,
157355 .unused,
157356 .unused,
157357 .unused,
157358 .unused,
157359 .unused,
157360 .unused,
157361 .unused,
157362 .unused,
157363 },
157364 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157365 .each = .{ .once = &.{
157366 .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01) },
157367 .{ ._, .v_ss, .mul, .dst0x, .src0x, .tmp0x, ._ },
157368 } },
157369 }, .{
157370 .required_features = .{ .sse, null, null, null },
157371 .dst_constraints = .{ .{ .float = .dword }, .any },
157372 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any },
157373 .patterns = &.{
157374 .{ .src = .{ .to_mut_sse, .none, .none } },
157375 },
157376 .extra_temps = .{
157377 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157378 .unused,
157379 .unused,
157380 .unused,
157381 .unused,
157382 .unused,
157383 .unused,
157384 .unused,
157385 .unused,
157386 .unused,
157387 .unused,
157388 },
157389 .dst_temps = .{ .{ .ref = .src0 }, .unused },
157390 .each = .{ .once = &.{
157391 .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ },
157392 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
157393 .{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
157394 } },
157395 }, .{
157396 .required_features = .{ .avx, null, null, null },
157397 .dst_constraints = .{ .{ .float = .dword }, .any },
157398 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
157399 .patterns = &.{
157400 .{ .src = .{ .to_sse, .none, .none } },
157401 },
157402 .extra_temps = .{
157403 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157404 .unused,
157405 .unused,
157406 .unused,
157407 .unused,
157408 .unused,
157409 .unused,
157410 .unused,
157411 .unused,
157412 .unused,
157413 .unused,
157414 },
157415 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157416 .each = .{ .once = &.{
157417 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
157418 .{ ._, .v_ss, .mul, .tmp0x, .src0x, .tmp0x, ._ },
157419 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01) },
157420 .{ ._, .v_ss, .mul, .dst0x, .tmp0x, .dst0x, ._ },
157421 } },
157422 }, .{
157423 .required_features = .{ .sse, null, null, null },
157424 .dst_constraints = .{ .{ .float = .dword }, .any },
157425 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
157426 .patterns = &.{
157427 .{ .src = .{ .to_mut_sse, .none, .none } },
157428 },
157429 .extra_temps = .{
157430 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157431 .unused,
157432 .unused,
157433 .unused,
157434 .unused,
157435 .unused,
157436 .unused,
157437 .unused,
157438 .unused,
157439 .unused,
157440 .unused,
157441 },
157442 .dst_temps = .{ .{ .ref = .src0 }, .unused },
157443 .each = .{ .once = &.{
157444 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
157445 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
157446 .{ ._, ._ss, .mul, .tmp0x, .src0x, ._, ._ },
157447 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01), ._ },
157448 .{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
157449 } },
157450 }, .{
157451 .required_features = .{ .avx, null, null, null },
157452 .dst_constraints = .{ .{ .float = .dword }, .any },
157453 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
157454 .patterns = &.{
157455 .{ .src = .{ .to_sse, .none, .none } },
157456 },
157457 .extra_temps = .{
157458 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157459 .unused,
157460 .unused,
157461 .unused,
157462 .unused,
157463 .unused,
157464 .unused,
157465 .unused,
157466 .unused,
157467 .unused,
157468 .unused,
157469 },
157470 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157471 .each = .{ .once = &.{
157472 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
157473 .{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp0x, ._ },
157474 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
157475 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157476 } },
157477 }, .{
157478 .required_features = .{ .sse, null, null, null },
157479 .dst_constraints = .{ .{ .float = .dword }, .any },
157480 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
157481 .patterns = &.{
157482 .{ .src = .{ .to_mut_sse, .none, .none } },
157483 },
157484 .extra_temps = .{
157485 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157486 .unused,
157487 .unused,
157488 .unused,
157489 .unused,
157490 .unused,
157491 .unused,
157492 .unused,
157493 .unused,
157494 .unused,
157495 .unused,
157496 },
157497 .dst_temps = .{ .{ .ref = .src0 }, .unused },
157498 .each = .{ .once = &.{
157499 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
157500 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
157501 .{ ._, ._ps, .mul, .dst0x, .tmp0x, ._, ._ },
157502 .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ },
157503 .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01), ._ },
157504 .{ ._, ._ss, .mul, .dst0x, .tmp0x, ._, ._ },
157505 } },
157506 }, .{
157507 .required_features = .{ .avx, null, null, null },
157508 .dst_constraints = .{ .{ .float = .dword }, .any },
157509 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
157510 .patterns = &.{
157511 .{ .src = .{ .to_sse, .none, .none } },
157512 },
157513 .extra_temps = .{
157514 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
157515 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157516 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157517 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157518 .unused,
157519 .unused,
157520 .unused,
157521 .unused,
157522 .unused,
157523 .unused,
157524 .unused,
157525 },
157526 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157527 .each = .{ .once = &.{
157528 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157529 .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ },
157530 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157531 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
157532 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157533 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157534 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
157535 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157536 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
157537 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157538 } },
157539 }, .{
157540 .required_features = .{ .avx, null, null, null },
157541 .dst_constraints = .{ .{ .float = .dword }, .any },
157542 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
157543 .patterns = &.{
157544 .{ .src = .{ .to_sse, .none, .none } },
157545 },
157546 .extra_temps = .{
157547 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157548 .unused,
157549 .unused,
157550 .unused,
157551 .unused,
157552 .unused,
157553 .unused,
157554 .unused,
157555 .unused,
157556 .unused,
157557 .unused,
157558 },
157559 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157560 .each = .{ .once = &.{
157561 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
157562 .{ ._, .v_ps, .mul, .dst0x, .src0x, .tmp0x, ._ },
157563 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
157564 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157565 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
157566 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157567 } },
157568 }, .{
157569 .required_features = .{ .avx512f, null, null, null },
157570 .dst_constraints = .{ .{ .float = .dword }, .any },
157571 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
157572 .patterns = &.{
157573 .{ .src = .{ .to_mem, .none, .none } },
157574 },
157575 .extra_temps = .{
157576 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
157577 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157578 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157579 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157580 .unused,
157581 .unused,
157582 .unused,
157583 .unused,
157584 .unused,
157585 .unused,
157586 .unused,
157587 },
157588 .dst_temps = .{ .{ .rc = .sse }, .unused },
157589 .each = .{ .once = &.{
157590 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157591 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
157592 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
157593 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157594 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
157595 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
157596 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
157597 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
157598 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
157599 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157600 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157601 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
157602 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157603 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
157604 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157605 } },
157606 }, .{
157607 .required_features = .{ .avx512f, null, null, null },
157608 .dst_constraints = .{ .{ .float = .dword }, .any },
157609 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
157610 .patterns = &.{
157611 .{ .src = .{ .to_mem, .none, .none } },
157612 },
157613 .extra_temps = .{
157614 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157615 .unused,
157616 .unused,
157617 .unused,
157618 .unused,
157619 .unused,
157620 .unused,
157621 .unused,
157622 .unused,
157623 .unused,
157624 .unused,
157625 },
157626 .dst_temps = .{ .{ .rc = .sse }, .unused },
157627 .each = .{ .once = &.{
157628 .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ },
157629 .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
157630 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ },
157631 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
157632 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157633 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
157634 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157635 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01) },
157636 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157637 } },
157638 }, .{
157639 .required_features = .{ .avx, null, null, null },
157640 .dst_constraints = .{ .{ .float = .dword }, .any },
157641 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
157642 .patterns = &.{
157643 .{ .src = .{ .to_mem, .none, .none } },
157644 },
157645 .extra_temps = .{
157646 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157647 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157648 .unused,
157649 .unused,
157650 .unused,
157651 .unused,
157652 .unused,
157653 .unused,
157654 .unused,
157655 .unused,
157656 .unused,
157657 },
157658 .dst_temps = .{ .{ .rc = .sse }, .unused },
157659 .clobbers = .{ .eflags = true },
157660 .each = .{ .once = &.{
157661 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
157662 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
157663 .{ .@"0:", .v_ps, .mul, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
157664 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
157665 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157666 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
157667 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
157668 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
157669 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp1x, ._ },
157670 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01) },
157671 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp1x, ._ },
157672 } },
157673 }, .{
157674 .required_features = .{ .sse, null, null, null },
157675 .dst_constraints = .{ .{ .float = .dword }, .any },
157676 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
157677 .patterns = &.{
157678 .{ .src = .{ .to_mem, .none, .none } },
157679 },
157680 .extra_temps = .{
157681 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157682 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157683 .unused,
157684 .unused,
157685 .unused,
157686 .unused,
157687 .unused,
157688 .unused,
157689 .unused,
157690 .unused,
157691 .unused,
157692 },
157693 .dst_temps = .{ .{ .rc = .sse }, .unused },
157694 .clobbers = .{ .eflags = true },
157695 .each = .{ .once = &.{
157696 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
157697 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
157698 .{ .@"0:", ._ps, .mul, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
157699 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
157700 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157701 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
157702 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
157703 .{ ._, ._ps, .mul, .dst0x, .tmp1x, ._, ._ },
157704 .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ },
157705 .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01), ._ },
157706 .{ ._, ._ss, .mul, .dst0x, .tmp1x, ._, ._ },
157707 } },
157708 }, .{
157709 .required_features = .{ .avx512f, null, null, null },
157710 .dst_constraints = .{ .{ .float = .dword }, .any },
157711 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any },
157712 .patterns = &.{
157713 .{ .src = .{ .to_mem, .none, .none } },
157714 },
157715 .extra_temps = .{
157716 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157717 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157718 .{ .type = .vector_16_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157719 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157720 .unused,
157721 .unused,
157722 .unused,
157723 .unused,
157724 .unused,
157725 .unused,
157726 .unused,
157727 },
157728 .dst_temps = .{ .{ .rc = .sse }, .unused },
157729 .clobbers = .{ .eflags = true },
157730 .each = .{ .once = &.{
157731 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157732 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
157733 .{ ._, .v_ps, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
157734 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157735 .{ ._, .v_ps, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
157736 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
157737 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
157738 .{ ._, .v_ps, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
157739 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
157740 .{ .@"0:", .v_ps, .mul, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
157741 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
157742 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
157743 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157744 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp3y, ._ },
157745 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157746 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157747 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
157748 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157749 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
157750 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157751 } },
157752 }, .{
157753 .required_features = .{ .avx, null, null, null },
157754 .dst_constraints = .{ .{ .float = .dword }, .any },
157755 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any },
157756 .patterns = &.{
157757 .{ .src = .{ .to_mem, .none, .none } },
157758 },
157759 .extra_temps = .{
157760 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157761 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157762 .{ .type = .vector_8_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157763 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157764 .unused,
157765 .unused,
157766 .unused,
157767 .unused,
157768 .unused,
157769 .unused,
157770 .unused,
157771 },
157772 .dst_temps = .{ .{ .rc = .sse }, .unused },
157773 .clobbers = .{ .eflags = true },
157774 .each = .{ .once = &.{
157775 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157776 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
157777 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157778 .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
157779 .{ ._, .v_ps, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
157780 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
157781 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157782 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157783 .{ .@"0:", .v_ps, .mul, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
157784 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
157785 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157786 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
157787 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157788 .{ ._, .v_ps, .shuf, .tmp3x, .dst0x, .dst0x, .ui(0b01) },
157789 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157790 } },
157791 }, .{
157792 .required_features = .{ .sse, null, null, null },
157793 .dst_constraints = .{ .{ .float = .dword }, .any },
157794 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any },
157795 .patterns = &.{
157796 .{ .src = .{ .to_mem, .none, .none } },
157797 },
157798 .extra_temps = .{
157799 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
157800 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157801 .{ .type = .vector_4_f32, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157802 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157803 .unused,
157804 .unused,
157805 .unused,
157806 .unused,
157807 .unused,
157808 .unused,
157809 .unused,
157810 },
157811 .dst_temps = .{ .{ .rc = .sse }, .unused },
157812 .clobbers = .{ .eflags = true },
157813 .each = .{ .once = &.{
157814 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157815 .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
157816 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157817 .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
157818 .{ ._, ._ps, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
157819 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
157820 .{ .@"0:", ._ps, .mul, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
157821 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
157822 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
157823 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
157824 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
157825 .{ ._, ._ps, .mul, .dst0x, .tmp3x, ._, ._ },
157826 .{ ._, ._ps, .mova, .tmp3x, .dst0x, ._, ._ },
157827 .{ ._, ._ps, .shuf, .tmp3x, .tmp3x, .ui(0b01), ._ },
157828 .{ ._, ._ss, .mul, .dst0x, .tmp3x, ._, ._ },
157829 } },
157830 }, .{
157831 .required_features = .{ .avx, null, null, null },
157832 .dst_constraints = .{ .{ .float = .qword }, .any },
157833 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
157834 .patterns = &.{
157835 .{ .src = .{ .to_sse, .none, .none } },
157836 },
157837 .extra_temps = .{
157838 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
157839 .unused,
157840 .unused,
157841 .unused,
157842 .unused,
157843 .unused,
157844 .unused,
157845 .unused,
157846 .unused,
157847 .unused,
157848 .unused,
157849 },
157850 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157851 .each = .{ .once = &.{
157852 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
157853 .{ ._, .v_sd, .mul, .dst0x, .src0x, .tmp0x, ._ },
157854 } },
157855 }, .{
157856 .required_features = .{ .sse2, null, null, null },
157857 .dst_constraints = .{ .{ .float = .qword }, .any },
157858 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
157859 .patterns = &.{
157860 .{ .src = .{ .to_mut_sse, .none, .none } },
157861 },
157862 .extra_temps = .{
157863 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
157864 .unused,
157865 .unused,
157866 .unused,
157867 .unused,
157868 .unused,
157869 .unused,
157870 .unused,
157871 .unused,
157872 .unused,
157873 .unused,
157874 },
157875 .dst_temps = .{ .{ .ref = .src0 }, .unused },
157876 .each = .{ .once = &.{
157877 .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ },
157878 .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ },
157879 .{ ._, ._sd, .mul, .dst0x, .tmp0x, ._, ._ },
157880 } },
157881 }, .{
157882 .required_features = .{ .avx, null, null, null },
157883 .dst_constraints = .{ .{ .float = .qword }, .any },
157884 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
157885 .patterns = &.{
157886 .{ .src = .{ .to_sse, .none, .none } },
157887 },
157888 .extra_temps = .{
157889 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
157890 .unused,
157891 .unused,
157892 .unused,
157893 .unused,
157894 .unused,
157895 .unused,
157896 .unused,
157897 .unused,
157898 .unused,
157899 .unused,
157900 },
157901 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157902 .each = .{ .once = &.{
157903 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
157904 .{ ._, .v_sd, .mul, .tmp0x, .src0x, .tmp0x, ._ },
157905 .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ },
157906 .{ ._, .v_sd, .mul, .dst0x, .tmp0x, .dst0x, ._ },
157907 } },
157908 }, .{
157909 .required_features = .{ .avx, null, null, null },
157910 .dst_constraints = .{ .{ .float = .qword }, .any },
157911 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
157912 .patterns = &.{
157913 .{ .src = .{ .to_sse, .none, .none } },
157914 },
157915 .extra_temps = .{
157916 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
157917 .unused,
157918 .unused,
157919 .unused,
157920 .unused,
157921 .unused,
157922 .unused,
157923 .unused,
157924 .unused,
157925 .unused,
157926 .unused,
157927 },
157928 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
157929 .each = .{ .once = &.{
157930 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
157931 .{ ._, .v_pd, .mul, .dst0x, .src0x, .tmp0x, ._ },
157932 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
157933 .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157934 } },
157935 }, .{
157936 .required_features = .{ .avx512f, null, null, null },
157937 .dst_constraints = .{ .{ .float = .qword }, .any },
157938 .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
157939 .patterns = &.{
157940 .{ .src = .{ .to_mem, .none, .none } },
157941 },
157942 .extra_temps = .{
157943 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
157944 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
157945 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
157946 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
157947 .unused,
157948 .unused,
157949 .unused,
157950 .unused,
157951 .unused,
157952 .unused,
157953 .unused,
157954 },
157955 .dst_temps = .{ .{ .rc = .sse }, .unused },
157956 .each = .{ .once = &.{
157957 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
157958 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
157959 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
157960 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
157961 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ },
157962 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memd(.src0y, 32), ._ },
157963 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
157964 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
157965 .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp3y, ._ },
157966 .{ ._, .v_i128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
157967 .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157968 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
157969 .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp3x, ._ },
157970 } },
157971 }, .{
157972 .required_features = .{ .avx512f, null, null, null },
157973 .dst_constraints = .{ .{ .float = .qword }, .any },
157974 .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
157975 .patterns = &.{
157976 .{ .src = .{ .to_mem, .none, .none } },
157977 },
157978 .extra_temps = .{
157979 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
157980 .unused,
157981 .unused,
157982 .unused,
157983 .unused,
157984 .unused,
157985 .unused,
157986 .unused,
157987 .unused,
157988 .unused,
157989 .unused,
157990 },
157991 .dst_temps = .{ .{ .rc = .sse }, .unused },
157992 .each = .{ .once = &.{
157993 .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ },
157994 .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ },
157995 .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp0y, ._ },
157996 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
157997 .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp0x, ._ },
157998 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
157999 .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp0x, ._ },
158000 } },
158001 }, .{
158002 .required_features = .{ .avx, null, null, null },
158003 .dst_constraints = .{ .{ .float = .qword }, .any },
158004 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
158005 .patterns = &.{
158006 .{ .src = .{ .to_mem, .none, .none } },
158007 },
158008 .extra_temps = .{
158009 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158010 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
158011 .unused,
158012 .unused,
158013 .unused,
158014 .unused,
158015 .unused,
158016 .unused,
158017 .unused,
158018 .unused,
158019 .unused,
158020 },
158021 .dst_temps = .{ .{ .rc = .sse }, .unused },
158022 .clobbers = .{ .eflags = true },
158023 .each = .{ .once = &.{
158024 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
158025 .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
158026 .{ .@"0:", .v_pd, .mul, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
158027 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
158028 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158029 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
158030 .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp1x, ._ },
158031 .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ },
158032 .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp1x, ._ },
158033 } },
158034 }, .{
158035 .required_features = .{ .sse2, null, null, null },
158036 .dst_constraints = .{ .{ .float = .qword }, .any },
158037 .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
158038 .patterns = &.{
158039 .{ .src = .{ .to_mem, .none, .none } },
158040 },
158041 .extra_temps = .{
158042 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158043 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
158044 .unused,
158045 .unused,
158046 .unused,
158047 .unused,
158048 .unused,
158049 .unused,
158050 .unused,
158051 .unused,
158052 .unused,
158053 },
158054 .dst_temps = .{ .{ .rc = .sse }, .unused },
158055 .clobbers = .{ .eflags = true },
158056 .each = .{ .once = &.{
158057 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
158058 .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
158059 .{ .@"0:", ._pd, .mul, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
158060 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
158061 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158062 .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
158063 .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ },
158064 .{ ._, ._sd, .mul, .dst0x, .tmp1x, ._, ._ },
158065 } },
158066 }, .{
158067 .required_features = .{ .avx512f, null, null, null },
158068 .dst_constraints = .{ .{ .float = .qword }, .any },
158069 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any },
158070 .patterns = &.{
158071 .{ .src = .{ .to_mem, .none, .none } },
158072 },
158073 .extra_temps = .{
158074 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158075 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
158076 .{ .type = .vector_8_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
158077 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
158078 .unused,
158079 .unused,
158080 .unused,
158081 .unused,
158082 .unused,
158083 .unused,
158084 .unused,
158085 },
158086 .dst_temps = .{ .{ .rc = .sse }, .unused },
158087 .clobbers = .{ .eflags = true },
158088 .each = .{ .once = &.{
158089 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
158090 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
158091 .{ ._, .v_pd, .mova, .tmp3y, .lead(.tmp0y, 32), ._, ._ },
158092 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
158093 .{ ._, .v_pd, .@"and", .tmp3y, .tmp3y, .memad(.src0y, .add_size, -32), ._ },
158094 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
158095 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
158096 .{ ._, .v_pd, .@"or", .tmp3y, .tmp3y, .lead(.tmp0y, 32), ._ },
158097 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
158098 .{ .@"0:", .v_pd, .mul, .tmp3y, .tmp3y, .memid(.src0y, .tmp0, 32), ._ },
158099 .{ ._, .v_pd, .mul, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
158100 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
158101 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158102 .{ ._, .v_pd, .mul, .dst0y, .dst0y, .tmp3y, ._ },
158103 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
158104 .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ },
158105 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
158106 .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp3x, ._ },
158107 } },
158108 }, .{
158109 .required_features = .{ .avx, null, null, null },
158110 .dst_constraints = .{ .{ .float = .qword }, .any },
158111 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any },
158112 .patterns = &.{
158113 .{ .src = .{ .to_mem, .none, .none } },
158114 },
158115 .extra_temps = .{
158116 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158117 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
158118 .{ .type = .vector_4_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
158119 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
158120 .unused,
158121 .unused,
158122 .unused,
158123 .unused,
158124 .unused,
158125 .unused,
158126 .unused,
158127 },
158128 .dst_temps = .{ .{ .rc = .sse }, .unused },
158129 .clobbers = .{ .eflags = true },
158130 .each = .{ .once = &.{
158131 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
158132 .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
158133 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
158134 .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
158135 .{ ._, .v_pd, .@"or", .dst0y, .dst0y, .lea(.tmp0y), ._ },
158136 .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ },
158137 .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ },
158138 .{ ._, .v_pd, .mul, .dst0x, .dst0x, .tmp3x, ._ },
158139 .{ .@"0:", .v_pd, .mul, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ },
158140 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
158141 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158142 .{ ._, .v_ps, .movhl, .tmp3x, .dst0x, .dst0x, ._ },
158143 .{ ._, .v_sd, .mul, .dst0x, .dst0x, .tmp3x, ._ },
158144 } },
158145 }, .{
158146 .required_features = .{ .sse2, null, null, null },
158147 .dst_constraints = .{ .{ .float = .qword }, .any },
158148 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any },
158149 .patterns = &.{
158150 .{ .src = .{ .to_mem, .none, .none } },
158151 },
158152 .extra_temps = .{
158153 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158154 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } },
158155 .{ .type = .vector_2_f64, .kind = .{ .splat_float_mem = .{ .ref = .src0, .outside = 1.0 } } },
158156 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
158157 .unused,
158158 .unused,
158159 .unused,
158160 .unused,
158161 .unused,
158162 .unused,
158163 .unused,
158164 },
158165 .dst_temps = .{ .{ .rc = .sse }, .unused },
158166 .clobbers = .{ .eflags = true },
158167 .each = .{ .once = &.{
158168 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
158169 .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ },
158170 .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ },
158171 .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
158172 .{ ._, ._pd, .@"or", .dst0x, .lea(.tmp0x), ._, ._ },
158173 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
158174 .{ .@"0:", ._pd, .mul, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
158175 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
158176 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158177 .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ },
158178 .{ ._, ._ps, .movhl, .tmp3x, .dst0x, ._, ._ },
158179 .{ ._, ._sd, .mul, .dst0x, .tmp3x, ._, ._ },
158180 } },
158181 }, .{
158182 .required_features = .{ .x87, null, null, null },
158183 .dst_constraints = .{ .{ .float = .qword }, .any },
158184 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any },
158185 .patterns = &.{
158186 .{ .src = .{ .to_mem, .none, .none } },
158187 },
158188 .extra_temps = .{
158189 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158190 .{ .type = .f64, .kind = .{ .reg = .st7 } },
158191 .unused,
158192 .unused,
158193 .unused,
158194 .unused,
158195 .unused,
158196 .unused,
158197 .unused,
158198 .unused,
158199 .unused,
158200 },
158201 .dst_temps = .{ .mem, .unused },
158202 .clobbers = .{ .eflags = true },
158203 .each = .{ .once = &.{
158204 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
158205 .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ },
158206 .{ .@"0:", .f_, .mul, .memi(.src0q, .tmp0), ._, ._, ._ },
158207 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
158208 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158209 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
158210 } },
158211 }, .{
158212 .required_features = .{ .x87, null, null, null },
158213 .dst_constraints = .{ .{ .float = .tbyte }, .any },
158214 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any },
158215 .patterns = &.{
158216 .{ .src = .{ .to_mem, .none, .none } },
158217 },
158218 .extra_temps = .{
158219 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158220 .{ .type = .f80, .kind = .{ .reg = .st7 } },
158221 .{ .type = .f80, .kind = .{ .reg = .st6 } },
158222 .unused,
158223 .unused,
158224 .unused,
158225 .unused,
158226 .unused,
158227 .unused,
158228 .unused,
158229 .unused,
158230 },
158231 .dst_temps = .{ .{ .rc = .x87 }, .unused },
158232 .clobbers = .{ .eflags = true },
158233 .each = .{ .once = &.{
158234 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
158235 .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ },
158236 .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ },
158237 .{ ._, .f_p, .mul, ._, ._, ._, ._ },
158238 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
158239 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158240 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
158241 } },
158242 }, .{
158243 .required_features = .{ .avx, null, null, null },
158244 .dst_constraints = .{ .{ .float = .xword }, .any },
158245 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
158246 .patterns = &.{
158247 .{ .src = .{ .to_mem, .none, .none } },
158248 },
158249 .call_frame = .{ .alignment = .@"16" },
158250 .extra_temps = .{
158251 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158252 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
158253 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
158254 .unused,
158255 .unused,
158256 .unused,
158257 .unused,
158258 .unused,
158259 .unused,
158260 .unused,
158261 .unused,
158262 },
158263 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
158264 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
158265 .each = .{ .once = &.{
158266 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
158267 .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
158268 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
158269 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
158270 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
158271 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158272 } },
158273 }, .{
158274 .required_features = .{ .sse2, null, null, null },
158275 .dst_constraints = .{ .{ .float = .xword }, .any },
158276 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
158277 .patterns = &.{
158278 .{ .src = .{ .to_mem, .none, .none } },
158279 },
158280 .call_frame = .{ .alignment = .@"16" },
158281 .extra_temps = .{
158282 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158283 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
158284 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
158285 .unused,
158286 .unused,
158287 .unused,
158288 .unused,
158289 .unused,
158290 .unused,
158291 .unused,
158292 .unused,
158293 },
158294 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
158295 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
158296 .each = .{ .once = &.{
158297 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
158298 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
158299 .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
158300 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
158301 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
158302 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158303 } },
158304 }, .{
158305 .required_features = .{ .sse, null, null, null },
158306 .dst_constraints = .{ .{ .float = .xword }, .any },
158307 .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any },
158308 .patterns = &.{
158309 .{ .src = .{ .to_mem, .none, .none } },
158310 },
158311 .call_frame = .{ .alignment = .@"16" },
158312 .extra_temps = .{
158313 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
158314 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
158315 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
158316 .unused,
158317 .unused,
158318 .unused,
158319 .unused,
158320 .unused,
158321 .unused,
158322 .unused,
158323 .unused,
158324 },
158325 .dst_temps = .{ .{ .reg = .xmm0 }, .unused },
158326 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
158327 .each = .{ .once = &.{
158328 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
158329 .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
158330 .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
158331 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
158332 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
158333 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
158334 } },
158335 } },
158336 }) catch |err| switch (err) {
158337 error.SelectFailed => return cg.fail("failed to select {s}.{s} {} {}", .{
158338 @tagName(air_tag),
158339 @tagName(reduce.operation),
158340 cg.typeOf(reduce.operand).fmt(pt),
158341 ops[0].tracking(cg),
158342 }),
158343 else => |e| return e,
158344 };
158345 try res[0].finish(inst, &.{reduce.operand}, &ops, cg);
158346 },
116833 .splat => |air_tag| if (use_old) try cg.airSplat(inst) else fallback: {158347 .splat => |air_tag| if (use_old) try cg.airSplat(inst) else fallback: {
116834 const ty_op = air_datas[@intFromEnum(inst)].ty_op;158348 const ty_op = air_datas[@intFromEnum(inst)].ty_op;
116835 if (cg.typeOf(ty_op.operand).toIntern() == .bool_type) break :fallback try cg.airSplat(inst);158349 if (cg.typeOf(ty_op.operand).toIntern() == .bool_type) break :fallback try cg.airSplat(inst);
...@@ -119166,15 +160680,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -119166,15 +160680,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
119166 },160680 },
119167 .union_init => if (use_old) try cg.airUnionInit(inst) else {160681 .union_init => if (use_old) try cg.airUnionInit(inst) else {
119168 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;160682 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
119169 const extra = cg.air.extraData(Air.UnionInit, ty_pl.payload).data;160683 const union_init = cg.air.extraData(Air.UnionInit, ty_pl.payload).data;
119170 const union_ty = ty_pl.ty.toType();160684 const union_ty = ty_pl.ty.toType();
119171 var ops = try cg.tempsFromOperands(inst, .{extra.init});160685 var ops = try cg.tempsFromOperands(inst, .{union_init.init});
119172 var res = try cg.tempAllocMem(union_ty);160686 var res = try cg.tempAllocMem(union_ty);
119173 const union_layout = union_ty.unionGetLayout(zcu);160687 const union_layout = union_ty.unionGetLayout(zcu);
119174 if (union_layout.tag_size > 0) {160688 if (union_layout.tag_size > 0) {
119175 var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(160689 var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(
119176 union_ty.unionTagTypeSafety(zcu).?,160690 union_ty.unionTagTypeSafety(zcu).?,
119177 extra.field_index,160691 union_init.field_index,
119178 ));160692 ));
119179 try res.write(&tag_temp, .{160693 try res.write(&tag_temp, .{
119180 .disp = @intCast(union_layout.tagOffset()),160694 .disp = @intCast(union_layout.tagOffset()),
...@@ -119184,7 +160698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -119184,7 +160698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
119184 try res.write(&ops[0], .{160698 try res.write(&ops[0], .{
119185 .disp = @intCast(union_layout.payloadOffset()),160699 .disp = @intCast(union_layout.payloadOffset()),
119186 }, cg);160700 }, cg);
119187 try res.finish(inst, &.{extra.init}, &ops, cg);160701 try res.finish(inst, &.{union_init.init}, &ops, cg);
119188 },160702 },
119189 .prefetch => {160703 .prefetch => {
119190 const prefetch = air_datas[@intFromEnum(inst)].prefetch;160704 const prefetch = air_datas[@intFromEnum(inst)].prefetch;
...@@ -120381,14 +161895,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -120381,14 +161895,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
120381 },161895 },
120382 .field_parent_ptr => if (use_old) try cg.airFieldParentPtr(inst) else {161896 .field_parent_ptr => if (use_old) try cg.airFieldParentPtr(inst) else {
120383 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;161897 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
120384 const extra = cg.air.extraData(Air.FieldParentPtr, ty_pl.payload).data;161898 const field_parent_ptr = cg.air.extraData(Air.FieldParentPtr, ty_pl.payload).data;
120385 var ops = try cg.tempsFromOperands(inst, .{extra.field_ptr});161899 var ops = try cg.tempsFromOperands(inst, .{field_parent_ptr.field_ptr});
120386 try ops[0].toOffset(-cg.fieldOffset(161900 try ops[0].toOffset(-cg.fieldOffset(
120387 ty_pl.ty.toType(),161901 ty_pl.ty.toType(),
120388 cg.typeOf(extra.field_ptr),161902 cg.typeOf(field_parent_ptr.field_ptr),
120389 extra.field_index,161903 field_parent_ptr.field_index,
120390 ), cg);161904 ), cg);
120391 try ops[0].finish(inst, &.{extra.field_ptr}, &ops, cg);161905 try ops[0].finish(inst, &.{field_parent_ptr.field_ptr}, &ops, cg);
120392 },161906 },
120393 .wasm_memory_size, .wasm_memory_grow => unreachable,161907 .wasm_memory_size, .wasm_memory_grow => unreachable,
120394 .cmp_lt_errors_len => |air_tag| if (use_old) try cg.airCmpLtErrorsLen(inst) else {161908 .cmp_lt_errors_len => |air_tag| if (use_old) try cg.airCmpLtErrorsLen(inst) else {
...@@ -120514,9 +162028,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -120514,9 +162028,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
120514 try res.finish(inst, &.{}, &.{}, cg);162028 try res.finish(inst, &.{}, &.{}, cg);
120515 },162029 },
120516 .vector_store_elem => {162030 .vector_store_elem => {
120517 const extra = air_datas[@intFromEnum(inst)].vector_store_elem;162031 const vector_store_elem = air_datas[@intFromEnum(inst)].vector_store_elem;
120518 const bin_op = cg.air.extraData(Air.Bin, extra.payload).data;162032 const bin_op = cg.air.extraData(Air.Bin, vector_store_elem.payload).data;
120519 var ops = try cg.tempsFromOperands(inst, .{ extra.vector_ptr, bin_op.lhs, bin_op.rhs });162033 var ops = try cg.tempsFromOperands(inst, .{ vector_store_elem.vector_ptr, bin_op.lhs, bin_op.rhs });
120520 cg.select(&.{}, &.{}, &ops, comptime &.{ .{162034 cg.select(&.{}, &.{}, &ops, comptime &.{ .{
120521 .src_constraints = .{ .{ .ptr_bool_vec = .byte }, .any, .bool },162035 .src_constraints = .{ .{ .ptr_bool_vec = .byte }, .any, .bool },
120522 .patterns = &.{162036 .patterns = &.{
...@@ -120878,7 +162392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -120878,7 +162392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
120878 } },162392 } },
120879 } }) catch |err| switch (err) {162393 } }) catch |err| switch (err) {
120880 error.SelectFailed => {162394 error.SelectFailed => {
120881 const elem_size = cg.typeOf(extra.vector_ptr).childType(zcu).childType(zcu).abiSize(zcu);162395 const elem_size = cg.typeOf(bin_op.rhs).abiSize(zcu);
120882 while (try ops[0].toBase(false, cg) or162396 while (try ops[0].toBase(false, cg) or
120883 try ops[1].toRegClass(true, .general_purpose, cg))162397 try ops[1].toRegClass(true, .general_purpose, cg))
120884 {}162398 {}
...@@ -125517,7 +167031,7 @@ fn genByteSwap(...@@ -125517,7 +167031,7 @@ fn genByteSwap(
125517 return src_mcv;167031 return src_mcv;
125518 },167032 },
125519 3...8 => if (src_mcv.isRegister() and self.reuseOperand(inst, ty_op.operand, 0, src_mcv)) {167033 3...8 => if (src_mcv.isRegister() and self.reuseOperand(inst, ty_op.operand, 0, src_mcv)) {
125520 try self.genUnOpMir(.{ ._, .bswap }, src_ty, src_mcv);167034 try self.genUnOpMir(.{ .b_, .swap }, src_ty, src_mcv);
125521 return src_mcv;167035 return src_mcv;
125522 },167036 },
125523 9...16 => {167037 9...16 => {
...@@ -125528,7 +167042,7 @@ fn genByteSwap(...@@ -125528,7 +167042,7 @@ fn genByteSwap(
125528 break :mat_src_mcv .{ .load_frame = .{ .index = frame_index } };167042 break :mat_src_mcv .{ .load_frame = .{ .index = frame_index } };
125529 },167043 },
125530 .register_pair => |src_regs| if (self.reuseOperand(inst, ty_op.operand, 0, src_mcv)) {167044 .register_pair => |src_regs| if (self.reuseOperand(inst, ty_op.operand, 0, src_mcv)) {
125531 for (src_regs) |src_reg| try self.asmRegister(.{ ._, .bswap }, src_reg.to64());167045 for (src_regs) |src_reg| try self.asmRegister(.{ .b_, .swap }, src_reg.to64());
125532 return .{ .register_pair = .{ src_regs[1], src_regs[0] } };167046 return .{ .register_pair = .{ src_regs[1], src_regs[0] } };
125533 } else src_mcv,167047 } else src_mcv,
125534 else => src_mcv,167048 else => src_mcv,
...@@ -125542,18 +167056,18 @@ fn genByteSwap(...@@ -125542,18 +167056,18 @@ fn genByteSwap(
125542 for (dst_regs, 0..) |dst_reg, limb_index| {167056 for (dst_regs, 0..) |dst_reg, limb_index| {
125543 if (mat_src_mcv.isBase()) {167057 if (mat_src_mcv.isBase()) {
125544 try self.asmRegisterMemory(167058 try self.asmRegisterMemory(
125545 .{ ._, if (has_movbe) .movbe else .mov },167059 .{ if (has_movbe) ._be else ._, .mov },
125546 dst_reg.to64(),167060 dst_reg.to64(),
125547 try mat_src_mcv.address().offset(@intCast(limb_index * 8)).deref().mem(self, .{ .size = .qword }),167061 try mat_src_mcv.address().offset(@intCast(limb_index * 8)).deref().mem(self, .{ .size = .qword }),
125548 );167062 );
125549 if (!has_movbe) try self.asmRegister(.{ ._, .bswap }, dst_reg.to64());167063 if (!has_movbe) try self.asmRegister(.{ .b_, .swap }, dst_reg.to64());
125550 } else {167064 } else {
125551 try self.asmRegisterRegister(167065 try self.asmRegisterRegister(
125552 .{ ._, .mov },167066 .{ ._, .mov },
125553 dst_reg.to64(),167067 dst_reg.to64(),
125554 mat_src_mcv.register_pair[limb_index].to64(),167068 mat_src_mcv.register_pair[limb_index].to64(),
125555 );167069 );
125556 try self.asmRegister(.{ ._, .bswap }, dst_reg.to64());167070 try self.asmRegister(.{ .b_, .swap }, dst_reg.to64());
125557 }167071 }
125558 }167072 }
125559 return .{ .register_pair = .{ dst_regs[1], dst_regs[0] } };167073 return .{ .register_pair = .{ dst_regs[1], dst_regs[0] } };
...@@ -125572,7 +167086,7 @@ fn genByteSwap(...@@ -125572,7 +167086,7 @@ fn genByteSwap(
125572167086
125573 const loop: Mir.Inst.Index = @intCast(self.mir_instructions.len);167087 const loop: Mir.Inst.Index = @intCast(self.mir_instructions.len);
125574 try self.asmRegisterMemory(167088 try self.asmRegisterMemory(
125575 .{ ._, if (has_movbe) .movbe else .mov },167089 .{ if (has_movbe) ._be else ._, .mov },
125576 temp_regs[2].to64(),167090 temp_regs[2].to64(),
125577 .{167091 .{
125578 .base = .{ .frame = dst_mcv.load_frame.index },167092 .base = .{ .frame = dst_mcv.load_frame.index },
...@@ -125585,7 +167099,7 @@ fn genByteSwap(...@@ -125585,7 +167099,7 @@ fn genByteSwap(
125585 },167099 },
125586 );167100 );
125587 try self.asmRegisterMemory(167101 try self.asmRegisterMemory(
125588 .{ ._, if (has_movbe) .movbe else .mov },167102 .{ if (has_movbe) ._be else ._, .mov },
125589 temp_regs[3].to64(),167103 temp_regs[3].to64(),
125590 .{167104 .{
125591 .base = .{ .frame = dst_mcv.load_frame.index },167105 .base = .{ .frame = dst_mcv.load_frame.index },
...@@ -125598,8 +167112,8 @@ fn genByteSwap(...@@ -125598,8 +167112,8 @@ fn genByteSwap(
125598 },167112 },
125599 );167113 );
125600 if (!has_movbe) {167114 if (!has_movbe) {
125601 try self.asmRegister(.{ ._, .bswap }, temp_regs[2].to64());167115 try self.asmRegister(.{ .b_, .swap }, temp_regs[2].to64());
125602 try self.asmRegister(.{ ._, .bswap }, temp_regs[3].to64());167116 try self.asmRegister(.{ .b_, .swap }, temp_regs[3].to64());
125603 }167117 }
125604 try self.asmMemoryRegister(.{ ._, .mov }, .{167118 try self.asmMemoryRegister(.{ ._, .mov }, .{
125605 .base = .{ .frame = dst_mcv.load_frame.index },167119 .base = .{ .frame = dst_mcv.load_frame.index },
...@@ -125644,9 +167158,9 @@ fn genByteSwap(...@@ -125644,9 +167158,9 @@ fn genByteSwap(
125644 switch (abi_size) {167158 switch (abi_size) {
125645 else => unreachable,167159 else => unreachable,
125646 2 => try self.genBinOpMir(.{ ._l, .ro }, src_ty, dst_mcv, .{ .immediate = 8 }),167160 2 => try self.genBinOpMir(.{ ._l, .ro }, src_ty, dst_mcv, .{ .immediate = 8 }),
125647 3...8 => try self.genUnOpMir(.{ ._, .bswap }, src_ty, dst_mcv),167161 3...8 => try self.genUnOpMir(.{ .b_, .swap }, src_ty, dst_mcv),
125648 }167162 }
125649 } else try self.genBinOpMir(.{ ._, .movbe }, src_ty, dst_mcv, src_mcv);167163 } else try self.genBinOpMir(.{ ._be, .mov }, src_ty, dst_mcv, src_mcv);
125650 return dst_mcv;167164 return dst_mcv;
125651}167165}
125652167166
...@@ -127728,14 +169242,14 @@ fn genShiftBinOpMir(...@@ -127728,14 +169242,14 @@ fn genShiftBinOpMir(
127728 info.double_tag,169242 info.double_tag,
127729 lhs_regs[info.indices[1]],169243 lhs_regs[info.indices[1]],
127730 lhs_regs[info.indices[0]],169244 lhs_regs[info.indices[0]],
127731 registerAlias(shift_reg, 1),169245 shift_reg.to8(),
127732 );169246 );
127733 try self.asmRegisterRegister(169247 try self.asmRegisterRegister(
127734 tag,169248 tag,
127735 lhs_regs[info.indices[0]],169249 lhs_regs[info.indices[0]],
127736 registerAlias(shift_reg, 1),169250 shift_reg.to8(),
127737 );169251 );
127738 try self.asmRegisterImmediate(.{ ._, .cmp }, registerAlias(shift_reg, 1), .u(64));169252 try self.asmRegisterImmediate(.{ ._, .cmp }, shift_reg.to8(), .u(64));
127739 try self.asmCmovccRegisterRegister(169253 try self.asmCmovccRegisterRegister(
127740 .ae,169254 .ae,
127741 lhs_regs[info.indices[1]],169255 lhs_regs[info.indices[1]],
...@@ -127888,12 +169402,12 @@ fn genShiftBinOpMir(...@@ -127888,12 +169402,12 @@ fn genShiftBinOpMir(
127888 info.double_tag,169402 info.double_tag,
127889 second_reg,169403 second_reg,
127890 first_reg,169404 first_reg,
127891 registerAlias(shift_reg, 1),169405 shift_reg.to8(),
127892 );169406 );
127893 try self.asmRegisterRegister(tag, first_reg, registerAlias(shift_reg, 1));169407 try self.asmRegisterRegister(tag, first_reg, shift_reg.to8());
127894 try self.asmRegisterImmediate(169408 try self.asmRegisterImmediate(
127895 .{ ._, .cmp },169409 .{ ._, .cmp },
127896 registerAlias(shift_reg, 1),169410 shift_reg.to8(),
127897 .u(64),169411 .u(64),
127898 );169412 );
127899 try self.asmCmovccRegisterRegister(.ae, second_reg, first_reg);169413 try self.asmCmovccRegisterRegister(.ae, second_reg, first_reg);
...@@ -127937,7 +169451,7 @@ fn genShiftBinOpMir(...@@ -127937,7 +169451,7 @@ fn genShiftBinOpMir(
127937 .register => |shift_reg| return self.asmRegisterRegister(169451 .register => |shift_reg| return self.asmRegisterRegister(
127938 tag,169452 tag,
127939 registerAlias(lhs_reg, abi_size),169453 registerAlias(lhs_reg, abi_size),
127940 registerAlias(shift_reg, 1),169454 shift_reg.to8(),
127941 ),169455 ),
127942 else => {},169456 else => {},
127943 },169457 },
...@@ -127975,7 +169489,7 @@ fn genShiftBinOpMir(...@@ -127975,7 +169489,7 @@ fn genShiftBinOpMir(
127975 .register => |shift_reg| return self.asmMemoryRegister(169489 .register => |shift_reg| return self.asmMemoryRegister(
127976 tag,169490 tag,
127977 lhs_mem,169491 lhs_mem,
127978 registerAlias(shift_reg, 1),169492 shift_reg.to8(),
127979 ),169493 ),
127980 else => {},169494 else => {},
127981 }169495 }
...@@ -132477,7 +173991,7 @@ fn lowerSwitchBr(...@@ -132477,7 +173991,7 @@ fn lowerSwitchBr(
132477 .base = .table,173991 .base = .table,
132478 .mod = .{ .rm = .{173992 .mod = .{ .rm = .{
132479 .size = .ptr,173993 .size = .ptr,
132480 .index = registerAlias(condition_index_reg, ptr_size),173994 .index = condition_index_reg.toSize(.ptr, cg.target),
132481 .scale = .fromFactor(@intCast(ptr_size)),173995 .scale = .fromFactor(@intCast(ptr_size)),
132482 .disp = table_start * ptr_size,173996 .disp = table_start * ptr_size,
132483 } },173997 } },
...@@ -132832,7 +174346,7 @@ fn airSwitchDispatch(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -132832,7 +174346,7 @@ fn airSwitchDispatch(self: *CodeGen, inst: Air.Inst.Index) !void {
132832 .base = .table,174346 .base = .table,
132833 .mod = .{ .rm = .{174347 .mod = .{ .rm = .{
132834 .size = .ptr,174348 .size = .ptr,
132835 .index = registerAlias(condition_index_reg, ptr_size),174349 .index = condition_index_reg.toSize(.ptr, self.target),
132836 .scale = .fromFactor(@intCast(ptr_size)),174350 .scale = .fromFactor(@intCast(ptr_size)),
132837 .disp = @intCast(table.start * ptr_size),174351 .disp = @intCast(table.start * ptr_size),
132838 } },174352 } },
...@@ -132948,14 +174462,14 @@ fn airRepeat(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -132948,14 +174462,14 @@ fn airRepeat(self: *CodeGen, inst: Air.Inst.Index) !void {
132948}174462}
132949174463
132950fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void {174464fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void {
174465 @setEvalBranchQuota(1_100);
132951 const pt = self.pt;174466 const pt = self.pt;
132952 const zcu = pt.zcu;174467 const zcu = pt.zcu;
132953 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;174468 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
132954 const extra = self.air.extraData(Air.Asm, ty_pl.payload);174469 const extra = self.air.extraData(Air.Asm, ty_pl.payload);
132955 const clobbers_len: u31 = @truncate(extra.data.flags);174470 const clobbers_len: u31 = @truncate(extra.data.flags);
132956 var extra_i: usize = extra.end;174471 var extra_i: usize = extra.end;
132957 const outputs: []const Air.Inst.Ref =174472 const outputs: []const Air.Inst.Ref = @ptrCast(self.air.extra[extra_i..][0..extra.data.outputs_len]);
132958 @ptrCast(self.air.extra[extra_i..][0..extra.data.outputs_len]);
132959 extra_i += outputs.len;174473 extra_i += outputs.len;
132960 const inputs: []const Air.Inst.Ref = @ptrCast(self.air.extra[extra_i..][0..extra.data.inputs_len]);174474 const inputs: []const Air.Inst.Ref = @ptrCast(self.air.extra[extra_i..][0..extra.data.inputs_len]);
132961 extra_i += inputs.len;174475 extra_i += inputs.len;
...@@ -133519,16 +175033,16 @@ fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -133519,16 +175033,16 @@ fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void {
133519 .{ ._, .pseudo }175033 .{ ._, .pseudo }
133520 else for (std.enums.values(Mir.Inst.Fixes)) |fixes| {175034 else for (std.enums.values(Mir.Inst.Fixes)) |fixes| {
133521 const fixes_name = @tagName(fixes);175035 const fixes_name = @tagName(fixes);
133522 const space_i = std.mem.indexOfScalar(u8, fixes_name, ' ');175036 const space_index = std.mem.indexOfScalar(u8, fixes_name, ' ');
133523 const fixes_prefix = if (space_i) |i|175037 const fixes_prefix = if (space_index) |index|
133524 std.meta.stringToEnum(encoder.Instruction.Prefix, fixes_name[0..i]).?175038 std.meta.stringToEnum(encoder.Instruction.Prefix, fixes_name[0..index]).?
133525 else175039 else
133526 .none;175040 .none;
133527 if (fixes_prefix != prefix) continue;175041 if (fixes_prefix != prefix) continue;
133528 const pattern = fixes_name[if (space_i) |i| i + " ".len else 0..];175042 const pattern = fixes_name[if (space_index) |index| index + " ".len else 0..];
133529 const wildcard_i = std.mem.indexOfScalar(u8, pattern, '_').?;175043 const wildcard_index = std.mem.indexOfScalar(u8, pattern, '_').?;
133530 const mnem_prefix = pattern[0..wildcard_i];175044 const mnem_prefix = pattern[0..wildcard_index];
133531 const mnem_suffix = pattern[wildcard_i + "_".len ..];175045 const mnem_suffix = pattern[wildcard_index + "_".len ..];
133532 if (!std.mem.startsWith(u8, mnem_name, mnem_prefix)) continue;175046 if (!std.mem.startsWith(u8, mnem_name, mnem_prefix)) continue;
133533 if (!std.mem.endsWith(u8, mnem_name, mnem_suffix)) continue;175047 if (!std.mem.endsWith(u8, mnem_name, mnem_suffix)) continue;
133534 break .{ fixes, std.meta.stringToEnum(175048 break .{ fixes, std.meta.stringToEnum(
...@@ -133742,7 +175256,7 @@ const MoveStrategy = union(enum) {...@@ -133742,7 +175256,7 @@ const MoveStrategy = union(enum) {
133742 .base = .{ .frame = tmp_frame_index },175256 .base = .{ .frame = tmp_frame_index },
133743 .mod = .{ .rm = .{ .size = .word } },175257 .mod = .{ .rm = .{ .size = .word } },
133744 });175258 });
133745 try cg.asmMemoryRegister(.{ ._, .mov }, dst_mem, tmp_reg.to16());175259 try cg.asmMemoryRegister(.{ ._, .mov }, dst_mem, tmp_reg.toSize(dst_mem.mod.rm.size, cg.target));
133746 },175260 },
133747 .load_store => |tag| try cg.asmMemoryRegister(tag, dst_mem, src_reg),175261 .load_store => |tag| try cg.asmMemoryRegister(tag, dst_mem, src_reg),
133748 .load_store_x87 => if (cg.register_manager.isKnownRegFree(.st7)) {175262 .load_store_x87 => if (cg.register_manager.isKnownRegFree(.st7)) {
...@@ -134106,7 +175620,7 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C...@@ -134106,7 +175620,7 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C
134106 } else if (self.hasFeature(.sse4_1)) {175620 } else if (self.hasFeature(.sse4_1)) {
134107 try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128());175621 try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128());
134108 try self.asmRegisterRegisterImmediate(.{ .p_q, .extr }, dst_regs[1].to64(), src_reg.to128(), .u(1));175622 try self.asmRegisterRegisterImmediate(.{ .p_q, .extr }, dst_regs[1].to64(), src_reg.to128(), .u(1));
134109 } else {175623 } else if (self.hasFeature(.sse2)) {
134110 const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse);175624 const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse);
134111 const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg);175625 const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg);
134112 defer self.register_manager.unlockReg(tmp_lock);175626 defer self.register_manager.unlockReg(tmp_lock);
...@@ -134114,6 +175628,19 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C...@@ -134114,6 +175628,19 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C
134114 try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128());175628 try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[0].to64(), src_reg.to128());
134115 try self.asmRegisterRegister(.{ ._ps, .movhl }, tmp_reg.to128(), src_reg.to128());175629 try self.asmRegisterRegister(.{ ._ps, .movhl }, tmp_reg.to128(), src_reg.to128());
134116 try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[1].to64(), tmp_reg.to128());175630 try self.asmRegisterRegister(.{ ._q, .mov }, dst_regs[1].to64(), tmp_reg.to128());
175631 } else {
175632 const frame_index = try self.allocFrameIndex(.init(.{
175633 .size = 16,
175634 .alignment = .@"16",
175635 }));
175636 try self.asmMemoryRegister(.{ ._ps, .mova }, .{
175637 .base = .{ .frame = frame_index },
175638 .mod = .{ .rm = .{ .size = .xword } },
175639 }, src_reg.to128());
175640 for (dst_regs, 0..) |dst_reg, dst_index| try self.asmRegisterMemory(.{ ._, .mov }, dst_reg.to64(), .{
175641 .base = .{ .frame = frame_index },
175642 .mod = .{ .rm = .{ .size = .qword, .disp = @intCast(8 * dst_index) } },
175643 });
134117 }175644 }
134118 return;175645 return;
134119 } else unreachable,175646 } else unreachable,
...@@ -134357,7 +175884,7 @@ fn genSetReg(...@@ -134357,7 +175884,7 @@ fn genSetReg(
134357 },175884 },
134358 ),175885 ),
134359 .x87 => switch (src_reg.class()) {175886 .x87 => switch (src_reg.class()) {
134360 .general_purpose, .gphi, .segment => unreachable,175887 .general_purpose, .gphi, .segment, .mmx, .ip, .cr, .dr => unreachable,
134361 .x87 => switch (src_reg) {175888 .x87 => switch (src_reg) {
134362 .st0 => try self.asmRegister(.{ .f_, .st }, dst_reg),175889 .st0 => try self.asmRegister(.{ .f_, .st }, dst_reg),
134363 .st1, .st2, .st3, .st4, .st5, .st6 => switch (dst_reg) {175890 .st1, .st2, .st3, .st4, .st5, .st6 => switch (dst_reg) {
...@@ -134382,7 +175909,25 @@ fn genSetReg(...@@ -134382,7 +175909,25 @@ fn genSetReg(
134382 },175909 },
134383 else => unreachable,175910 else => unreachable,
134384 },175911 },
134385 .mmx, .sse, .ip, .cr, .dr => unreachable,175912 .sse => if (abi_size <= 16) {
175913 const frame_index = try self.allocFrameIndex(.init(.{
175914 .size = 16,
175915 .alignment = .@"16",
175916 }));
175917 try self.asmMemoryRegister(if (self.hasFeature(.avx))
175918 .{ .v_dqa, .mov }
175919 else if (self.hasFeature(.sse2))
175920 .{ ._dqa, .mov }
175921 else
175922 .{ ._ps, .mova }, .{
175923 .base = .{ .frame = frame_index },
175924 .mod = .{ .rm = .{ .size = .xword } },
175925 }, src_reg.to128());
175926 try MoveStrategy.read(.load_store_x87, self, dst_reg, .{
175927 .base = .{ .frame = frame_index },
175928 .mod = .{ .rm = .{ .size = .tbyte } },
175929 });
175930 } else unreachable,
134386 },175931 },
134387 .mmx => unreachable,175932 .mmx => unreachable,
134388 .sse => switch (src_reg.class()) {175933 .sse => switch (src_reg.class()) {
...@@ -134424,7 +175969,7 @@ fn genSetReg(...@@ -134424,7 +175969,7 @@ fn genSetReg(
134424 .{ .register = try self.copyToTmpRegister(ty, src_mcv) },175969 .{ .register = try self.copyToTmpRegister(ty, src_mcv) },
134425 opts,175970 opts,
134426 ),175971 ),
134427 .x87 => {175972 .x87 => if (abi_size <= 16) {
134428 const frame_index = try self.allocFrameIndex(.init(.{175973 const frame_index = try self.allocFrameIndex(.init(.{
134429 .size = 16,175974 .size = 16,
134430 .alignment = .@"16",175975 .alignment = .@"16",
...@@ -134442,7 +175987,7 @@ fn genSetReg(...@@ -134442,7 +175987,7 @@ fn genSetReg(
134442 .base = .{ .frame = frame_index },175987 .base = .{ .frame = frame_index },
134443 .mod = .{ .rm = .{ .size = .xword } },175988 .mod = .{ .rm = .{ .size = .xword } },
134444 });175989 });
134445 },175990 } else unreachable,
134446 .mmx, .ip, .cr, .dr => unreachable,175991 .mmx, .ip, .cr, .dr => unreachable,
134447 .sse => try self.asmRegisterRegister(175992 .sse => try self.asmRegisterRegister(
134448 @as(?Mir.Inst.FixedTag, switch (ty.scalarType(zcu).zigTypeTag(zcu)) {175993 @as(?Mir.Inst.FixedTag, switch (ty.scalarType(zcu).zigTypeTag(zcu)) {
...@@ -134506,7 +176051,7 @@ fn genSetReg(...@@ -134506,7 +176051,7 @@ fn genSetReg(
134506 } else if (self.hasFeature(.sse4_1)) {176051 } else if (self.hasFeature(.sse4_1)) {
134507 try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64());176052 try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64());
134508 try self.asmRegisterRegisterImmediate(.{ .p_q, .insr }, dst_reg.to128(), src_regs[1].to64(), .u(1));176053 try self.asmRegisterRegisterImmediate(.{ .p_q, .insr }, dst_reg.to128(), src_regs[1].to64(), .u(1));
134509 } else {176054 } else if (self.hasFeature(.sse2)) {
134510 const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse);176055 const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.sse);
134511 const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg);176056 const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg);
134512 defer self.register_manager.unlockReg(tmp_lock);176057 defer self.register_manager.unlockReg(tmp_lock);
...@@ -134514,6 +176059,19 @@ fn genSetReg(...@@ -134514,6 +176059,19 @@ fn genSetReg(
134514 try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64());176059 try self.asmRegisterRegister(.{ ._q, .mov }, dst_reg.to128(), src_regs[0].to64());
134515 try self.asmRegisterRegister(.{ ._q, .mov }, tmp_reg.to128(), src_regs[1].to64());176060 try self.asmRegisterRegister(.{ ._q, .mov }, tmp_reg.to128(), src_regs[1].to64());
134516 try self.asmRegisterRegister(.{ ._ps, .movlh }, dst_reg.to128(), tmp_reg.to128());176061 try self.asmRegisterRegister(.{ ._ps, .movlh }, dst_reg.to128(), tmp_reg.to128());
176062 } else {
176063 const frame_index = try self.allocFrameIndex(.init(.{
176064 .size = 16,
176065 .alignment = .@"16",
176066 }));
176067 for (src_regs, 0..) |src_reg, src_index| try self.asmMemoryRegister(.{ ._, .mov }, .{
176068 .base = .{ .frame = frame_index },
176069 .mod = .{ .rm = .{ .size = .qword, .disp = @intCast(8 * src_index) } },
176070 }, src_reg.to64());
176071 try self.asmRegisterMemory(.{ ._ps, .mova }, dst_reg.to128(), .{
176072 .base = .{ .frame = frame_index },
176073 .mod = .{ .rm = .{ .size = .xword } },
176074 });
134517 }176075 }
134518 } else unreachable,176076 } else unreachable,
134519 else => unreachable,176077 else => unreachable,
...@@ -134821,11 +176379,18 @@ fn genSetMem(...@@ -134821,11 +176379,18 @@ fn genSetMem(
134821 },176379 },
134822 else => abi_size,176380 else => abi_size,
134823 };176381 };
134824 const src_alias = registerAlias(src_reg, abi_size);176382 const src_alias = registerAlias(src_reg, @intCast(self.unalignedSize(ty)));
134825 const src_size: u32 = @intCast(switch (src_alias.class()) {176383 const src_class = src_alias.class();
134826 .general_purpose, .gphi, .segment, .x87, .ip, .cr, .dr => @divExact(src_alias.bitSize(), 8),176384 const src_size: u32 = switch (src_class) {
176385 .general_purpose, .gphi, .segment, .ip, .cr, .dr => @intCast(@divExact(src_alias.bitSize(), 8)),
134827 .mmx, .sse => abi_size,176386 .mmx, .sse => abi_size,
134828 });176387 .x87 => switch (abi.classifySystemV(ty, zcu, self.target, .other)[0]) {
176388 else => unreachable,
176389 .float, .float_combine => 4,
176390 .sse => 8,
176391 .x87 => 10,
176392 },
176393 };
134829 const src_align: InternPool.Alignment = .fromNonzeroByteUnits(176394 const src_align: InternPool.Alignment = .fromNonzeroByteUnits(
134830 std.math.ceilPowerOfTwoAssert(u32, src_size),176395 std.math.ceilPowerOfTwoAssert(u32, src_size),
134831 );176396 );
...@@ -134835,7 +176400,7 @@ fn genSetMem(...@@ -134835,7 +176400,7 @@ fn genSetMem(
134835 .alignment = src_align,176400 .alignment = src_align,
134836 }));176401 }));
134837 const frame_mcv: MCValue = .{ .load_frame = .{ .index = frame_index } };176402 const frame_mcv: MCValue = .{ .load_frame = .{ .index = frame_index } };
134838 try (try self.moveStrategy(ty, src_alias.class(), true)).write(176403 try (try self.moveStrategy(ty, src_class, true)).write(
134839 self,176404 self,
134840 .{ .base = .{ .frame = frame_index }, .mod = .{ .rm = .{176405 .{ .base = .{ .frame = frame_index }, .mod = .{ .rm = .{
134841 .size = .fromSize(src_size),176406 .size = .fromSize(src_size),
...@@ -134844,7 +176409,7 @@ fn genSetMem(...@@ -134844,7 +176409,7 @@ fn genSetMem(
134844 );176409 );
134845 try self.genSetMem(base, disp, ty, frame_mcv, opts);176410 try self.genSetMem(base, disp, ty, frame_mcv, opts);
134846 try self.freeValue(frame_mcv);176411 try self.freeValue(frame_mcv);
134847 } else try (try self.moveStrategy(ty, src_alias.class(), switch (base) {176412 } else try (try self.moveStrategy(ty, src_class, switch (base) {
134848 .none => src_align.check(@as(u32, @bitCast(disp))),176413 .none => src_align.check(@as(u32, @bitCast(disp))),
134849 .reg => |reg| switch (reg) {176414 .reg => |reg| switch (reg) {
134850 .es, .cs, .ss, .ds => src_align.check(@as(u32, @bitCast(disp))),176415 .es, .cs, .ss, .ds => src_align.check(@as(u32, @bitCast(disp))),
...@@ -136855,10 +178420,10 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -136855,10 +178420,10 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
136855 ) else try self.asmRegisterRegister(178420 ) else try self.asmRegisterRegister(
136856 .{ mir_tag[0], .andn },178421 .{ mir_tag[0], .andn },
136857 mask_alias,178422 mask_alias,
136858 if (other_mcv.isRegister())178423 registerAlias(if (other_mcv.isRegister())
136859 other_mcv.getReg().?178424 other_mcv.getReg().?
136860 else178425 else
136861 try self.copyToTmpRegister(ty, other_mcv),178426 try self.copyToTmpRegister(ty, other_mcv), abi_size),
136862 );178427 );
136863 try self.asmRegisterRegister(.{ mir_tag[0], .@"or" }, dst_alias, mask_alias);178428 try self.asmRegisterRegister(.{ mir_tag[0], .@"or" }, dst_alias, mask_alias);
136864 }178429 }
...@@ -136964,17 +178529,18 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -136964,17 +178529,18 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
136964 );178529 );
136965 } else return self.fail("TODO implement airSelect for {}", .{ty.fmt(pt)});178530 } else return self.fail("TODO implement airSelect for {}", .{ty.fmt(pt)});
136966 const elem_bits: u16 = @intCast(elem_abi_size * 8);178531 const elem_bits: u16 = @intCast(elem_abi_size * 8);
136967 const mask_elem_ty = try pt.intType(.unsigned, elem_bits);
136968 const mask_ty = try pt.vectorType(.{ .len = vec_len, .child = mask_elem_ty.toIntern() });
136969 if (!pred_fits_in_elem) if (self.hasFeature(.ssse3)) {178532 if (!pred_fits_in_elem) if (self.hasFeature(.ssse3)) {
136970 var mask_elems: [32]InternPool.Index = undefined;178533 const mask_len = elem_abi_size * vec_len;
136971 for (mask_elems[0..vec_len], 0..) |*elem, bit| elem.* = try pt.intern(.{ .int = .{178534 const mask_ty = try pt.vectorType(.{
136972 .ty = mask_elem_ty.toIntern(),178535 .len = mask_len,
136973 .storage = .{ .u64 = bit / elem_bits },178536 .child = .u8_type,
136974 } });178537 });
178538 var mask_elems_buf: [32]u8 = undefined;
178539 const mask_elems = mask_elems_buf[0..mask_len];
178540 for (mask_elems, 0..) |*elem, bit| elem.* = @intCast(bit / elem_bits);
136975 const mask_mcv = try self.genTypedValue(.fromInterned(try pt.intern(.{ .aggregate = .{178541 const mask_mcv = try self.genTypedValue(.fromInterned(try pt.intern(.{ .aggregate = .{
136976 .ty = mask_ty.toIntern(),178542 .ty = mask_ty.toIntern(),
136977 .storage = .{ .elems = mask_elems[0..vec_len] },178543 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, mask_elems, .maybe_embedded_nulls) },
136978 } })));178544 } })));
136979 const mask_mem: Memory = .{178545 const mask_mem: Memory = .{
136980 .base = .{ .reg = try self.copyToTmpRegister(.usize, mask_mcv.address()) },178546 .base = .{ .reg = try self.copyToTmpRegister(.usize, mask_mcv.address()) },
...@@ -136992,14 +178558,17 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -136992,14 +178558,17 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
136992 );178558 );
136993 } else return self.fail("TODO implement airSelect for {}", .{ty.fmt(pt)});178559 } else return self.fail("TODO implement airSelect for {}", .{ty.fmt(pt)});
136994 {178560 {
136995 var mask_elems: [32]InternPool.Index = undefined;178561 const mask_elem_ty = try pt.intType(.unsigned, elem_bits);
136996 for (mask_elems[0..vec_len], 0..) |*elem, bit| elem.* = try pt.intern(.{ .int = .{178562 const mask_ty = try pt.vectorType(.{ .len = vec_len, .child = mask_elem_ty.toIntern() });
178563 var mask_elems_buf: [32]InternPool.Index = undefined;
178564 const mask_elems = mask_elems_buf[0..vec_len];
178565 for (mask_elems, 0..) |*elem, bit| elem.* = try pt.intern(.{ .int = .{
136997 .ty = mask_elem_ty.toIntern(),178566 .ty = mask_elem_ty.toIntern(),
136998 .storage = .{ .u64 = @as(u32, 1) << @intCast(bit & (elem_bits - 1)) },178567 .storage = .{ .u64 = @as(u64, 1) << @intCast(bit) },
136999 } });178568 } });
137000 const mask_mcv = try self.genTypedValue(.fromInterned(try pt.intern(.{ .aggregate = .{178569 const mask_mcv = try self.genTypedValue(.fromInterned(try pt.intern(.{ .aggregate = .{
137001 .ty = mask_ty.toIntern(),178570 .ty = mask_ty.toIntern(),
137002 .storage = .{ .elems = mask_elems[0..vec_len] },178571 .storage = .{ .elems = mask_elems },
137003 } })));178572 } })));
137004 const mask_mem: Memory = .{178573 const mask_mem: Memory = .{
137005 .base = .{ .reg = try self.copyToTmpRegister(.usize, mask_mcv.address()) },178574 .base = .{ .reg = try self.copyToTmpRegister(.usize, mask_mcv.address()) },
...@@ -137013,7 +178582,13 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -137013,7 +178582,13 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
137013 mask_mem,178582 mask_mem,
137014 );178583 );
137015 try self.asmRegisterRegisterMemory(178584 try self.asmRegisterRegisterMemory(
137016 .{ .vp_d, .cmpeq },178585 .{ switch (elem_abi_size) {
178586 else => unreachable,
178587 1 => .vp_b,
178588 2 => .vp_w,
178589 4 => .vp_d,
178590 8 => .vp_q,
178591 }, .cmpeq },
137017 mask_alias,178592 mask_alias,
137018 mask_alias,178593 mask_alias,
137019 mask_mem,178594 mask_mem,
...@@ -137025,7 +178600,13 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -137025,7 +178600,13 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
137025 mask_mem,178600 mask_mem,
137026 );178601 );
137027 try self.asmRegisterMemory(178602 try self.asmRegisterMemory(
137028 .{ .p_d, .cmpeq },178603 .{ switch (elem_abi_size) {
178604 else => unreachable,
178605 1 => .p_b,
178606 2 => .p_w,
178607 4 => .p_d,
178608 8 => if (has_blend) .p_q else unreachable,
178609 }, .cmpeq },
137029 mask_alias,178610 mask_alias,
137030 mask_mem,178611 mask_mem,
137031 );178612 );
...@@ -137144,10 +178725,10 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {...@@ -137144,10 +178725,10 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
137144 ) else try self.asmRegisterRegister(178725 ) else try self.asmRegisterRegister(
137145 .{ mir_tag[0], .andn },178726 .{ mir_tag[0], .andn },
137146 mask_alias,178727 mask_alias,
137147 if (rhs_mcv.isRegister())178728 registerAlias(if (rhs_mcv.isRegister())
137148 rhs_mcv.getReg().?178729 rhs_mcv.getReg().?
137149 else178730 else
137150 try self.copyToTmpRegister(ty, rhs_mcv),178731 try self.copyToTmpRegister(ty, rhs_mcv), abi_size),
137151 );178732 );
137152 try self.asmRegisterRegister(.{ mir_tag[0], .@"or" }, dst_alias, mask_alias);178733 try self.asmRegisterRegister(.{ mir_tag[0], .@"or" }, dst_alias, mask_alias);
137153 }178734 }
...@@ -138779,8 +180360,8 @@ fn genTypedValue(self: *CodeGen, val: Value) InnerError!MCValue {...@@ -138779,8 +180360,8 @@ fn genTypedValue(self: *CodeGen, val: Value) InnerError!MCValue {
138779 return self.genResult(try codegen.genTypedValue(self.bin_file, self.pt, self.src_loc, val, self.target.*));180360 return self.genResult(try codegen.genTypedValue(self.bin_file, self.pt, self.src_loc, val, self.target.*));
138780}180361}
138781180362
138782fn lowerUav(self: *CodeGen, val: Value) InnerError!MCValue {180363fn lowerUav(self: *CodeGen, val: Value, alignment: InternPool.Alignment) InnerError!MCValue {
138783 return self.genResult(try self.bin_file.lowerUav(self.pt, val.toIntern(), .none, self.src_loc));180364 return self.genResult(try self.bin_file.lowerUav(self.pt, val.toIntern(), alignment, self.src_loc));
138784}180365}
138785180366
138786const CallMCValues = struct {180367const CallMCValues = struct {
...@@ -139221,7 +180802,7 @@ fn registerAlias(reg: Register, size_bytes: u32) Register {...@@ -139221,7 +180802,7 @@ fn registerAlias(reg: Register, size_bytes: u32) Register {
139221 reg180802 reg
139222 else180803 else
139223 unreachable,180804 unreachable,
139224 .x87 => if (size_bytes >= 10 and size_bytes <= 16)180805 .x87 => if (size_bytes >= 4 and size_bytes <= 16)
139225 reg180806 reg
139226 else180807 else
139227 unreachable,180808 unreachable,
...@@ -139508,11 +181089,25 @@ fn promoteVarArg(self: *CodeGen, ty: Type) Type {...@@ -139508,11 +181089,25 @@ fn promoteVarArg(self: *CodeGen, ty: Type) Type {
139508fn unalignedSize(cg: *CodeGen, ty: Type) u64 {181089fn unalignedSize(cg: *CodeGen, ty: Type) u64 {
139509 const zcu = cg.pt.zcu;181090 const zcu = cg.pt.zcu;
139510 return switch (zcu.intern_pool.indexToKey(ty.toIntern())) {181091 return switch (zcu.intern_pool.indexToKey(ty.toIntern())) {
139511 .vector_type => |vector_type| Type.fromInterned(vector_type.child).abiSize(zcu) * vector_type.len,181092 .vector_type => |vector_type| switch (vector_type.child) {
181093 .bool_type => ty.abiSize(zcu),
181094 else => Type.fromInterned(vector_type.child).abiSize(zcu) * vector_type.len,
181095 },
139512 else => ty.abiSize(zcu),181096 else => ty.abiSize(zcu),
139513 };181097 };
139514}181098}
139515181099
181100fn nonBoolScalarBitSize(cg: *CodeGen, ty: Type) u32 {
181101 const zcu = cg.pt.zcu;
181102 return switch (zcu.intern_pool.indexToKey(ty.toIntern())) {
181103 .vector_type => |vector_type| switch (vector_type.child) {
181104 .bool_type => vector_type.len,
181105 else => @intCast(Type.fromInterned(vector_type.child).bitSize(zcu)),
181106 },
181107 else => @intCast(ty.bitSize(zcu)),
181108 };
181109}
181110
139516fn intInfo(cg: *CodeGen, ty: Type) ?std.builtin.Type.Int {181111fn intInfo(cg: *CodeGen, ty: Type) ?std.builtin.Type.Int {
139517 const zcu = cg.pt.zcu;181112 const zcu = cg.pt.zcu;
139518 const ip = &zcu.intern_pool;181113 const ip = &zcu.intern_pool;
...@@ -140286,7 +181881,7 @@ const Temp = struct {...@@ -140286,7 +181881,7 @@ const Temp = struct {
140286 else => |mcv| std.debug.panic("{s}: {}\n", .{ @src().fn_name, mcv }),181881 else => |mcv| std.debug.panic("{s}: {}\n", .{ @src().fn_name, mcv }),
140287 .register => |val_reg| try src.readReg(opts.disp, val_ty, registerAlias(181882 .register => |val_reg| try src.readReg(opts.disp, val_ty, registerAlias(
140288 val_reg,181883 val_reg,
140289 @intCast(val_ty.abiSize(cg.pt.zcu)),181884 @intCast(cg.unalignedSize(val_ty)),
140290 ), cg),181885 ), cg),
140291 inline .register_pair, .register_triple, .register_quadruple => |val_regs| {181886 inline .register_pair, .register_triple, .register_quadruple => |val_regs| {
140292 var disp = opts.disp;181887 var disp = opts.disp;
...@@ -140732,7 +182327,7 @@ const Temp = struct {...@@ -140732,7 +182327,7 @@ const Temp = struct {
140732 }, .{182327 }, .{
140733 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },182328 .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any },
140734 .patterns = &.{182329 .patterns = &.{
140735 .{ .src = .{ .mut_mem, .none, .none } },182330 .{ .src = .{ .to_mut_mem, .none, .none } },
140736 },182331 },
140737 .dst_temps = .{ .{ .ref = .src0 }, .unused },182332 .dst_temps = .{ .{ .ref = .src0 }, .unused },
140738 .each = .{ .once = &.{} },182333 .each = .{ .once = &.{} },
...@@ -140740,7 +182335,7 @@ const Temp = struct {...@@ -140740,7 +182335,7 @@ const Temp = struct {
140740 .required_features = .{ .@"64bit", null, null, null },182335 .required_features = .{ .@"64bit", null, null, null },
140741 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any, .any },182336 .src_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any, .any },
140742 .patterns = &.{182337 .patterns = &.{
140743 .{ .src = .{ .mut_mem, .none, .none } },182338 .{ .src = .{ .to_mut_mem, .none, .none } },
140744 },182339 },
140745 .extra_temps = .{182340 .extra_temps = .{
140746 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },182341 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -140766,7 +182361,7 @@ const Temp = struct {...@@ -140766,7 +182361,7 @@ const Temp = struct {
140766 .required_features = .{ .@"64bit", null, null, null },182361 .required_features = .{ .@"64bit", null, null, null },
140767 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any, .any },182362 .src_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any, .any },
140768 .patterns = &.{182363 .patterns = &.{
140769 .{ .src = .{ .mut_mem, .none, .none } },182364 .{ .src = .{ .to_mut_mem, .none, .none } },
140770 },182365 },
140771 .dst_temps = .{ .{ .ref = .src0 }, .unused },182366 .dst_temps = .{ .{ .ref = .src0 }, .unused },
140772 .each = .{ .once = &.{182367 .each = .{ .once = &.{
...@@ -140776,7 +182371,7 @@ const Temp = struct {...@@ -140776,7 +182371,7 @@ const Temp = struct {
140776 .required_features = .{ .@"64bit", null, null, null },182371 .required_features = .{ .@"64bit", null, null, null },
140777 .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },182372 .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
140778 .patterns = &.{182373 .patterns = &.{
140779 .{ .src = .{ .mut_mem, .none, .none } },182374 .{ .src = .{ .to_mut_mem, .none, .none } },
140780 },182375 },
140781 .extra_temps = .{182376 .extra_temps = .{
140782 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },182377 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -140805,7 +182400,7 @@ const Temp = struct {...@@ -140805,7 +182400,7 @@ const Temp = struct {
140805 .required_features = .{ .@"64bit", null, null, null },182400 .required_features = .{ .@"64bit", null, null, null },
140806 .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },182401 .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
140807 .patterns = &.{182402 .patterns = &.{
140808 .{ .src = .{ .mut_mem, .none, .none } },182403 .{ .src = .{ .to_mut_mem, .none, .none } },
140809 },182404 },
140810 .extra_temps = .{182405 .extra_temps = .{
140811 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },182406 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -140831,7 +182426,7 @@ const Temp = struct {...@@ -140831,7 +182426,7 @@ const Temp = struct {
140831 .required_features = .{ .@"64bit", null, null, null },182426 .required_features = .{ .@"64bit", null, null, null },
140832 .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any },182427 .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any },
140833 .patterns = &.{182428 .patterns = &.{
140834 .{ .src = .{ .mut_mem, .none, .none } },182429 .{ .src = .{ .to_mut_mem, .none, .none } },
140835 },182430 },
140836 .extra_temps = .{182431 .extra_temps = .{
140837 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },182432 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -140858,7 +182453,7 @@ const Temp = struct {...@@ -140858,7 +182453,7 @@ const Temp = struct {
140858 .required_features = .{ .@"64bit", null, null, null },182453 .required_features = .{ .@"64bit", null, null, null },
140859 .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any },182454 .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any },
140860 .patterns = &.{182455 .patterns = &.{
140861 .{ .src = .{ .mut_mem, .none, .none } },182456 .{ .src = .{ .to_mut_mem, .none, .none } },
140862 },182457 },
140863 .extra_temps = .{182458 .extra_temps = .{
140864 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },182459 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -142870,7 +184465,7 @@ const Temp = struct {...@@ -142870,7 +184465,7 @@ const Temp = struct {
142870 .required_features = .{ .@"64bit", null, null, null },184465 .required_features = .{ .@"64bit", null, null, null },
142871 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },184466 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any },
142872 .patterns = &.{184467 .patterns = &.{
142873 .{ .src = .{ .mut_mem, .none, .none } },184468 .{ .src = .{ .to_mut_mem, .none, .none } },
142874 },184469 },
142875 .extra_temps = .{184470 .extra_temps = .{
142876 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },184471 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
...@@ -142902,7 +184497,7 @@ const Temp = struct {...@@ -142902,7 +184497,7 @@ const Temp = struct {
142902 .required_features = .{ .@"64bit", null, null, null },184497 .required_features = .{ .@"64bit", null, null, null },
142903 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },184498 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any },
142904 .patterns = &.{184499 .patterns = &.{
142905 .{ .src = .{ .mut_mem, .none, .none } },184500 .{ .src = .{ .to_mut_mem, .none, .none } },
142906 },184501 },
142907 .extra_temps = .{184502 .extra_temps = .{
142908 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },184503 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
...@@ -142931,7 +184526,7 @@ const Temp = struct {...@@ -142931,7 +184526,7 @@ const Temp = struct {
142931 .required_features = .{ .@"64bit", null, null, null },184526 .required_features = .{ .@"64bit", null, null, null },
142932 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any },184527 .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any },
142933 .patterns = &.{184528 .patterns = &.{
142934 .{ .src = .{ .mut_mem, .none, .none } },184529 .{ .src = .{ .to_mut_mem, .none, .none } },
142935 },184530 },
142936 .extra_temps = .{184531 .extra_temps = .{
142937 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },184532 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
...@@ -142961,7 +184556,7 @@ const Temp = struct {...@@ -142961,7 +184556,7 @@ const Temp = struct {
142961 .required_features = .{ .@"64bit", null, null, null },184556 .required_features = .{ .@"64bit", null, null, null },
142962 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any },184557 .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any },
142963 .patterns = &.{184558 .patterns = &.{
142964 .{ .src = .{ .mut_mem, .none, .none } },184559 .{ .src = .{ .to_mut_mem, .none, .none } },
142965 },184560 },
142966 .extra_temps = .{184561 .extra_temps = .{
142967 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },184562 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
...@@ -144973,7 +186568,11 @@ fn tempFromValue(cg: *CodeGen, value: Value) InnerError!Temp {...@@ -144973,7 +186568,11 @@ fn tempFromValue(cg: *CodeGen, value: Value) InnerError!Temp {
144973}186568}
144974186569
144975fn tempMemFromValue(cg: *CodeGen, value: Value) InnerError!Temp {186570fn tempMemFromValue(cg: *CodeGen, value: Value) InnerError!Temp {
144976 return cg.tempInit(value.typeOf(cg.pt.zcu), try cg.lowerUav(value));186571 return cg.tempMemFromAlignedValue(.none, value);
186572}
186573
186574fn tempMemFromAlignedValue(cg: *CodeGen, alignment: InternPool.Alignment, value: Value) InnerError!Temp {
186575 return cg.tempInit(value.typeOf(cg.pt.zcu), try cg.lowerUav(value, alignment));
144977}186576}
144978186577
144979fn tempFromOperand(cg: *CodeGen, op_ref: Air.Inst.Ref, op_dies: bool) InnerError!Temp {186578fn tempFromOperand(cg: *CodeGen, op_ref: Air.Inst.Ref, op_dies: bool) InnerError!Temp {
...@@ -145229,8 +186828,11 @@ const Select = struct {...@@ -145229,8 +186828,11 @@ const Select = struct {
145229 po2_any,186828 po2_any,
145230 bool,186829 bool,
145231 bool_vec: Memory.Size,186830 bool_vec: Memory.Size,
145232 ptr_bool_vec: Memory.Size,186831 exact_bool_vec: u16,
145233 ptr_any_bool_vec,186832 ptr_any_bool_vec,
186833 ptr_bool_vec: Memory.Size,
186834 remainder_bool_vec: OfIsSizes,
186835 exact_remainder_bool_vec: struct { of: Memory.Size, is: u16 },
145234 signed_int_vec: Memory.Size,186836 signed_int_vec: Memory.Size,
145235 signed_int_or_full_vec: Memory.Size,186837 signed_int_or_full_vec: Memory.Size,
145236 unsigned_int_vec: Memory.Size,186838 unsigned_int_vec: Memory.Size,
...@@ -145245,12 +186847,21 @@ const Select = struct {...@@ -145245,12 +186847,21 @@ const Select = struct {
145245 scalar_int: OfIsSizes,186847 scalar_int: OfIsSizes,
145246 scalar_signed_int: OfIsSizes,186848 scalar_signed_int: OfIsSizes,
145247 scalar_unsigned_int: OfIsSizes,186849 scalar_unsigned_int: OfIsSizes,
186850 exclusive_scalar_int: OfIsSizes,
186851 exclusive_scalar_signed_int: OfIsSizes,
186852 exclusive_scalar_unsigned_int: OfIsSizes,
186853 exact_scalar_int: OfIsSizes,
186854 exact_scalar_signed_int: OfIsSizes,
186855 exact_scalar_unsigned_int: OfIsSizes,
145248 scalar_signed_or_exclusive_int: OfIsSizes,186856 scalar_signed_or_exclusive_int: OfIsSizes,
145249 scalar_exact_int: struct { of: Memory.Size, is: u16 },186857 scalar_exact_int: struct { of: Memory.Size, is: u16 },
145250 scalar_exact_signed_int: struct { of: Memory.Size, is: u16 },186858 scalar_exact_signed_int: struct { of: Memory.Size, is: u16 },
145251 scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 },186859 scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 },
145252 multiple_scalar: OfIsSizes,186860 multiple_scalar: OfIsSizes,
145253 multiple_scalar_int: OfIsSizes,186861 multiple_scalar_int: OfIsSizes,
186862 unaligned_multiple_scalar_int: OfIsSizes,
186863 unaligned_multiple_scalar_signed_int: OfIsSizes,
186864 unaligned_multiple_scalar_unsigned_int: OfIsSizes,
145254 multiple_scalar_signed_int: OfIsSizes,186865 multiple_scalar_signed_int: OfIsSizes,
145255 multiple_scalar_unsigned_int: OfIsSizes,186866 multiple_scalar_unsigned_int: OfIsSizes,
145256 multiple_scalar_signed_or_exclusive_int: OfIsSizes,186867 multiple_scalar_signed_or_exclusive_int: OfIsSizes,
...@@ -145266,8 +186877,11 @@ const Select = struct {...@@ -145266,8 +186877,11 @@ const Select = struct {
145266 float: Memory.Size,186877 float: Memory.Size,
145267 scalar_any_float: Memory.Size,186878 scalar_any_float: Memory.Size,
145268 scalar_float: OfIsSizes,186879 scalar_float: OfIsSizes,
186880 exclusive_scalar_float: OfIsSizes,
186881 exact_scalar_float: OfIsSizes,
145269 multiple_scalar_any_float: Memory.Size,186882 multiple_scalar_any_float: Memory.Size,
145270 multiple_scalar_float: OfIsSizes,186883 multiple_scalar_float: OfIsSizes,
186884 unaligned_multiple_scalar_float: OfIsSizes,
145271 exact_int: u16,186885 exact_int: u16,
145272 exact_signed_int: u16,186886 exact_signed_int: u16,
145273 exact_unsigned_int: u16,186887 exact_unsigned_int: u16,
...@@ -145309,6 +186923,8 @@ const Select = struct {...@@ -145309,6 +186923,8 @@ const Select = struct {
145309 .bool => ty.toIntern() == .bool_type,186923 .bool => ty.toIntern() == .bool_type,
145310 .bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and186924 .bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and
145311 size.bitSize(cg.target) >= ty.vectorLen(zcu),186925 size.bitSize(cg.target) >= ty.vectorLen(zcu),
186926 .exact_bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and
186927 size == ty.vectorLen(zcu),
145312 .ptr_any_bool_vec => switch (zcu.intern_pool.indexToKey(ty.childType(zcu).toIntern())) {186928 .ptr_any_bool_vec => switch (zcu.intern_pool.indexToKey(ty.childType(zcu).toIntern())) {
145313 .vector_type => |vector_type| vector_type.child == .bool_type,186929 .vector_type => |vector_type| vector_type.child == .bool_type,
145314 else => false,186930 else => false,
...@@ -145317,6 +186933,10 @@ const Select = struct {...@@ -145317,6 +186933,10 @@ const Select = struct {
145317 .vector_type => |vector_type| vector_type.child == .bool_type and size.bitSize(cg.target) >= vector_type.len,186933 .vector_type => |vector_type| vector_type.child == .bool_type and size.bitSize(cg.target) >= vector_type.len,
145318 else => false,186934 else => false,
145319 },186935 },
186936 .remainder_bool_vec => |of_is| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and
186937 of_is.is.bitSize(cg.target) >= (ty.vectorLen(zcu) - 1) % of_is.of.bitSize(cg.target) + 1,
186938 .exact_remainder_bool_vec => |of_is| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and
186939 of_is.is == (ty.vectorLen(zcu) - 1) % of_is.of.bitSize(cg.target) + 1,
145320 .signed_int_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and186940 .signed_int_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and
145321 if (cg.intInfo(ty.childType(zcu))) |int_info| int_info.signedness == .signed else false,186941 if (cg.intInfo(ty.childType(zcu))) |int_info| int_info.signedness == .signed else false,
145322 .signed_int_or_full_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and186942 .signed_int_or_full_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and
...@@ -145362,6 +186982,22 @@ const Select = struct {...@@ -145362,6 +186982,22 @@ const Select = struct {
145362 .scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and186982 .scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
145363 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and186983 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
145364 of_is.is.bitSize(cg.target) >= int_info.bits else false,186984 of_is.is.bitSize(cg.target) >= int_info.bits else false,
186985 .exclusive_scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) > cg.unalignedSize(ty) and
186986 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
186987 .exclusive_scalar_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) > cg.unalignedSize(ty) and
186988 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
186989 of_is.is.bitSize(cg.target) >= int_info.bits else false,
186990 .exclusive_scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) > cg.unalignedSize(ty) and
186991 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
186992 of_is.is.bitSize(cg.target) >= int_info.bits else false,
186993 .exact_scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
186994 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
186995 .exact_scalar_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
186996 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
186997 of_is.is.bitSize(cg.target) >= int_info.bits else false,
186998 .exact_scalar_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
186999 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
187000 of_is.is.bitSize(cg.target) >= int_info.bits else false,
145365 .scalar_signed_or_exclusive_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and187001 .scalar_signed_or_exclusive_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
145366 if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {187002 if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {
145367 .signed => of_is.is.bitSize(cg.target) >= int_info.bits,187003 .signed => of_is.is.bitSize(cg.target) >= int_info.bits,
...@@ -145384,6 +187020,14 @@ const Select = struct {...@@ -145384,6 +187020,14 @@ const Select = struct {
145384 false,187020 false,
145385 .multiple_scalar_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and187021 .multiple_scalar_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
145386 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,187022 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
187023 .unaligned_multiple_scalar_int => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
187024 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
187025 .unaligned_multiple_scalar_signed_int => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
187026 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
187027 of_is.is.bitSize(cg.target) >= int_info.bits else false,
187028 .unaligned_multiple_scalar_unsigned_int => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
187029 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and
187030 of_is.is.bitSize(cg.target) >= int_info.bits else false,
145387 .multiple_scalar_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and187031 .multiple_scalar_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
145388 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and187032 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
145389 of_is.is.bitSize(cg.target) >= int_info.bits else false,187033 of_is.is.bitSize(cg.target) >= int_info.bits else false,
...@@ -145424,10 +187068,16 @@ const Select = struct {...@@ -145424,10 +187068,16 @@ const Select = struct {
145424 cg.floatBits(ty.scalarType(zcu)) != null,187068 cg.floatBits(ty.scalarType(zcu)) != null,
145425 .scalar_float => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and187069 .scalar_float => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
145426 if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false,187070 if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false,
187071 .exclusive_scalar_float => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) > cg.unalignedSize(ty) and
187072 if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false,
187073 .exact_scalar_float => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
187074 if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false,
145427 .multiple_scalar_any_float => |size| ty.abiSize(zcu) % @divExact(size.bitSize(cg.target), 8) == 0 and187075 .multiple_scalar_any_float => |size| ty.abiSize(zcu) % @divExact(size.bitSize(cg.target), 8) == 0 and
145428 cg.floatBits(ty.scalarType(zcu)) != null,187076 cg.floatBits(ty.scalarType(zcu)) != null,
145429 .multiple_scalar_float => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and187077 .multiple_scalar_float => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
145430 if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false,187078 if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false,
187079 .unaligned_multiple_scalar_float => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
187080 if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false,
145431 .exact_int => |bit_size| if (cg.intInfo(ty)) |int_info| bit_size == int_info.bits else false,187081 .exact_int => |bit_size| if (cg.intInfo(ty)) |int_info| bit_size == int_info.bits else false,
145432 .exact_signed_int => |bit_size| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {187082 .exact_signed_int => |bit_size| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {
145433 .signed => bit_size == int_info.bits,187083 .signed => bit_size == int_info.bits,
...@@ -145554,6 +187204,25 @@ const Select = struct {...@@ -145554,6 +187204,25 @@ const Select = struct {
145554 to_ymm,187204 to_ymm,
145555 mut_ymm,187205 mut_ymm,
145556 to_mut_ymm,187206 to_mut_ymm,
187207 reg_mask: RegMaskSpec,
187208 all_reg_mask: RegMaskSpec,
187209
187210 const RegMaskSpec = struct {
187211 size: Memory.Size,
187212 is: enum {
187213 any,
187214 uninverted,
187215 inverted,
187216
187217 fn matches(is: @This(), inverted: bool) bool {
187218 return switch (is) {
187219 .any => true,
187220 .uninverted => !inverted,
187221 .inverted => inverted,
187222 };
187223 }
187224 } = .any,
187225 };
145557187226
145558 fn matches(src: Src, temp: Temp, cg: *CodeGen) bool {187227 fn matches(src: Src, temp: Temp, cg: *CodeGen) bool {
145559 return switch (src) {187228 return switch (src) {
...@@ -145668,12 +187337,24 @@ const Select = struct {...@@ -145668,12 +187337,24 @@ const Select = struct {
145668 else => false,187337 else => false,
145669 },187338 },
145670 .to_ymm, .to_mut_ymm => temp.typeOf(cg).abiSize(cg.pt.zcu) == 32,187339 .to_ymm, .to_mut_ymm => temp.typeOf(cg).abiSize(cg.pt.zcu) == 32,
187340 .reg_mask => |mask_spec| switch (temp.tracking(cg).short) {
187341 .register_mask => |reg_mask| mask_spec.size.bitSize(cg.target) >=
187342 reg_mask.info.scalar.bitSize(cg.target) * temp.typeOf(cg).vectorLen(cg.pt.zcu) and
187343 mask_spec.is.matches(reg_mask.info.inverted),
187344 else => false,
187345 },
187346 .all_reg_mask => |mask_spec| switch (temp.tracking(cg).short) {
187347 .register_mask => |reg_mask| mask_spec.size.bitSize(cg.target) ==
187348 reg_mask.info.scalar.bitSize(cg.target) * temp.typeOf(cg).vectorLen(cg.pt.zcu) and
187349 reg_mask.info.kind == .all and mask_spec.is.matches(reg_mask.info.inverted),
187350 else => false,
187351 },
145671 };187352 };
145672 }187353 }
145673187354
145674 fn convert(src: Src, temp: *Temp, cg: *CodeGen) InnerError!bool {187355 fn convert(src: Src, temp: *Temp, cg: *CodeGen) InnerError!bool {
145675 return switch (src) {187356 return switch (src) {
145676 .none, .any, .imm, .imm8, .imm16, .imm32, .simm32 => false,187357 .none, .any, .imm, .imm8, .imm16, .imm32, .simm32, .reg_mask, .all_reg_mask => false,
145677 .mem, .to_mem => try temp.toBase(false, cg),187358 .mem, .to_mem => try temp.toBase(false, cg),
145678 .mut_mem, .to_mut_mem => try temp.toBase(true, cg),187359 .mut_mem, .to_mut_mem => try temp.toBase(true, cg),
145679 .to_reg => |reg| try temp.toReg(reg, cg),187360 .to_reg => |reg| try temp.toReg(reg, cg),
...@@ -145707,6 +187388,7 @@ const Select = struct {...@@ -145707,6 +187388,7 @@ const Select = struct {
145707 none,187388 none,
145708 undef,187389 undef,
145709 cc: Condition,187390 cc: Condition,
187391 ptest_cc: struct { ref: Select.Operand.Ref, not: bool = false, all: u1 },
145710 imm: i32,187392 imm: i32,
145711 ref: Select.Operand.Ref,187393 ref: Select.Operand.Ref,
145712 reg: Register,187394 reg: Register,
...@@ -145736,9 +187418,12 @@ const Select = struct {...@@ -145736,9 +187418,12 @@ const Select = struct {
145736 pshufb_splat_mem: struct { of: Memory.Size = .none, size: Memory.Size },187418 pshufb_splat_mem: struct { of: Memory.Size = .none, size: Memory.Size },
145737 pshufb_trunc_mem: struct { of: Memory.Size = .none, from: Memory.Size, to: Memory.Size },187419 pshufb_trunc_mem: struct { of: Memory.Size = .none, from: Memory.Size, to: Memory.Size },
145738 pand_trunc_mem: struct { from: Memory.Size, to: Memory.Size },187420 pand_trunc_mem: struct { from: Memory.Size, to: Memory.Size },
187421 pand_mask_mem: struct { ref: Select.Operand.Ref, invert: bool = false },
187422 ptest_mask_mem: Select.Operand.Ref,
145739 pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 },187423 pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 },
145740 forward_bits_mem,187424 bits_mem: enum { forward, reverse },
145741 reverse_bits_mem,187425 splat_int_mem: struct { ref: Select.Operand.Ref, inside: enum { umin, smin, smax } = .umin, outside: enum { smin, smax } },
187426 splat_float_mem: struct { ref: Select.Operand.Ref, inside: enum { zero } = .zero, outside: f16 },
145742 frame: FrameIndex,187427 frame: FrameIndex,
145743 lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none },187428 lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none },
145744 symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 },187429 symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 },
...@@ -145800,6 +187485,14 @@ const Select = struct {...@@ -145800,6 +187485,14 @@ const Select = struct {
145800 .undef => .{ try cg.tempInit(spec.type, .undef), true },187485 .undef => .{ try cg.tempInit(spec.type, .undef), true },
145801 .imm => |imm| .{ try cg.tempInit(spec.type, .{ .immediate = @bitCast(@as(i64, imm)) }), true },187486 .imm => |imm| .{ try cg.tempInit(spec.type, .{ .immediate = @bitCast(@as(i64, imm)) }), true },
145802 .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true },187487 .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true },
187488 .ptest_cc => |cc_spec| {
187489 const ccs: [2]Condition = .{ .z, .c };
187490 const cc = ccs[cc_spec.all ^ @intFromBool(cc_spec.ref.valueOf(s).register_mask.info.inverted)];
187491 return .{ try cg.tempInit(spec.type, .{ .eflags = switch (cc_spec.not) {
187492 false => cc,
187493 true => cc.negate(),
187494 } }), true };
187495 },
145803 .ref => |ref| .{ ref.tempOf(s), false },187496 .ref => |ref| .{ ref.tempOf(s), false },
145804 .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true },187497 .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true },
145805 .reg_pair => |regs| .{ try cg.tempInit(spec.type, .{ .register_pair = regs }), true },187498 .reg_pair => |regs| .{ try cg.tempInit(spec.type, .{ .register_pair = regs }), true },
...@@ -145988,16 +187681,15 @@ const Select = struct {...@@ -145988,16 +187681,15 @@ const Select = struct {
145988 } }))), true },187681 } }))), true },
145989 .pshufb_splat_mem => |splat_spec| {187682 .pshufb_splat_mem => |splat_spec| {
145990 const zcu = pt.zcu;187683 const zcu = pt.zcu;
145991 assert(spec.type.isVector(zcu));187684 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
145992 assert(spec.type.childType(zcu).toIntern() == .u8_type);
145993 var elem_buf: [32]u8 = @splat(1 << 7);187685 var elem_buf: [32]u8 = @splat(1 << 7);
145994 const elems = elem_buf[0..spec.type.vectorLen(zcu)];187686 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
145995 const of_bytes: u32 = @intCast(switch (splat_spec.of) {187687 const of_bytes: u6 = @intCast(switch (splat_spec.of) {
145996 .none => elems.len,187688 .none => elems.len,
145997 else => |of| @divExact(of.bitSize(cg.target), 8),187689 else => |of| @divExact(of.bitSize(cg.target), 8),
145998 });187690 });
145999 const size_bytes: u32 = @intCast(@divExact(splat_spec.size.bitSize(cg.target), 8));187691 const size_bytes: u6 = @intCast(@divExact(splat_spec.size.bitSize(cg.target), 8));
146000 var index: u32 = 0;187692 var index: u6 = 0;
146001 while (index < of_bytes) : (index += size_bytes) for (0..size_bytes) |byte_off| {187693 while (index < of_bytes) : (index += size_bytes) for (0..size_bytes) |byte_off| {
146002 elems[index + byte_off] = @as(u4, @truncate(byte_off));187694 elems[index + byte_off] = @as(u4, @truncate(byte_off));
146003 };187695 };
...@@ -146008,18 +187700,17 @@ const Select = struct {...@@ -146008,18 +187700,17 @@ const Select = struct {
146008 },187700 },
146009 .pshufb_trunc_mem => |trunc_spec| {187701 .pshufb_trunc_mem => |trunc_spec| {
146010 const zcu = pt.zcu;187702 const zcu = pt.zcu;
146011 assert(spec.type.isVector(zcu));187703 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
146012 assert(spec.type.childType(zcu).toIntern() == .u8_type);
146013 var elem_buf: [32]u8 = @splat(1 << 7);187704 var elem_buf: [32]u8 = @splat(1 << 7);
146014 const elems = elem_buf[0..spec.type.vectorLen(zcu)];187705 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
146015 const of_bytes: u32 = @intCast(switch (trunc_spec.of) {187706 const of_bytes: u6 = @intCast(switch (trunc_spec.of) {
146016 .none => elems.len,187707 .none => elems.len,
146017 else => |of| @divExact(of.bitSize(cg.target), 8),187708 else => |of| @divExact(of.bitSize(cg.target), 8),
146018 });187709 });
146019 const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));187710 const from_bytes: u5 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));
146020 const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));187711 const to_bytes: u5 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));
146021 var from_index: u32 = 0;187712 var from_index: u6 = 0;
146022 var to_index: u32 = 0;187713 var to_index: u6 = 0;
146023 while (from_index < of_bytes) : ({187714 while (from_index < of_bytes) : ({
146024 from_index += from_bytes;187715 from_index += from_bytes;
146025 switch (from_index % 16) {187716 switch (from_index % 16) {
...@@ -146036,27 +187727,69 @@ const Select = struct {...@@ -146036,27 +187727,69 @@ const Select = struct {
146036 },187727 },
146037 .pand_trunc_mem => |trunc_spec| {187728 .pand_trunc_mem => |trunc_spec| {
146038 const zcu = pt.zcu;187729 const zcu = pt.zcu;
146039 assert(spec.type.isVector(zcu));187730 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
146040 assert(spec.type.childType(zcu).toIntern() == .u8_type);
146041 var elem_buf: [32]u8 = @splat(0);187731 var elem_buf: [32]u8 = @splat(0);
146042 const elems = elem_buf[0..spec.type.vectorLen(zcu)];187732 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
146043 const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));187733 const from_bytes: u6 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));
146044 const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));187734 const to_bytes: u6 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));
146045 var index: u32 = 0;187735 var index: u6 = 0;
146046 while (index < elems.len) : (index += from_bytes) @memset(elems[index..][0..to_bytes], std.math.maxInt(u8));187736 while (index < elems.len) : (index += from_bytes) @memset(elems[index..][0..to_bytes], std.math.maxInt(u8));
146047 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{187737 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
146048 .ty = spec.type.toIntern(),187738 .ty = spec.type.toIntern(),
146049 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },187739 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
146050 } }))), true };187740 } }))), true };
146051 },187741 },
187742 .pand_mask_mem => |mask_spec| {
187743 const zcu = pt.zcu;
187744 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
187745 const ref_ty = mask_spec.ref.typeOf(s);
187746 assert(ref_ty.isVector(zcu));
187747 var elem_buf: [64]u8 = undefined;
187748 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
187749 const mask_len: usize = @intCast((cg.unalignedSize(ref_ty) - 1) % elems.len + 1);
187750 const invert_mask: u8 = switch (mask_spec.invert) {
187751 false => std.math.minInt(u8),
187752 true => std.math.maxInt(u8),
187753 };
187754 @memset(elems[0..mask_len], ~invert_mask);
187755 @memset(elems[mask_len..], invert_mask);
187756 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
187757 .ty = spec.type.toIntern(),
187758 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
187759 } }))), true };
187760 },
187761 .ptest_mask_mem => |mask_ref| {
187762 const zcu = pt.zcu;
187763 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
187764 const ref_ty = mask_ref.typeOf(s);
187765 assert(ref_ty.isVector(zcu) and ref_ty.childType(zcu).toIntern() == .bool_type);
187766 const mask_info = mask_ref.valueOf(s).register_mask.info;
187767 var elem_buf: [64]u8 = @splat(0);
187768 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
187769 const elem_bytes: u6 = @intCast(@divExact(mask_info.scalar.bitSize(cg.target), 8));
187770 var index: u7 = 0;
187771 for (0..@intCast(ref_ty.vectorLen(zcu))) |_| {
187772 switch (mask_info.kind) {
187773 .sign => {
187774 @memset(elems[index..][0 .. elem_bytes - 1], std.math.minInt(u8));
187775 elems[index + elem_bytes - 1] = @bitCast(@as(i8, std.math.minInt(i8)));
187776 },
187777 .all => @memset(elems[index..][0..elem_bytes], std.math.maxInt(u8)),
187778 }
187779 index += elem_bytes;
187780 }
187781 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
187782 .ty = spec.type.toIntern(),
187783 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
187784 } }))), true };
187785 },
146052 .pshufb_bswap_mem => |bswap_spec| {187786 .pshufb_bswap_mem => |bswap_spec| {
146053 const zcu = pt.zcu;187787 const zcu = pt.zcu;
146054 assert(spec.type.isVector(zcu));187788 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
146055 assert(spec.type.childType(zcu).toIntern() == .u8_type);
146056 var elem_buf: [32]u8 = @splat(1 << 7);187789 var elem_buf: [32]u8 = @splat(1 << 7);
146057 const elems = elem_buf[0..spec.type.vectorLen(zcu)];187790 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
146058 const len: usize = @intCast(@divExact(bswap_spec.size.bitSize(cg.target), 8));187791 const len: usize = @intCast(@divExact(bswap_spec.size.bitSize(cg.target), 8));
146059 var to_index: u32 = 0;187792 var to_index: u6 = 0;
146060 for (0..bswap_spec.repeat) |_| for (0..len) |from_index| {187793 for (0..bswap_spec.repeat) |_| for (0..len) |from_index| {
146061 @memset(elems[to_index..][0..bswap_spec.smear], @intCast(len - 1 - from_index));187794 @memset(elems[to_index..][0..bswap_spec.smear], @intCast(len - 1 - from_index));
146062 to_index += bswap_spec.smear;187795 to_index += bswap_spec.smear;
...@@ -146066,22 +187799,70 @@ const Select = struct {...@@ -146066,22 +187799,70 @@ const Select = struct {
146066 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },187799 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
146067 } }))), true };187800 } }))), true };
146068 },187801 },
146069 .forward_bits_mem, .reverse_bits_mem => {187802 .bits_mem => |direction| {
146070 const zcu = pt.zcu;187803 const zcu = pt.zcu;
146071 assert(spec.type.isVector(zcu));187804 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
146072 assert(spec.type.childType(zcu).toIntern() == .u8_type);
146073 var bytes: [32]u8 = undefined;187805 var bytes: [32]u8 = undefined;
146074 const elems = bytes[0..spec.type.vectorLen(zcu)];187806 const elems = bytes[0..spec.type.vectorLen(zcu)];
146075 for (elems, 0..) |*elem, index| elem.* = switch (spec.kind) {187807 for (elems, 0..) |*elem, index| elem.* = switch (direction) {
146076 else => unreachable,187808 .forward => @as(u8, 1 << 0) << @truncate(index),
146077 .forward_bits_mem => @as(u8, 1 << 0) << @truncate(index),187809 .reverse => @as(u8, 1 << 7) >> @truncate(index),
146078 .reverse_bits_mem => @as(u8, 1 << 7) >> @truncate(index),
146079 };187810 };
146080 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{187811 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
146081 .ty = spec.type.toIntern(),187812 .ty = spec.type.toIntern(),
146082 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },187813 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
146083 } }))), true };187814 } }))), true };
146084 },187815 },
187816 .splat_int_mem => |splat_spec| {
187817 const zcu = pt.zcu;
187818 const elem_ty = spec.type.scalarType(zcu);
187819 const elem_bits = cg.intInfo(elem_ty).?.bits;
187820 const ref_ty = splat_spec.ref.typeOf(s);
187821 assert(ref_ty.isVector(zcu) and cg.intInfo(ref_ty.childType(zcu)).?.bits <= elem_bits);
187822 var elem_buf: [64]InternPool.Index = undefined;
187823 const elems = elem_buf[0..if (elem_ty.toIntern() == spec.type.toIntern()) 1 else spec.type.vectorLen(zcu)];
187824 const inside_len = (ref_ty.vectorLen(zcu) - 1) % elems.len + 1;
187825 @memset(elems[0..inside_len], (try pt.intValue(elem_ty, @as(i64, switch (splat_spec.inside) {
187826 .umin => 0,
187827 .smin => std.math.minInt(i64),
187828 .smax => std.math.maxInt(i64),
187829 }) >> @intCast(64 - elem_bits))).toIntern());
187830 @memset(elems[inside_len..], (try pt.intValue(elem_ty, @as(i64, switch (splat_spec.outside) {
187831 .smin => std.math.minInt(i64),
187832 .smax => std.math.maxInt(i64),
187833 }) >> @intCast(64 - elem_bits))).toIntern());
187834 if (elems.len == 1) return .{ try cg.tempMemFromValue(.fromInterned(elems[0])), true };
187835 const mem_size = cg.unalignedSize(spec.type);
187836 return .{ try cg.tempMemFromAlignedValue(
187837 if (mem_size < 16) .fromByteUnits(mem_size) else .none,
187838 .fromInterned(try pt.intern(.{ .aggregate = .{
187839 .ty = if (mem_size < 16)
187840 (try pt.arrayType(.{ .len = elems.len, .child = elem_ty.toIntern() })).toIntern()
187841 else
187842 spec.type.toIntern(),
187843 .storage = .{ .elems = elems },
187844 } })),
187845 ), true };
187846 },
187847 .splat_float_mem => |splat_spec| {
187848 const zcu = pt.zcu;
187849 assert(spec.type.isVector(zcu));
187850 const elem_ty = spec.type.childType(zcu);
187851 assert(cg.floatBits(elem_ty) != null);
187852 const ref_ty = splat_spec.ref.typeOf(s);
187853 assert(ref_ty.isVector(zcu) and ref_ty.childType(zcu).toIntern() == elem_ty.toIntern());
187854 var elem_buf: [@divExact(64, 2)]InternPool.Index = undefined;
187855 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
187856 const inside_len = (ref_ty.vectorLen(zcu) - 1) % elems.len + 1;
187857 @memset(elems[0..inside_len], (try pt.floatValue(elem_ty, @as(f16, switch (splat_spec.inside) {
187858 .zero => 0.0,
187859 }))).toIntern());
187860 @memset(elems[inside_len..], (try pt.floatValue(elem_ty, splat_spec.outside)).toIntern());
187861 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
187862 .ty = spec.type.toIntern(),
187863 .storage = .{ .elems = elems },
187864 } }))), true };
187865 },
146085 .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true },187866 .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true },
146086 .lazy_symbol => |lazy_symbol_spec| {187867 .lazy_symbol => |lazy_symbol_spec| {
146087 const ip = &pt.zcu.intern_pool;187868 const ip = &pt.zcu.intern_pool;
...@@ -146170,6 +187951,7 @@ const Select = struct {...@@ -146170,6 +187951,7 @@ const Select = struct {
146170 unaligned_size,187951 unaligned_size,
146171 unaligned_size_add_elem_size,187952 unaligned_size_add_elem_size,
146172 unaligned_size_sub_elem_size,187953 unaligned_size_sub_elem_size,
187954 unaligned_size_sub_2_elem_size,
146173 bit_size,187955 bit_size,
146174 src0_bit_size,187956 src0_bit_size,
146175 @"8_size_sub_bit_size",187957 @"8_size_sub_bit_size",
...@@ -146182,6 +187964,7 @@ const Select = struct {...@@ -146182,6 +187964,7 @@ const Select = struct {
146182 src1,187964 src1,
146183 src1_sub_bit_size,187965 src1_sub_bit_size,
146184 log2_src0_elem_size,187966 log2_src0_elem_size,
187967 elem_mask,
146185 smin,187968 smin,
146186 smax,187969 smax,
146187 umax,187970 umax,
...@@ -146213,9 +187996,15 @@ const Select = struct {...@@ -146213,9 +187996,15 @@ const Select = struct {
146213 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };187996 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
146214 const add_unaligned_size_add_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_add_elem_size, .op = .mul, .rhs = .@"1" };187997 const add_unaligned_size_add_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_add_elem_size, .op = .mul, .rhs = .@"1" };
146215 const add_unaligned_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_sub_elem_size, .op = .mul, .rhs = .@"1" };187998 const add_unaligned_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_sub_elem_size, .op = .mul, .rhs = .@"1" };
187999 const add_unaligned_size_sub_2_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_sub_2_elem_size, .op = .mul, .rhs = .@"1" };
146216 const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };188000 const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };
146217 const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };188001 const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
188002 const add_bit_size_rem_8: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"1" };
146218 const add_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };188003 const add_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };
188004 const add_bit_size_div_8: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .div, .rhs = .@"8" };
188005 const add_bit_size_div_8_down_1: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .div_8_down, .rhs = .@"1" };
188006 const add_bit_size_div_8_down_2: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .div_8_down, .rhs = .@"2" };
188007 const add_bit_size_div_8_down_8: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .div_8_down, .rhs = .@"8" };
146219 const sub_bit_size_rem_64: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };188008 const sub_bit_size_rem_64: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };
146220 const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };188009 const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
146221 const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };188010 const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };
...@@ -146227,6 +188016,7 @@ const Select = struct {...@@ -146227,6 +188016,7 @@ const Select = struct {
146227 const add_2_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"2" };188016 const add_2_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"2" };
146228 const add_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"1" };188017 const add_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"1" };
146229 const sub_len: Adjust = .{ .sign = .neg, .lhs = .len, .op = .mul, .rhs = .@"1" };188018 const sub_len: Adjust = .{ .sign = .neg, .lhs = .len, .op = .mul, .rhs = .@"1" };
188019 const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" };
146230 const add_elem_size: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .mul, .rhs = .@"1" };188020 const add_elem_size: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .mul, .rhs = .@"1" };
146231 const add_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .div, .rhs = .@"8" };188021 const add_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .div, .rhs = .@"8" };
146232 const sub_elem_size_div_8: Adjust = .{ .sign = .neg, .lhs = .elem_size, .op = .div, .rhs = .@"8" };188022 const sub_elem_size_div_8: Adjust = .{ .sign = .neg, .lhs = .elem_size, .op = .div, .rhs = .@"8" };
...@@ -146240,13 +188030,13 @@ const Select = struct {...@@ -146240,13 +188030,13 @@ const Select = struct {
146240 const sub_src0_elem_size: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"1" };188030 const sub_src0_elem_size: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"1" };
146241 const add_src0_elem_size_mul_src1: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" };188031 const add_src0_elem_size_mul_src1: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" };
146242 const sub_src0_elem_size_mul_src1: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" };188032 const sub_src0_elem_size_mul_src1: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" };
188033 const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" };
146243 const add_src1_div_8_down_4: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .div_8_down, .rhs = .@"4" };188034 const add_src1_div_8_down_4: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .div_8_down, .rhs = .@"4" };
146244 const add_src1_rem_32: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"4" };188035 const add_src1_rem_32: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"4" };
146245 const add_src1_rem_64: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"8" };188036 const add_src1_rem_64: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"8" };
146246 const add_src1_sub_bit_size: Adjust = .{ .sign = .pos, .lhs = .src1_sub_bit_size, .op = .mul, .rhs = .@"1" };188037 const add_src1_sub_bit_size: Adjust = .{ .sign = .pos, .lhs = .src1_sub_bit_size, .op = .mul, .rhs = .@"1" };
146247 const add_log2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .log2_src0_elem_size, .op = .mul, .rhs = .@"1" };188038 const add_log2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .log2_src0_elem_size, .op = .mul, .rhs = .@"1" };
146248 const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" };188039 const elem_mask: Adjust = .{ .sign = .pos, .lhs = .elem_mask, .op = .mul, .rhs = .@"1" };
146249 const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" };
146250 const add_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"1" };188040 const add_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"1" };
146251 const add_2_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"2" };188041 const add_2_smin: Adjust = .{ .sign = .pos, .lhs = .smin, .op = .mul, .rhs = .@"2" };
146252 const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" };188042 const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" };
...@@ -146736,6 +188526,9 @@ const Select = struct {...@@ -146736,6 +188526,9 @@ const Select = struct {
146736 fn uia(imm: u32, base: Ref.Sized, adjust: Adjust) Select.Operand {188526 fn uia(imm: u32, base: Ref.Sized, adjust: Adjust) Select.Operand {
146737 return .{ .flags = .{ .tag = .uimm, .adjust = adjust, .base = base }, .imm = @bitCast(imm) };188527 return .{ .flags = .{ .tag = .uimm, .adjust = adjust, .base = base }, .imm = @bitCast(imm) };
146738 }188528 }
188529 fn uas(base: Ref.Sized, scale: Memory.Scale, adjust: Adjust) Select.Operand {
188530 return .{ .flags = .{ .tag = .uimm, .adjust = adjust, .base = base, .index = .{ .scale = scale } } };
188531 }
146739188532
146740 fn rm(mode: bits.RoundMode) Select.Operand {188533 fn rm(mode: bits.RoundMode) Select.Operand {
146741 return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(mode.imm().unsigned) };188534 return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(mode.imm().unsigned) };
...@@ -147004,8 +188797,12 @@ const Select = struct {...@@ -147004,8 +188797,12 @@ const Select = struct {
147004 const ty = op.flags.base.ref.typeOf(s);188797 const ty = op.flags.base.ref.typeOf(s);
147005 break :lhs @intCast(s.cg.unalignedSize(ty) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));188798 break :lhs @intCast(s.cg.unalignedSize(ty) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
147006 },188799 },
147007 .bit_size => @intCast(op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),188800 .unaligned_size_sub_2_elem_size => {
147008 .src0_bit_size => @intCast(Select.Operand.Ref.src0.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),188801 const ty = op.flags.base.ref.typeOf(s);
188802 break :lhs @intCast(s.cg.unalignedSize(ty) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * 2);
188803 },
188804 .bit_size => @intCast(s.cg.nonBoolScalarBitSize(op.flags.base.ref.typeOf(s))),
188805 .src0_bit_size => @intCast(s.cg.nonBoolScalarBitSize(Select.Operand.Ref.src0.typeOf(s))),
147009 .@"8_size_sub_bit_size" => {188806 .@"8_size_sub_bit_size" => {
147010 const ty = op.flags.base.ref.typeOf(s);188807 const ty = op.flags.base.ref.typeOf(s);
147011 break :lhs @intCast(8 * ty.abiSize(s.cg.pt.zcu) - ty.bitSize(s.cg.pt.zcu));188808 break :lhs @intCast(8 * ty.abiSize(s.cg.pt.zcu) - ty.bitSize(s.cg.pt.zcu));
...@@ -147022,26 +188819,40 @@ const Select = struct {...@@ -147022,26 +188819,40 @@ const Select = struct {
147022 Select.Operand.Ref.src1.valueOf(s).immediate),188819 Select.Operand.Ref.src1.valueOf(s).immediate),
147023 .src1 => @intCast(Select.Operand.Ref.src1.valueOf(s).immediate),188820 .src1 => @intCast(Select.Operand.Ref.src1.valueOf(s).immediate),
147024 .src1_sub_bit_size => @as(SignedImm, @intCast(Select.Operand.Ref.src1.valueOf(s).immediate)) -188821 .src1_sub_bit_size => @as(SignedImm, @intCast(Select.Operand.Ref.src1.valueOf(s).immediate)) -
147025 @as(SignedImm, @intCast(op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu))),188822 @as(SignedImm, @intCast(s.cg.nonBoolScalarBitSize(op.flags.base.ref.typeOf(s)))),
147026 .log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))),188823 .log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))),
147027 .smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate(188824 .elem_mask => @as(u8, std.math.maxInt(u8)) >> @intCast(
147028 -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),188825 8 - ((s.cg.unalignedSize(op.flags.base.ref.typeOf(s)) - 1) %
147029 ),188826 @divExact(op.flags.base.size.bitSize(s.cg.target), 8) + 1 >>
147030 .smax => @as(SignedImm, std.math.maxInt(SignedImm)) >> @truncate(188827 op.flags.index.scale.toLog2()),
147031 -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
147032 ),
147033 .umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate(
147034 -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
147035 )),
147036 .smax_shr_src1 => @as(SignedImm, std.math.maxInt(SignedImm)) >> @truncate(
147037 Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
147038 ),188828 ),
147039 .smin_shr_src1 => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate(188829 inline .smin, .smax, .umax, .smin_shr_src1, .smax_shr_src1, .umax_shr_src1 => |adjust| switch (op.flags.base.size) {
147040 Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),188830 else => unreachable,
147041 ),188831 inline .none, .byte, .word, .dword, .qword => |size| {
147042 .umax_shr_src1 => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate(188832 const Imm = switch (adjust) {
147043 Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),188833 else => comptime unreachable,
147044 )),188834 .smin, .smax, .smin_shr_src1, .smax_shr_src1 => SignedImm,
188835 .umax, .umax_shr_src1 => UnsignedImm,
188836 };
188837 const RefImm = switch (size) {
188838 else => comptime unreachable,
188839 .none => Imm,
188840 .byte, .word, .dword, .qword => @Type(comptime .{ .int = .{
188841 .signedness = @typeInfo(Imm).int.signedness,
188842 .bits = size.bitSize(undefined),
188843 } }),
188844 };
188845 break :lhs @bitCast(@as(Imm, @intCast(@as(RefImm, switch (adjust) {
188846 else => comptime unreachable,
188847 .smin, .smin_shr_src1 => std.math.minInt,
188848 .smax, .umax, .smax_shr_src1, .umax_shr_src1 => std.math.maxInt,
188849 }(RefImm)) >> @truncate(switch (adjust) {
188850 else => comptime unreachable,
188851 .smin, .smax, .umax => 0,
188852 .smin_shr_src1, .smax_shr_src1, .umax_shr_src1 => Select.Operand.Ref.src1.valueOf(s).immediate,
188853 } -% s.cg.nonBoolScalarBitSize(op.flags.base.ref.typeOf(s))))));
188854 },
188855 },
147045 .repeat => switch (SignedImm) {188856 .repeat => switch (SignedImm) {
147046 else => unreachable,188857 else => unreachable,
147047 i64 => return @as(i64, op.imm) << 32 | @as(u32, @bitCast(op.imm)),188858 i64 => return @as(i64, op.imm) << 32 | @as(u32, @bitCast(op.imm)),
...@@ -147084,6 +188895,7 @@ const Select = struct {...@@ -147084,6 +188895,7 @@ const Select = struct {
147084 } },188895 } },
147085 else => |mcv| .{ .mem = try mcv.mem(s.cg, .{ .size = op.flags.base.size }) },188896 else => |mcv| .{ .mem = try mcv.mem(s.cg, .{ .size = op.flags.base.size }) },
147086 .register => |reg| .{ .reg = s.lowerReg(reg.toSize(op.flags.base.size, s.cg.target)) },188897 .register => |reg| .{ .reg = s.lowerReg(reg.toSize(op.flags.base.size, s.cg.target)) },
188898 .register_mask => |reg_mask| .{ .reg = s.lowerReg(reg_mask.reg.toSize(op.flags.base.size, s.cg.target)) },
147087 .lea_symbol => |sym_off| .{ .imm = .rel(sym_off) },188899 .lea_symbol => |sym_off| .{ .imm = .rel(sym_off) },
147088 },188900 },
147089 .simm => .{ .imm = .s(op.adjustedImm(i32, s)) },188901 .simm => .{ .imm = .s(op.adjustedImm(i32, s)) },
...@@ -147252,7 +189064,10 @@ fn select(...@@ -147252,7 +189064,10 @@ fn select(
147252 },189064 },
147253 }189065 }
147254 }189066 }
147255 for (dst_temps, case.dst_temps[0..dst_temps.len]) |dst_temp, tmp_kind| tmp_kind.finish(dst_temp, cg);189067 for (case.dst_temps[0..dst_temps.len], dst_temps, dst_tys) |tmp_kind, dst_temp, dst_ty| {
189068 tmp_kind.finish(dst_temp, cg);
189069 cg.temp_type[@intFromEnum(dst_temp.unwrap(cg).temp)] = dst_ty;
189070 }
147256 for (tmp_owned, s_tmp_temps) |owned, temp| if (owned) try temp.die(cg);189071 for (tmp_owned, s_tmp_temps) |owned, temp| if (owned) try temp.die(cg);
147257 return;189072 return;
147258 }189073 }
src/arch/x86_64/Encoding.zig+45-30
...@@ -313,7 +313,7 @@ pub const Mnemonic = enum {...@@ -313,7 +313,7 @@ pub const Mnemonic = enum {
313 @"or", out, outs, outsb, outsd, outsw,313 @"or", out, outs, outsb, outsd, outsw,
314 pause, pop, popf, popfd, popfq, push, pushfq,314 pause, pop, popf, popfd, popfq, push, pushfq,
315 rcl, rcr,315 rcl, rcr,
316 rdfsbase, rdgsbase, rdmsr, rdpid, rdpkru, rdpmc, rdrand, rdseed, rdssd, rdssq, rdtsc, rdtscp,316 rdfsbase, rdgsbase, rdmsr, rdpid, rdpkru, rdpmc, rdrand, rdseed, rdsspd, rdsspq, rdtsc, rdtscp,
317 ret, rol, ror, rsm,317 ret, rol, ror, rsm,
318 sahf, sal, sar, sbb,318 sahf, sal, sar, sbb,
319 scas, scasb, scasd, scasq, scasw,319 scas, scasb, scasd, scasq, scasw,
...@@ -336,7 +336,7 @@ pub const Mnemonic = enum {...@@ -336,7 +336,7 @@ pub const Mnemonic = enum {
336 fcom, fcomi, fcomip, fcomp, fcompp, fcos,336 fcom, fcomi, fcomip, fcomp, fcompp, fcos,
337 fdecstp, fdiv, fdivp, fdivr, fdivrp, ffree,337 fdecstp, fdiv, fdivp, fdivr, fdivrp, ffree,
338 fiadd, ficom, ficomp, fidiv, fidivr, fild, fimul, fincstp, finit,338 fiadd, ficom, ficomp, fidiv, fidivr, fild, fimul, fincstp, finit,
339 fist, fistp, fisttp, fisub, fisubr,339 fist, fistp, fisub, fisubr,
340 fld, fld1, fldcw, fldenv, fldl2e, fldl2t, fldlg2, fldln2, fldpi, fldz,340 fld, fld1, fldcw, fldenv, fldl2e, fldl2t, fldlg2, fldln2, fldpi, fldz,
341 fmul, fmulp,341 fmul, fmulp,
342 fnclex, fninit, fnop, fnsave, fnstcw, fnstenv, fnstsw,342 fnclex, fninit, fnop, fnsave, fnstcw, fnstenv, fnstsw,
...@@ -349,19 +349,18 @@ pub const Mnemonic = enum {...@@ -349,19 +349,18 @@ pub const Mnemonic = enum {
349 // MMX349 // MMX
350 emms, movd, movq,350 emms, movd, movq,
351 packssdw, packsswb, packuswb,351 packssdw, packsswb, packuswb,
352 paddb, paddd, paddq, paddsb, paddsw, paddusb, paddusw, paddw,352 paddb, paddd, paddsb, paddsw, paddusb, paddusw, paddw,
353 pand, pandn, por, pxor,353 pand, pandn, por, pxor,
354 pcmpeqb, pcmpeqd, pcmpeqw,354 pcmpeqb, pcmpeqd, pcmpeqw,
355 pcmpgtb, pcmpgtd, pcmpgtw,355 pcmpgtb, pcmpgtd, pcmpgtw,
356 pmulhw, pmullw,356 pmaddwd, pmulhw, pmullw,
357 pslld, psllq, psllw,357 pslld, psllq, psllw,
358 psrad, psraw,358 psrad, psraw,
359 psrld, psrlq, psrlw,359 psrld, psrlq, psrlw,
360 psubb, psubd, psubq, psubsb, psubsw, psubusb, psubusw, psubw,360 psubb, psubd, psubsb, psubsw, psubusb, psubusw, psubw,
361 // SSE361 // SSE
362 addps, addss,362 addps, addss,
363 andps,363 andnps, andps,
364 andnps,
365 cmpps, cmpss, comiss,364 cmpps, cmpss, comiss,
366 cvtpi2ps, cvtps2pi, cvtsi2ss, cvtss2si, cvttps2pi, cvttss2si,365 cvtpi2ps, cvtps2pi, cvtsi2ss, cvtss2si, cvttps2pi, cvttss2si,
367 divps, divss,366 divps, divss,
...@@ -374,9 +373,11 @@ pub const Mnemonic = enum {...@@ -374,9 +373,11 @@ pub const Mnemonic = enum {
374 movss, movups,373 movss, movups,
375 mulps, mulss,374 mulps, mulss,
376 orps,375 orps,
376 pavgb, pavgw,
377 pextrw, pinsrw,377 pextrw, pinsrw,
378 pmaxsw, pmaxub, pminsw, pminub, pmovmskb,378 pmaxsw, pmaxub, pminsw, pminub, pmovmskb, pmulhuw,
379 prefetchit0, prefetchit1, prefetchnta, prefetcht0, prefetcht1, prefetcht2, prefetchw, prefetchwt1,379 prefetchit0, prefetchit1, prefetchnta, prefetcht0, prefetcht1, prefetcht2, prefetchw, prefetchwt1,
380 psadbw, pshufw,
380 shufps,381 shufps,
381 sqrtps, sqrtss,382 sqrtps, sqrtss,
382 stmxcsr,383 stmxcsr,
...@@ -397,15 +398,16 @@ pub const Mnemonic = enum {...@@ -397,15 +398,16 @@ pub const Mnemonic = enum {
397 maxpd, maxsd,398 maxpd, maxsd,
398 minpd, minsd,399 minpd, minsd,
399 movapd,400 movapd,
400 movdqa, movdqu,401 movdq2q, movdqa, movdqu,
401 movhpd, movlpd,402 movhpd, movlpd,
402 movmskpd,403 movmskpd, movq2dq,
403 //movsd,404 //movsd,
404 movupd,405 movupd,
405 mulpd, mulsd,406 mulpd, mulsd,
406 orpd,407 orpd,
408 paddq, pmuludq,
407 pshufd, pshufhw, pshuflw,409 pshufd, pshufhw, pshuflw,
408 pslldq, psrldq,410 pslldq, psrldq, psubq,
409 punpckhbw, punpckhdq, punpckhqdq, punpckhwd,411 punpckhbw, punpckhdq, punpckhqdq, punpckhwd,
410 punpcklbw, punpckldq, punpcklqdq, punpcklwd,412 punpcklbw, punpckldq, punpcklqdq, punpcklwd,
411 shufpd,413 shufpd,
...@@ -414,9 +416,17 @@ pub const Mnemonic = enum {...@@ -414,9 +416,17 @@ pub const Mnemonic = enum {
414 ucomisd, unpckhpd, unpcklpd,416 ucomisd, unpckhpd, unpcklpd,
415 xorpd,417 xorpd,
416 // SSE3418 // SSE3
417 addsubpd, addsubps, haddpd, haddps, lddqu, movddup, movshdup, movsldup,419 addsubpd, addsubps,
420 fisttp,
421 haddpd, haddps,
422 hsubpd, hsubps,
423 lddqu,
424 movddup, movshdup, movsldup,
418 // SSSE3425 // SSSE3
419 pabsb, pabsd, pabsw, palignr, pshufb,426 pabsb, pabsd, pabsw, palignr,
427 phaddw, phaddsw, phaddd, phsubw, phsubsw, phsubd,
428 pmaddubsw, pmulhrsw, pshufb,
429 psignb, psignd, psignw,
420 // SSE4.1430 // SSE4.1
421 blendpd, blendps, blendvpd, blendvps,431 blendpd, blendps, blendvpd, blendvps,
422 dppd, dpps,432 dppd, dpps,
...@@ -426,11 +436,12 @@ pub const Mnemonic = enum {...@@ -426,11 +436,12 @@ pub const Mnemonic = enum {
426 pblendvb, pblendw,436 pblendvb, pblendw,
427 pcmpeqq,437 pcmpeqq,
428 pextrb, pextrd, pextrq,438 pextrb, pextrd, pextrq,
439 phminposuw,
429 pinsrb, pinsrd, pinsrq,440 pinsrb, pinsrd, pinsrq,
430 pmaxsb, pmaxsd, pmaxud, pmaxuw, pminsb, pminsd, pminud, pminuw,441 pmaxsb, pmaxsd, pmaxud, pmaxuw, pminsb, pminsd, pminud, pminuw,
431 pmovsxbd, pmovsxbq, pmovsxbw, pmovsxdq, pmovsxwd, pmovsxwq,442 pmovsxbd, pmovsxbq, pmovsxbw, pmovsxdq, pmovsxwd, pmovsxwq,
432 pmovzxbd, pmovzxbq, pmovzxbw, pmovzxdq, pmovzxwd, pmovzxwq,443 pmovzxbd, pmovzxbq, pmovzxbw, pmovzxdq, pmovzxwd, pmovzxwq,
433 pmulld,444 pmuldq, pmulld,
434 ptest,445 ptest,
435 roundpd, roundps, roundsd, roundss,446 roundpd, roundps, roundsd, roundss,
436 // SSE4.2447 // SSE4.2
...@@ -458,7 +469,7 @@ pub const Mnemonic = enum {...@@ -458,7 +469,7 @@ pub const Mnemonic = enum {
458 vdppd, vdpps,469 vdppd, vdpps,
459 vextractf128, vextractps,470 vextractf128, vextractps,
460 vgf2p8affineinvqb, vgf2p8affineqb, vgf2p8mulb,471 vgf2p8affineinvqb, vgf2p8affineqb, vgf2p8mulb,
461 vhaddpd, vhaddps,472 vhaddpd, vhaddps, vhsubpd, vhsubps,
462 vinsertf128, vinsertps,473 vinsertf128, vinsertps,
463 vlddqu, vldmxcsr,474 vlddqu, vldmxcsr,
464 vmaskmovpd, vmaskmovps,475 vmaskmovpd, vmaskmovps,
...@@ -480,21 +491,24 @@ pub const Mnemonic = enum {...@@ -480,21 +491,24 @@ pub const Mnemonic = enum {
480 vpabsb, vpabsd, vpabsw,491 vpabsb, vpabsd, vpabsw,
481 vpackssdw, vpacksswb, vpackusdw, vpackuswb,492 vpackssdw, vpacksswb, vpackusdw, vpackuswb,
482 vpaddb, vpaddd, vpaddq, vpaddsb, vpaddsw, vpaddusb, vpaddusw, vpaddw,493 vpaddb, vpaddd, vpaddq, vpaddsb, vpaddsw, vpaddusb, vpaddusw, vpaddw,
483 vpalignr, vpand, vpandn,494 vpalignr, vpand, vpandn, vpavgb, vpavgw,
484 vpblendvb, vpblendw, vpclmulqdq,495 vpblendvb, vpblendw, vpclmulqdq,
485 vpcmpeqb, vpcmpeqd, vpcmpeqq, vpcmpeqw,496 vpcmpeqb, vpcmpeqd, vpcmpeqq, vpcmpeqw,
486 vpcmpgtb, vpcmpgtd, vpcmpgtq, vpcmpgtw,497 vpcmpgtb, vpcmpgtd, vpcmpgtq, vpcmpgtw,
487 vperm2f128, vpermilpd, vpermilps,498 vperm2f128, vpermilpd, vpermilps,
488 vpextrb, vpextrd, vpextrq, vpextrw,499 vpextrb, vpextrd, vpextrq, vpextrw,
500 vphaddw, vphaddsw, vphaddd, vphminposuw, vphsubw, vphsubsw, vphsubd,
489 vpinsrb, vpinsrd, vpinsrq, vpinsrw,501 vpinsrb, vpinsrd, vpinsrq, vpinsrw,
502 vpmaddubsw, vpmaddwd,
490 vpmaxsb, vpmaxsd, vpmaxsw, vpmaxub, vpmaxud, vpmaxuw,503 vpmaxsb, vpmaxsd, vpmaxsw, vpmaxub, vpmaxud, vpmaxuw,
491 vpminsb, vpminsd, vpminsw, vpminub, vpminud, vpminuw,504 vpminsb, vpminsd, vpminsw, vpminub, vpminud, vpminuw,
492 vpmovmskb,505 vpmovmskb,
493 vpmovsxbd, vpmovsxbq, vpmovsxbw, vpmovsxdq, vpmovsxwd, vpmovsxwq,506 vpmovsxbd, vpmovsxbq, vpmovsxbw, vpmovsxdq, vpmovsxwd, vpmovsxwq,
494 vpmovzxbd, vpmovzxbq, vpmovzxbw, vpmovzxdq, vpmovzxwd, vpmovzxwq,507 vpmovzxbd, vpmovzxbq, vpmovzxbw, vpmovzxdq, vpmovzxwd, vpmovzxwq,
495 vpmulhw, vpmulld, vpmullw,508 vpmuldq, vpmulhrsw, vpmulhuw, vpmulhw, vpmulld, vpmullw, vpmuludq,
496 vpor,509 vpor,
497 vpshufb, vpshufd, vpshufhw, vpshuflw,510 vpsadbw, vpshufb, vpshufd, vpshufhw, vpshuflw,
511 vpsignb, vpsignd, vpsignw,
498 vpslld, vpslldq, vpsllq, vpsllw,512 vpslld, vpslldq, vpsllq, vpsllw,
499 vpsrad, vpsraq, vpsraw,513 vpsrad, vpsraq, vpsraw,
500 vpsrld, vpsrldq, vpsrlq, vpsrlw,514 vpsrld, vpsrldq, vpsrlq, vpsrlw,
...@@ -779,7 +793,7 @@ pub const Op = enum {...@@ -779,7 +793,7 @@ pub const Op = enum {
779 pub fn isImmediate(op: Op) bool {793 pub fn isImmediate(op: Op) bool {
780 // zig fmt: off794 // zig fmt: off
781 return switch (op) {795 return switch (op) {
782 .imm8, .imm16, .imm32, .imm64, 796 .imm8, .imm16, .imm32, .imm64,
783 .imm8s, .imm16s, .imm32s,797 .imm8s, .imm16s, .imm32s,
784 .rel8, .rel16, .rel32,798 .rel8, .rel16, .rel32,
785 .unity,799 .unity,
...@@ -986,6 +1000,7 @@ pub const Feature = enum {...@@ -986,6 +1000,7 @@ pub const Feature = enum {
986 sse,1000 sse,
987 sse2,1001 sse2,
988 sse3,1002 sse3,
1003 @"sse3 x87",
989 sse4_1,1004 sse4_1,
990 sse4_2,1005 sse4_2,
991 ssse3,1006 ssse3,
...@@ -1015,7 +1030,7 @@ fn estimateInstructionLength(prefix: Prefix, encoding: Encoding, ops: []const Op...@@ -1015,7 +1030,7 @@ fn estimateInstructionLength(prefix: Prefix, encoding: Encoding, ops: []const Op
1015}1030}
10161031
1017const mnemonic_to_encodings_map = init: {1032const mnemonic_to_encodings_map = init: {
1018 @setEvalBranchQuota(5_800);1033 @setEvalBranchQuota(5_900);
1019 const ModrmExt = u3;1034 const ModrmExt = u3;
1020 const Entry = struct { Mnemonic, OpEn, []const Op, []const u8, ModrmExt, Mode, Feature };1035 const Entry = struct { Mnemonic, OpEn, []const Op, []const u8, ModrmExt, Mode, Feature };
1021 const encodings: []const Entry = @import("encodings.zon");1036 const encodings: []const Entry = @import("encodings.zon");
...@@ -1024,17 +1039,17 @@ const mnemonic_to_encodings_map = init: {...@@ -1024,17 +1039,17 @@ const mnemonic_to_encodings_map = init: {
1024 var mnemonic_map: [mnemonic_count][]Data = @splat(&.{});1039 var mnemonic_map: [mnemonic_count][]Data = @splat(&.{});
1025 for (encodings) |entry| mnemonic_map[@intFromEnum(entry[0])].len += 1;1040 for (encodings) |entry| mnemonic_map[@intFromEnum(entry[0])].len += 1;
1026 var data_storage: [encodings.len]Data = undefined;1041 var data_storage: [encodings.len]Data = undefined;
1027 var storage_i: usize = 0;1042 var storage_index: usize = 0;
1028 for (&mnemonic_map) |*value| {1043 for (&mnemonic_map) |*value| {
1029 value.ptr = data_storage[storage_i..].ptr;1044 value.ptr = data_storage[storage_index..].ptr;
1030 storage_i += value.len;1045 storage_index += value.len;
1031 }1046 }
1032 var mnemonic_i: [mnemonic_count]usize = @splat(0);1047 var mnemonic_index: [mnemonic_count]usize = @splat(0);
1033 const ops_len = @typeInfo(@FieldType(Data, "ops")).array.len;1048 const ops_len = @typeInfo(@FieldType(Data, "ops")).array.len;
1034 const opc_len = @typeInfo(@FieldType(Data, "opc")).array.len;1049 const opc_len = @typeInfo(@FieldType(Data, "opc")).array.len;
1035 for (encodings) |entry| {1050 for (encodings) |entry| {
1036 const i = &mnemonic_i[@intFromEnum(entry[0])];1051 const index = &mnemonic_index[@intFromEnum(entry[0])];
1037 mnemonic_map[@intFromEnum(entry[0])][i.*] = .{1052 mnemonic_map[@intFromEnum(entry[0])][index.*] = .{
1038 .op_en = entry[1],1053 .op_en = entry[1],
1039 .ops = (entry[2] ++ .{.none} ** (ops_len - entry[2].len)).*,1054 .ops = (entry[2] ++ .{.none} ** (ops_len - entry[2].len)).*,
1040 .opc_len = entry[3].len,1055 .opc_len = entry[3].len,
...@@ -1043,14 +1058,14 @@ const mnemonic_to_encodings_map = init: {...@@ -1043,14 +1058,14 @@ const mnemonic_to_encodings_map = init: {
1043 .mode = entry[5],1058 .mode = entry[5],
1044 .feature = entry[6],1059 .feature = entry[6],
1045 };1060 };
1046 i.* += 1;1061 index.* += 1;
1047 }1062 }
1048 const final_storage = data_storage;1063 const final_storage = data_storage;
1049 var final_map: [mnemonic_count][]const Data = @splat(&.{});1064 var final_map: [mnemonic_count][]const Data = @splat(&.{});
1050 storage_i = 0;1065 storage_index = 0;
1051 for (&final_map, mnemonic_map) |*final_value, value| {1066 for (&final_map, mnemonic_map) |*final_value, value| {
1052 final_value.* = final_storage[storage_i..][0..value.len];1067 final_value.* = final_storage[storage_index..][0..value.len];
1053 storage_i += value.len;1068 storage_index += value.len;
1054 }1069 }
1055 break :init final_map;1070 break :init final_map;
1056};1071};
src/arch/x86_64/Lower.zig+4-4
...@@ -567,7 +567,7 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand)...@@ -567,7 +567,7 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand)
567}567}
568568
569fn generic(lower: *Lower, inst: Mir.Inst) Error!void {569fn generic(lower: *Lower, inst: Mir.Inst) Error!void {
570 @setEvalBranchQuota(2_500);570 @setEvalBranchQuota(2_800);
571 const fixes = switch (inst.ops) {571 const fixes = switch (inst.ops) {
572 .none => inst.data.none.fixes,572 .none => inst.data.none.fixes,
573 .inst => inst.data.inst.fixes,573 .inst => inst.data.inst.fixes,
...@@ -601,9 +601,9 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void {...@@ -601,9 +601,9 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void {
601 var buf: [max_len]u8 = undefined;601 var buf: [max_len]u8 = undefined;
602602
603 const fixes_name = @tagName(fixes);603 const fixes_name = @tagName(fixes);
604 const pattern = fixes_name[if (std.mem.indexOfScalar(u8, fixes_name, ' ')) |i| i + 1 else 0..];604 const pattern = fixes_name[if (std.mem.indexOfScalar(u8, fixes_name, ' ')) |i| i + " ".len else 0..];
605 const wildcard_i = std.mem.indexOfScalar(u8, pattern, '_').?;605 const wildcard_index = std.mem.indexOfScalar(u8, pattern, '_').?;
606 const parts = .{ pattern[0..wildcard_i], @tagName(inst.tag), pattern[wildcard_i + 1 ..] };606 const parts = .{ pattern[0..wildcard_index], @tagName(inst.tag), pattern[wildcard_index + "_".len ..] };
607 const err_msg = "unsupported mnemonic: ";607 const err_msg = "unsupported mnemonic: ";
608 const mnemonic = std.fmt.bufPrint(&buf, "{s}{s}{s}", parts) catch608 const mnemonic = std.fmt.bufPrint(&buf, "{s}{s}{s}", parts) catch
609 return lower.fail(err_msg ++ "'{s}{s}{s}'", parts);609 return lower.fail(err_msg ++ "'{s}{s}{s}'", parts);
src/arch/x86_64/Mir.zig+146-21
...@@ -34,6 +34,16 @@ pub const Inst = struct {...@@ -34,6 +34,16 @@ pub const Inst = struct {
34 /// ___ 434 /// ___ 4
35 _4,35 _4,
3636
37 /// ___ Demote
38 _demote,
39 /// ___ Flush
40 _flush,
41 /// ___ Flush Optimized
42 _flushopt,
43 /// ___ Instructions With T0 Hint
44 _it0,
45 /// ___ Instructions With T0 Hint
46 _it1,
37 /// ___ With NTA Hint47 /// ___ With NTA Hint
38 _nta,48 _nta,
39 /// System Call ___49 /// System Call ___
...@@ -44,6 +54,8 @@ pub const Inst = struct {...@@ -44,6 +54,8 @@ pub const Inst = struct {
44 _t1,54 _t1,
45 /// ___ With T2 Hint55 /// ___ With T2 Hint
46 _t2,56 _t2,
57 /// ___ Write Back
58 _wb,
47 /// ___ With Intent to Write and T1 Hint59 /// ___ With Intent to Write and T1 Hint
48 _wt1,60 _wt1,
4961
...@@ -53,6 +65,8 @@ pub const Inst = struct {...@@ -53,6 +65,8 @@ pub const Inst = struct {
53 _csspq,65 _csspq,
54 /// ___ FS Segment Base66 /// ___ FS Segment Base
55 _fsbase,67 _fsbase,
68 /// ___ GS
69 _gs,
56 /// ___ GS Segment Base70 /// ___ GS Segment Base
57 _gsbase,71 _gsbase,
58 /// ___ Model Specific Register72 /// ___ Model Specific Register
...@@ -67,8 +81,14 @@ pub const Inst = struct {...@@ -67,8 +81,14 @@ pub const Inst = struct {
67 _pmc,81 _pmc,
68 /// ___ Random Number82 /// ___ Random Number
69 _rand,83 _rand,
84 /// ___ r Busy Flag in a Supervisor Shadow Stack token
85 _rssbsy,
70 /// ___ Random Seed86 /// ___ Random Seed
71 _seed,87 _seed,
88 /// ___ Shadow Stack Doubleword
89 _ssd,
90 /// ___ Shadow Stack Quadword
91 _ssq,
72 /// ___ Shadow Stack Pointer Doubleword92 /// ___ Shadow Stack Pointer Doubleword
73 _sspd,93 _sspd,
74 /// ___ Shadow Stack Pointer Quadword94 /// ___ Shadow Stack Pointer Quadword
...@@ -77,9 +97,15 @@ pub const Inst = struct {...@@ -77,9 +97,15 @@ pub const Inst = struct {
77 _tsc,97 _tsc,
78 /// ___ Time-Stamp Counter And Processor ID98 /// ___ Time-Stamp Counter And Processor ID
79 _tscp,99 _tscp,
100 /// ___ User Shadow Stack Doubleword
101 _ussd,
102 /// ___ User Shadow Stack Quadword
103 _ussq,
80 /// VEX-Encoded ___ MXCSR104 /// VEX-Encoded ___ MXCSR
81 v_mxcsr,105 v_mxcsr,
82106
107 /// Byte ___
108 b_,
83 /// Interrupt ___109 /// Interrupt ___
84 /// Integer ___110 /// Integer ___
85 i_,111 i_,
...@@ -118,6 +144,8 @@ pub const Inst = struct {...@@ -118,6 +144,8 @@ pub const Inst = struct {
118 _ld,144 _ld,
119 /// ___ Left Without Affecting Flags145 /// ___ Left Without Affecting Flags
120 _lx,146 _lx,
147 /// ___ Mask
148 _msk,
121 /// ___ Right149 /// ___ Right
122 /// ___ For Reading150 /// ___ For Reading
123 /// ___ Register151 /// ___ Register
...@@ -139,6 +167,7 @@ pub const Inst = struct {...@@ -139,6 +167,7 @@ pub const Inst = struct {
139 /// ___ Below167 /// ___ Below
140 _b,168 _b,
141 /// ___ Below Or Equal169 /// ___ Below Or Equal
170 /// ___ Big Endian
142 _be,171 _be,
143 /// ___ Carry172 /// ___ Carry
144 /// ___ Carry Flag173 /// ___ Carry Flag
...@@ -212,8 +241,12 @@ pub const Inst = struct {...@@ -212,8 +241,12 @@ pub const Inst = struct {
212 _w,241 _w,
213 /// ___ Doubleword242 /// ___ Doubleword
214 //_d,243 //_d,
244 /// ___ Double Quadword to Quadword
245 _dq2q,
215 /// ___ QuadWord246 /// ___ QuadWord
216 _q,247 _q,
248 /// ___ Quadword to Double Quadword
249 _q2dq,
217250
218 /// ___ String251 /// ___ String
219 //_s,252 //_s,
...@@ -369,6 +402,8 @@ pub const Inst = struct {...@@ -369,6 +402,8 @@ pub const Inst = struct {
369 fn_sw,402 fn_sw,
370 /// Float Extended ___403 /// Float Extended ___
371 fx_,404 fx_,
405 /// Float Extended ___ 64
406 fx_64,
372407
373 /// ___ in 32-bit and Compatibility Mode408 /// ___ in 32-bit and Compatibility Mode
374 _32,409 _32,
...@@ -386,7 +421,18 @@ pub const Inst = struct {...@@ -386,7 +421,18 @@ pub const Inst = struct {
386 /// Packed ___ Quadword421 /// Packed ___ Quadword
387 p_q,422 p_q,
388 /// Packed ___ Double Quadword423 /// Packed ___ Double Quadword
424 /// Packed ___ Doubleword to Quadword
389 p_dq,425 p_dq,
426 /// Packed ___ Unsigned Doubleword to Quadword
427 p_udq,
428 /// Packed Carry-Less ___ Quadword to Double Quadword
429 pcl_qdq,
430 /// Packed Half ___ Doubleword
431 ph_d,
432 /// Packed Half ___ Saturate Word
433 ph_sw,
434 /// Packed Half ___ Word
435 ph_w,
390 /// ___ Aligned Packed Integer Values436 /// ___ Aligned Packed Integer Values
391 _dqa,437 _dqa,
392 /// ___ Unaligned Packed Integer Values438 /// ___ Unaligned Packed Integer Values
...@@ -400,6 +446,10 @@ pub const Inst = struct {...@@ -400,6 +446,10 @@ pub const Inst = struct {
400 //_sd,446 //_sd,
401 /// ___ Packed Double-Precision Values447 /// ___ Packed Double-Precision Values
402 _pd,448 _pd,
449 /// Half ___ Packed Single-Precision Values
450 h_ps,
451 /// Half ___ Packed Double-Precision Values
452 h_pd,
403453
404 /// ___ Internal Caches454 /// ___ Internal Caches
405 //_d,455 //_d,
...@@ -427,7 +477,7 @@ pub const Inst = struct {...@@ -427,7 +477,7 @@ pub const Inst = struct {
427 v_w,477 v_w,
428 /// VEX-Encoded ___ Doubleword478 /// VEX-Encoded ___ Doubleword
429 v_d,479 v_d,
430 /// VEX-Encoded ___ QuadWord480 /// VEX-Encoded ___ Quadword
431 v_q,481 v_q,
432 /// VEX-Encoded ___ Aligned Packed Integer Values482 /// VEX-Encoded ___ Aligned Packed Integer Values
433 v_dqa,483 v_dqa,
...@@ -446,7 +496,18 @@ pub const Inst = struct {...@@ -446,7 +496,18 @@ pub const Inst = struct {
446 /// VEX-Encoded Packed ___ Quadword496 /// VEX-Encoded Packed ___ Quadword
447 vp_q,497 vp_q,
448 /// VEX-Encoded Packed ___ Double Quadword498 /// VEX-Encoded Packed ___ Double Quadword
499 /// VEX-Encoded Packed ___ Doubleword to Quadword
449 vp_dq,500 vp_dq,
501 /// VEX-Encoded Packed ___ Unsigned Doubleword to Quadword
502 vp_udq,
503 /// VEx-Encoded Packed Carry-Less ___ Quadword to Double Quadword
504 vpcl_qdq,
505 /// VEX-Encoded Packed Half ___ Doubleword
506 vph_d,
507 /// VEX-Encoded Packed Half ___ Saturate Word
508 vph_sw,
509 /// VEX-Encoded Packed Half ___ Word
510 vph_w,
450 /// VEX-Encoded ___ Scalar Single-Precision Values511 /// VEX-Encoded ___ Scalar Single-Precision Values
451 v_ss,512 v_ss,
452 /// VEX-Encoded ___ Packed Single-Precision Values513 /// VEX-Encoded ___ Packed Single-Precision Values
...@@ -457,6 +518,10 @@ pub const Inst = struct {...@@ -457,6 +518,10 @@ pub const Inst = struct {
457 v_pd,518 v_pd,
458 /// VEX-Encoded ___ 128-Bits Of Floating-Point Data519 /// VEX-Encoded ___ 128-Bits Of Floating-Point Data
459 v_f128,520 v_f128,
521 /// VEX-Encoded Half ___ Packed Single-Precision Values
522 vh_ps,
523 /// VEX-Encoded Half ___ Packed Double-Precision Values
524 vh_pd,
460525
461 /// ___ 128-bit key with key locker526 /// ___ 128-bit key with key locker
462 _128,527 _128,
...@@ -504,6 +569,10 @@ pub const Inst = struct {...@@ -504,6 +569,10 @@ pub const Inst = struct {
504 /// Add scalar single-precision floating-point values569 /// Add scalar single-precision floating-point values
505 /// Add packed double-precision floating-point values570 /// Add packed double-precision floating-point values
506 /// Add scalar double-precision floating-point values571 /// Add scalar double-precision floating-point values
572 /// Packed single-precision floating-point horizontal add
573 /// Packed double-precision floating-point horizontal add
574 /// Packed horizontal add
575 /// Packed horizontal add and saturate
507 add,576 add,
508 /// Logical and577 /// Logical and
509 /// Bitwise logical and of packed single-precision floating-point values578 /// Bitwise logical and of packed single-precision floating-point values
...@@ -515,12 +584,15 @@ pub const Inst = struct {...@@ -515,12 +584,15 @@ pub const Inst = struct {
515 /// Bit scan reverse584 /// Bit scan reverse
516 bs,585 bs,
517 /// Byte swap586 /// Byte swap
518 bswap,587 /// Swap GS base register
588 swap,
519 /// Bit test589 /// Bit test
520 /// Bit test and complement590 /// Bit test and complement
521 /// Bit test and reset591 /// Bit test and reset
522 /// Bit test and set592 /// Bit test and set
523 bt,593 bt,
594 /// Check array index against bounds
595 bound,
524 /// Call596 /// Call
525 /// Fast system call597 /// Fast system call
526 call,598 call,
...@@ -536,17 +608,12 @@ pub const Inst = struct {...@@ -536,17 +608,12 @@ pub const Inst = struct {
536 /// Clear interrupt flag608 /// Clear interrupt flag
537 /// Clear task-switched flag in CR0609 /// Clear task-switched flag in CR0
538 /// Clear user interrupt flag610 /// Clear user interrupt flag
539 cl,
540 /// Cache line demote611 /// Cache line demote
541 cldemote,
542 /// Flush cache line612 /// Flush cache line
543 clflush,
544 /// Flush cache line optimized613 /// Flush cache line optimized
545 clflushopt,
546 /// Clear busy flag in a supervisor shadow stack token614 /// Clear busy flag in a supervisor shadow stack token
547 clrssbsy,
548 /// Cache line write back615 /// Cache line write back
549 clwb,616 cl,
550 /// Complement carry flag617 /// Complement carry flag
551 cmc,618 cmc,
552 /// Conditional move619 /// Conditional move
...@@ -644,15 +711,16 @@ pub const Inst = struct {...@@ -644,15 +711,16 @@ pub const Inst = struct {
644 lzcnt,711 lzcnt,
645 /// Move712 /// Move
646 /// Move data from string to string713 /// Move data from string to string
714 /// Move data after swapping bytes
647 /// Move scalar single-precision floating-point value715 /// Move scalar single-precision floating-point value
648 /// Move scalar double-precision floating-point value716 /// Move scalar double-precision floating-point value
649 /// Move doubleword717 /// Move doubleword
650 /// Move quadword718 /// Move quadword
651 /// Move aligned packed integer values719 /// Move aligned packed integer values
652 /// Move unaligned packed integer values720 /// Move unaligned packed integer values
721 /// Move quadword from XMM to MMX technology register
722 /// Move quadword from MMX technology to XMM register
653 mov,723 mov,
654 /// Move data after swapping bytes
655 movbe,
656 /// Move with sign extension724 /// Move with sign extension
657 movsx,725 movsx,
658 /// Move with zero extension726 /// Move with zero extension
...@@ -663,6 +731,9 @@ pub const Inst = struct {...@@ -663,6 +731,9 @@ pub const Inst = struct {
663 /// Multiply scalar single-precision floating-point values731 /// Multiply scalar single-precision floating-point values
664 /// Multiply packed double-precision floating-point values732 /// Multiply packed double-precision floating-point values
665 /// Multiply scalar double-precision floating-point values733 /// Multiply scalar double-precision floating-point values
734 /// Multiply packed unsigned doubleword integers
735 /// Multiply packed doubleword integers
736 /// Carry-less multiplication quadword
666 mul,737 mul,
667 /// Two's complement negation738 /// Two's complement negation
668 neg,739 neg,
...@@ -729,6 +800,8 @@ pub const Inst = struct {...@@ -729,6 +800,8 @@ pub const Inst = struct {
729 sca,800 sca,
730 /// Send user interprocessor interrupt801 /// Send user interprocessor interrupt
731 senduipi,802 senduipi,
803 /// Serialize instruction execution
804 serialize,
732 /// Set byte on condition805 /// Set byte on condition
733 set,806 set,
734 /// Logical shift left807 /// Logical shift left
...@@ -750,6 +823,10 @@ pub const Inst = struct {...@@ -750,6 +823,10 @@ pub const Inst = struct {
750 /// Subtract scalar single-precision floating-point values823 /// Subtract scalar single-precision floating-point values
751 /// Subtract packed double-precision floating-point values824 /// Subtract packed double-precision floating-point values
752 /// Subtract scalar double-precision floating-point values825 /// Subtract scalar double-precision floating-point values
826 /// Packed single-precision floating-point horizontal subtract
827 /// Packed double-precision floating-point horizontal subtract
828 /// Packed horizontal subtract
829 /// Packed horizontal subtract and saturate
753 sub,830 sub,
754 /// Set carry flag831 /// Set carry flag
755 /// Set direction flag832 /// Set direction flag
...@@ -764,8 +841,6 @@ pub const Inst = struct {...@@ -764,8 +841,6 @@ pub const Inst = struct {
764 st,841 st,
765 /// Store string842 /// Store string
766 sto,843 sto,
767 /// Swap GS base register
768 swapgs,
769 /// Test condition844 /// Test condition
770 /// Logical compare845 /// Logical compare
771 /// Packed bit test846 /// Packed bit test
...@@ -780,6 +855,8 @@ pub const Inst = struct {...@@ -780,6 +855,8 @@ pub const Inst = struct {
780 /// Write to model specific register855 /// Write to model specific register
781 /// Write to model specific register856 /// Write to model specific register
782 /// Write to model specific register857 /// Write to model specific register
858 /// Write to shadow stack
859 /// Write to user shadow stack
783 wr,860 wr,
784 /// Exchange and add861 /// Exchange and add
785 xadd,862 xadd,
...@@ -896,6 +973,10 @@ pub const Inst = struct {...@@ -896,6 +973,10 @@ pub const Inst = struct {
896 cmpgt,973 cmpgt,
897 /// Empty MMX technology state974 /// Empty MMX technology state
898 emms,975 emms,
976 /// Multiply and add packed signed and unsigned bytes
977 maddubs,
978 /// Multiply and add packed integers
979 maddw,
899 /// Multiply packed signed integers and store low result980 /// Multiply packed signed integers and store low result
900 mull,981 mull,
901 /// Multiply packed signed integers and store high result982 /// Multiply packed signed integers and store high result
...@@ -924,6 +1005,8 @@ pub const Inst = struct {...@@ -924,6 +1005,8 @@ pub const Inst = struct {
924 unpcklwd,1005 unpcklwd,
9251006
926 // SSE1007 // SSE
1008 /// Average packed integers
1009 avg,
927 /// Convert packed doubleword integers to packed single-precision floating-point values1010 /// Convert packed doubleword integers to packed single-precision floating-point values
928 /// Convert packed doubleword integers to packed double-precision floating-point values1011 /// Convert packed doubleword integers to packed double-precision floating-point values
929 cvtpi2,1012 cvtpi2,
...@@ -986,9 +1069,13 @@ pub const Inst = struct {...@@ -986,9 +1069,13 @@ pub const Inst = struct {
986 /// Move unaligned packed single-precision floating-point values1069 /// Move unaligned packed single-precision floating-point values
987 /// Move unaligned packed double-precision floating-point values1070 /// Move unaligned packed double-precision floating-point values
988 movu,1071 movu,
1072 /// Multiply packed unsigned integers and store high result
1073 mulhu,
989 /// Prefetch data into caches1074 /// Prefetch data into caches
990 /// Prefetch data into caches with intent to write1075 /// Prefetch data into caches with intent to write
991 prefetch,1076 prefetch,
1077 /// Compute sum of absolute differences
1078 sadb,
992 /// Packed interleave shuffle of quadruplets of single-precision floating-point values1079 /// Packed interleave shuffle of quadruplets of single-precision floating-point values
993 /// Packed interleave shuffle of pairs of double-precision floating-point values1080 /// Packed interleave shuffle of pairs of double-precision floating-point values
994 /// Shuffle packed doublewords1081 /// Shuffle packed doublewords
...@@ -1048,9 +1135,6 @@ pub const Inst = struct {...@@ -1048,9 +1135,6 @@ pub const Inst = struct {
1048 /// Packed single-precision floating-point add/subtract1135 /// Packed single-precision floating-point add/subtract
1049 /// Packed double-precision floating-point add/subtract1136 /// Packed double-precision floating-point add/subtract
1050 addsub,1137 addsub,
1051 /// Packed single-precision floating-point horizontal add
1052 /// Packed double-precision floating-point horizontal add
1053 hadd,
1054 /// Replicate double floating-point values1138 /// Replicate double floating-point values
1055 movddup,1139 movddup,
1056 /// Replicate single floating-point values1140 /// Replicate single floating-point values
...@@ -1061,6 +1145,10 @@ pub const Inst = struct {...@@ -1061,6 +1145,10 @@ pub const Inst = struct {
1061 // SSSE31145 // SSSE3
1062 /// Packed align right1146 /// Packed align right
1063 alignr,1147 alignr,
1148 /// Packed multiply high with round and scale
1149 mulhrs,
1150 /// Packed sign
1151 sign,
10641152
1065 // SSE4.11153 // SSE4.1
1066 /// Pack with unsigned saturation1154 /// Pack with unsigned saturation
...@@ -1085,6 +1173,8 @@ pub const Inst = struct {...@@ -1085,6 +1173,8 @@ pub const Inst = struct {
1085 /// Insert scalar single-precision floating-point value1173 /// Insert scalar single-precision floating-point value
1086 /// Insert packed floating-point values1174 /// Insert packed floating-point values
1087 insert,1175 insert,
1176 /// Packed horizontal word minimum
1177 minposu,
1088 /// Packed move with sign extend1178 /// Packed move with sign extend
1089 movsxb,1179 movsxb,
1090 movsxd,1180 movsxd,
...@@ -1103,10 +1193,6 @@ pub const Inst = struct {...@@ -1103,10 +1193,6 @@ pub const Inst = struct {
1103 /// Accumulate CRC32 value1193 /// Accumulate CRC32 value
1104 crc32,1194 crc32,
11051195
1106 // PCLMUL
1107 /// Carry-less multiplication quadword
1108 clmulq,
1109
1110 // AES1196 // AES
1111 /// Perform one round of an AES decryption flow1197 /// Perform one round of an AES decryption flow
1112 /// Perform ten rounds of AES decryption flow with key locker using 128-bit key1198 /// Perform ten rounds of AES decryption flow with key locker using 128-bit key
...@@ -1626,12 +1712,51 @@ pub const Inst = struct {...@@ -1626,12 +1712,51 @@ pub const Inst = struct {
1626 reg_list: RegisterList,1712 reg_list: RegisterList,
1627 };1713 };
16281714
1629 // Make sure we don't accidentally make instructions bigger than expected.
1630 // Note that in safety builds, Zig is allowed to insert a secret field for safety checks.
1631 comptime {1715 comptime {
1632 if (!std.debug.runtime_safety) {1716 if (!std.debug.runtime_safety) {
1717 // Make sure we don't accidentally make instructions bigger than expected.
1718 // Note that in safety builds, Zig is allowed to insert a secret field for safety checks.
1633 assert(@sizeOf(Data) == 8);1719 assert(@sizeOf(Data) == 8);
1634 }1720 }
1721 const Mnemonic = @import("Encoding.zig").Mnemonic;
1722 if (@typeInfo(Mnemonic).@"enum".fields.len != 977 or
1723 @typeInfo(Fixes).@"enum".fields.len != 231 or
1724 @typeInfo(Tag).@"enum".fields.len != 251)
1725 {
1726 const cond_src = (struct {
1727 fn src() std.builtin.SourceLocation {
1728 return @src();
1729 }
1730 }).src();
1731 @setEvalBranchQuota(1_750_000);
1732 for (@typeInfo(Mnemonic).@"enum".fields) |mnemonic| {
1733 if (mnemonic.name[0] == '.') continue;
1734 for (@typeInfo(Fixes).@"enum".fields) |fixes| {
1735 const pattern = fixes.name[if (std.mem.indexOfScalar(u8, fixes.name, ' ')) |index| index + " ".len else 0..];
1736 const wildcard_index = std.mem.indexOfScalar(u8, pattern, '_').?;
1737 const mnem_prefix = pattern[0..wildcard_index];
1738 const mnem_suffix = pattern[wildcard_index + "_".len ..];
1739 if (!std.mem.startsWith(u8, mnemonic.name, mnem_prefix)) continue;
1740 if (!std.mem.endsWith(u8, mnemonic.name, mnem_suffix)) continue;
1741 if (@hasField(
1742 Tag,
1743 mnemonic.name[mnem_prefix.len .. mnemonic.name.len - mnem_suffix.len],
1744 )) break;
1745 } else @compileError("'" ++ mnemonic.name ++ "' is not encodable in Mir");
1746 }
1747 @compileError(std.fmt.comptimePrint(
1748 \\All mnemonics are encodable in Mir! You may now change the condition at {s}:{d} to:
1749 \\if (@typeInfo(Mnemonic).@"enum".fields.len != {d} or
1750 \\ @typeInfo(Fixes).@"enum".fields.len != {d} or
1751 \\ @typeInfo(Tag).@"enum".fields.len != {d})
1752 , .{
1753 cond_src.file,
1754 cond_src.line - 6,
1755 @typeInfo(Mnemonic).@"enum".fields.len,
1756 @typeInfo(Fixes).@"enum".fields.len,
1757 @typeInfo(Tag).@"enum".fields.len,
1758 }));
1759 }
1635 }1760 }
1636};1761};
16371762
src/arch/x86_64/encodings.zon+98-10
...@@ -684,8 +684,8 @@...@@ -684,8 +684,8 @@
684 .{ .rdseed, .m, .{ .r32 }, .{ 0x0f, 0xc7 }, 7, .none, .rdseed },684 .{ .rdseed, .m, .{ .r32 }, .{ 0x0f, 0xc7 }, 7, .none, .rdseed },
685 .{ .rdseed, .m, .{ .r64 }, .{ 0x0f, 0xc7 }, 7, .long, .rdseed },685 .{ .rdseed, .m, .{ .r64 }, .{ 0x0f, 0xc7 }, 7, .long, .rdseed },
686686
687 .{ .rdssd, .m, .{ .r32 }, .{ 0xf3, 0x0f, 0x1e }, 1, .none, .shstk },687 .{ .rdsspd, .m, .{ .r32 }, .{ 0xf3, 0x0f, 0x1e }, 1, .none, .shstk },
688 .{ .rdssq, .m, .{ .r64 }, .{ 0xf3, 0x0f, 0x1e }, 1, .long, .shstk },688 .{ .rdsspq, .m, .{ .r64 }, .{ 0xf3, 0x0f, 0x1e }, 1, .long, .shstk },
689689
690 .{ .rdtsc, .z, .{}, .{ 0x0f, 0x31 }, 0, .none, .none },690 .{ .rdtsc, .z, .{}, .{ 0x0f, 0x31 }, 0, .none, .none },
691691
...@@ -1111,10 +1111,10 @@...@@ -1111,10 +1111,10 @@
1111 .{ .fcomp, .z, .{ }, .{ 0xd8, 0xd9 }, 0, .none, .x87 },1111 .{ .fcomp, .z, .{ }, .{ 0xd8, 0xd9 }, 0, .none, .x87 },
1112 .{ .fcompp, .z, .{ }, .{ 0xde, 0xd9 }, 0, .none, .x87 },1112 .{ .fcompp, .z, .{ }, .{ 0xde, 0xd9 }, 0, .none, .x87 },
11131113
1114 .{ .fcomi, .zo, .{ .st0, .st }, .{ 0xdb, 0xf0 }, 0, .none, .x87 },1114 .{ .fcomi, .zo, .{ .st0, .st }, .{ 0xdb, 0xf0 }, 0, .none, .@"cmov x87" },
1115 .{ .fcomip, .zo, .{ .st0, .st }, .{ 0xdf, 0xf0 }, 0, .none, .x87 },1115 .{ .fcomip, .zo, .{ .st0, .st }, .{ 0xdf, 0xf0 }, 0, .none, .@"cmov x87" },
1116 .{ .fucomi, .zo, .{ .st0, .st }, .{ 0xdb, 0xe8 }, 0, .none, .x87 },1116 .{ .fucomi, .zo, .{ .st0, .st }, .{ 0xdb, 0xe8 }, 0, .none, .@"cmov x87" },
1117 .{ .fucomip, .zo, .{ .st0, .st }, .{ 0xdf, 0xe8 }, 0, .none, .x87 },1117 .{ .fucomip, .zo, .{ .st0, .st }, .{ 0xdf, 0xe8 }, 0, .none, .@"cmov x87" },
11181118
1119 .{ .fcos, .z, .{}, .{ 0xd9, 0xff }, 0, .none, .x87 },1119 .{ .fcos, .z, .{}, .{ 0xd9, 0xff }, 0, .none, .x87 },
11201120
...@@ -1160,10 +1160,6 @@...@@ -1160,10 +1160,6 @@
1160 .{ .fistp, .m, .{ .m32 }, .{ 0xdb }, 3, .none, .x87 },1160 .{ .fistp, .m, .{ .m32 }, .{ 0xdb }, 3, .none, .x87 },
1161 .{ .fistp, .m, .{ .m64 }, .{ 0xdf }, 7, .none, .x87 },1161 .{ .fistp, .m, .{ .m64 }, .{ 0xdf }, 7, .none, .x87 },
11621162
1163 .{ .fisttp, .m, .{ .m16 }, .{ 0xdf }, 1, .none, .x87 },
1164 .{ .fisttp, .m, .{ .m32 }, .{ 0xdb }, 1, .none, .x87 },
1165 .{ .fisttp, .m, .{ .m64 }, .{ 0xdd }, 1, .none, .x87 },
1166
1167 .{ .fld, .m, .{ .m32 }, .{ 0xd9 }, 0, .none, .x87 },1163 .{ .fld, .m, .{ .m32 }, .{ 0xd9 }, 0, .none, .x87 },
1168 .{ .fld, .m, .{ .m64 }, .{ 0xdd }, 0, .none, .x87 },1164 .{ .fld, .m, .{ .m64 }, .{ 0xdd }, 0, .none, .x87 },
1169 .{ .fld, .m, .{ .m80 }, .{ 0xdb }, 5, .none, .x87 },1165 .{ .fld, .m, .{ .m80 }, .{ 0xdb }, 5, .none, .x87 },
...@@ -1528,6 +1524,8 @@...@@ -1528,6 +1524,8 @@
15281524
1529 .{ .pinsrw, .rmi, .{ .xmm, .r32_m16, .imm8 }, .{ 0x66, 0x0f, 0xc4 }, 0, .none, .sse2 },1525 .{ .pinsrw, .rmi, .{ .xmm, .r32_m16, .imm8 }, .{ 0x66, 0x0f, 0xc4 }, 0, .none, .sse2 },
15301526
1527 .{ .pmaddwd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf5 }, 0, .none, .sse2 },
1528
1531 .{ .pmaxsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xee }, 0, .none, .sse2 },1529 .{ .pmaxsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xee }, 0, .none, .sse2 },
15321530
1533 .{ .pmaxub, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xde }, 0, .none, .sse2 },1531 .{ .pmaxub, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xde }, 0, .none, .sse2 },
...@@ -1536,12 +1534,18 @@...@@ -1536,12 +1534,18 @@
15361534
1537 .{ .pminub, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xda }, 0, .none, .sse2 },1535 .{ .pminub, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xda }, 0, .none, .sse2 },
15381536
1537 .{ .pmulhuw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe4 }, 0, .none, .sse2 },
1538
1539 .{ .pmulhw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe5 }, 0, .none, .sse2 },1539 .{ .pmulhw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe5 }, 0, .none, .sse2 },
15401540
1541 .{ .pmullw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd5 }, 0, .none, .sse2 },1541 .{ .pmullw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd5 }, 0, .none, .sse2 },
15421542
1543 .{ .pmuludq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf4 }, 0, .none, .sse2 },
1544
1543 .{ .por, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xeb }, 0, .none, .sse2 },1545 .{ .por, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xeb }, 0, .none, .sse2 },
15441546
1547 .{ .psadbw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf6 }, 0, .none, .sse2 },
1548
1545 .{ .pshufd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .none, .sse2 },1549 .{ .pshufd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .none, .sse2 },
15461550
1547 .{ .pshufhw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0xf3, 0x0f, 0x70 }, 0, .none, .sse2 },1551 .{ .pshufhw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0xf3, 0x0f, 0x70 }, 0, .none, .sse2 },
...@@ -1618,6 +1622,10 @@...@@ -1618,6 +1622,10 @@
16181622
1619 .{ .addsubps, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0xd0 }, 0, .none, .sse3 },1623 .{ .addsubps, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0xd0 }, 0, .none, .sse3 },
16201624
1625 .{ .fisttp, .m, .{ .m16 }, .{ 0xdf }, 1, .none, .@"sse3 x87" },
1626 .{ .fisttp, .m, .{ .m32 }, .{ 0xdb }, 1, .none, .@"sse3 x87" },
1627 .{ .fisttp, .m, .{ .m64 }, .{ 0xdd }, 1, .none, .@"sse3 x87" },
1628
1621 .{ .haddpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x7c }, 0, .none, .sse3 },1629 .{ .haddpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x7c }, 0, .none, .sse3 },
16221630
1623 .{ .haddps, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0x7c }, 0, .none, .sse3 },1631 .{ .haddps, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0x7c }, 0, .none, .sse3 },
...@@ -1640,8 +1648,26 @@...@@ -1640,8 +1648,26 @@
16401648
1641 .{ .palignr, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0f }, 0, .none, .ssse3 },1649 .{ .palignr, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0f }, 0, .none, .ssse3 },
16421650
1651 .{ .phaddw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x01 }, 0, .none, .ssse3 },
1652 .{ .phaddd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x02 }, 0, .none, .ssse3 },
1653
1654 .{ .phaddsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x03 }, 0, .none, .ssse3 },
1655
1656 .{ .phsubw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x05 }, 0, .none, .ssse3 },
1657 .{ .phsubd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x06 }, 0, .none, .ssse3 },
1658
1659 .{ .phsubsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x07 }, 0, .none, .ssse3 },
1660
1661 .{ .pmaddubsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x04 }, 0, .none, .ssse3 },
1662
1663 .{ .pmulhrsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0b }, 0, .none, .ssse3 },
1664
1643 .{ .pshufb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .none, .ssse3 },1665 .{ .pshufb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .none, .ssse3 },
16441666
1667 .{ .psignb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x08 }, 0, .none, .ssse3 },
1668 .{ .psignw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x09 }, 0, .none, .ssse3 },
1669 .{ .psignd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0a }, 0, .none, .ssse3 },
1670
1645 // SSE4.11671 // SSE4.1
1646 .{ .blendpd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0d }, 0, .none, .sse4_1 },1672 .{ .blendpd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0d }, 0, .none, .sse4_1 },
16471673
...@@ -1676,6 +1702,8 @@...@@ -1676,6 +1702,8 @@
16761702
1677 .{ .pextrw, .mri, .{ .r32_m16, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x15 }, 0, .none, .sse4_1 },1703 .{ .pextrw, .mri, .{ .r32_m16, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x15 }, 0, .none, .sse4_1 },
16781704
1705 .{ .phminposuw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x41 }, 0, .none, .sse4_1 },
1706
1679 .{ .pinsrb, .rmi, .{ .xmm, .r32_m8, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x20 }, 0, .none, .sse4_1 },1707 .{ .pinsrb, .rmi, .{ .xmm, .r32_m8, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x20 }, 0, .none, .sse4_1 },
1680 .{ .pinsrd, .rmi, .{ .xmm, .rm32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .none, .sse4_1 },1708 .{ .pinsrd, .rmi, .{ .xmm, .rm32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .none, .sse4_1 },
1681 .{ .pinsrq, .rmi, .{ .xmm, .rm64, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .long, .sse4_1 },1709 .{ .pinsrq, .rmi, .{ .xmm, .rm64, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .long, .sse4_1 },
...@@ -1708,6 +1736,8 @@...@@ -1708,6 +1736,8 @@
1708 .{ .pmovzxwq, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .none, .sse4_1 },1736 .{ .pmovzxwq, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .none, .sse4_1 },
1709 .{ .pmovzxdq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .none, .sse4_1 },1737 .{ .pmovzxdq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .none, .sse4_1 },
17101738
1739 .{ .pmuldq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x28 }, 0, .none, .sse4_1 },
1740
1711 .{ .pmulld, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .none, .sse4_1 },1741 .{ .pmulld, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .none, .sse4_1 },
17121742
1713 .{ .ptest, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x17 }, 0, .none, .sse4_1 },1743 .{ .ptest, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x17 }, 0, .none, .sse4_1 },
...@@ -2125,12 +2155,28 @@...@@ -2125,12 +2155,28 @@
2125 .{ .vpextrw, .rmi, .{ .r32, .xmm, .imm8 }, .{ 0x66, 0x0f, 0xc5 }, 0, .vex_128_w0, .avx },2155 .{ .vpextrw, .rmi, .{ .r32, .xmm, .imm8 }, .{ 0x66, 0x0f, 0xc5 }, 0, .vex_128_w0, .avx },
2126 .{ .vpextrw, .mri, .{ .r32_m16, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x15 }, 0, .vex_128_w0, .avx },2156 .{ .vpextrw, .mri, .{ .r32_m16, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x15 }, 0, .vex_128_w0, .avx },
21272157
2158 .{ .vphaddw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x01 }, 0, .vex_128_wig, .avx },
2159 .{ .vphaddd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x02 }, 0, .vex_128_wig, .avx },
2160
2161 .{ .vphaddsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x03 }, 0, .vex_128_wig, .avx },
2162
2163 .{ .vphminposuw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x41 }, 0, .vex_128_wig, .avx },
2164
2165 .{ .vphsubw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x05 }, 0, .vex_128_wig, .avx },
2166 .{ .vphsubd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x06 }, 0, .vex_128_wig, .avx },
2167
2168 .{ .vphsubsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x07 }, 0, .vex_128_wig, .avx },
2169
2128 .{ .vpinsrb, .rvmi, .{ .xmm, .xmm, .r32_m8, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x20 }, 0, .vex_128_w0, .avx },2170 .{ .vpinsrb, .rvmi, .{ .xmm, .xmm, .r32_m8, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x20 }, 0, .vex_128_w0, .avx },
2129 .{ .vpinsrd, .rvmi, .{ .xmm, .xmm, .rm32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .vex_128_w0, .avx },2171 .{ .vpinsrd, .rvmi, .{ .xmm, .xmm, .rm32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .vex_128_w0, .avx },
2130 .{ .vpinsrq, .rvmi, .{ .xmm, .xmm, .rm64, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .vex_128_w1, .avx },2172 .{ .vpinsrq, .rvmi, .{ .xmm, .xmm, .rm64, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .vex_128_w1, .avx },
21312173
2132 .{ .vpinsrw, .rvmi, .{ .xmm, .xmm, .r32_m16, .imm8 }, .{ 0x66, 0x0f, 0xc4 }, 0, .vex_128_w0, .avx },2174 .{ .vpinsrw, .rvmi, .{ .xmm, .xmm, .r32_m16, .imm8 }, .{ 0x66, 0x0f, 0xc4 }, 0, .vex_128_w0, .avx },
21332175
2176 .{ .vpmaddubsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x04 }, 0, .vex_128_wig, .avx },
2177
2178 .{ .vpmaddwd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf5 }, 0, .vex_128_wig, .avx },
2179
2134 .{ .vpmaxsb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3c }, 0, .vex_128_wig, .avx },2180 .{ .vpmaxsb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3c }, 0, .vex_128_wig, .avx },
2135 .{ .vpmaxsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xee }, 0, .vex_128_wig, .avx },2181 .{ .vpmaxsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xee }, 0, .vex_128_wig, .avx },
2136 .{ .vpmaxsd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3d }, 0, .vex_128_wig, .avx },2182 .{ .vpmaxsd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3d }, 0, .vex_128_wig, .avx },
...@@ -2166,14 +2212,24 @@...@@ -2166,14 +2212,24 @@
2166 .{ .vpmovzxwq, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .vex_128_wig, .avx },2212 .{ .vpmovzxwq, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .vex_128_wig, .avx },
2167 .{ .vpmovzxdq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .vex_128_wig, .avx },2213 .{ .vpmovzxdq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .vex_128_wig, .avx },
21682214
2215 .{ .vpmuldq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x28 }, 0, .vex_128_wig, .avx },
2216
2217 .{ .vpmulhrsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0b }, 0, .vex_128_wig, .avx },
2218
2219 .{ .vpmulhuw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe4 }, 0, .vex_128_wig, .avx },
2220
2169 .{ .vpmulhw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe5 }, 0, .vex_128_wig, .avx },2221 .{ .vpmulhw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe5 }, 0, .vex_128_wig, .avx },
21702222
2171 .{ .vpmulld, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .vex_128_wig, .avx },2223 .{ .vpmulld, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .vex_128_wig, .avx },
21722224
2173 .{ .vpmullw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd5 }, 0, .vex_128_wig, .avx },2225 .{ .vpmullw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd5 }, 0, .vex_128_wig, .avx },
21742226
2227 .{ .vpmuludq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf4 }, 0, .vex_128_wig, .avx },
2228
2175 .{ .vpor, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xeb }, 0, .vex_128_wig, .avx },2229 .{ .vpor, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xeb }, 0, .vex_128_wig, .avx },
21762230
2231 .{ .vpsadbw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf6 }, 0, .vex_128_wig, .avx },
2232
2177 .{ .vpshufb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .vex_128_wig, .avx },2233 .{ .vpshufb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .vex_128_wig, .avx },
21782234
2179 .{ .vpshufd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .vex_128_wig, .avx },2235 .{ .vpshufd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .vex_128_wig, .avx },
...@@ -2182,6 +2238,10 @@...@@ -2182,6 +2238,10 @@
21822238
2183 .{ .vpshuflw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0xf2, 0x0f, 0x70 }, 0, .vex_128_wig, .avx },2239 .{ .vpshuflw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0xf2, 0x0f, 0x70 }, 0, .vex_128_wig, .avx },
21842240
2241 .{ .vpsignb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x08 }, 0, .vex_128_wig, .avx },
2242 .{ .vpsignw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x09 }, 0, .vex_128_wig, .avx },
2243 .{ .vpsignd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0a }, 0, .vex_128_wig, .avx },
2244
2185 .{ .vpsllw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf1 }, 0, .vex_128_wig, .avx },2245 .{ .vpsllw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf1 }, 0, .vex_128_wig, .avx },
2186 .{ .vpsllw, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 6, .vex_128_wig, .avx },2246 .{ .vpsllw, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 6, .vex_128_wig, .avx },
2187 .{ .vpslld, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf2 }, 0, .vex_128_wig, .avx },2247 .{ .vpslld, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf2 }, 0, .vex_128_wig, .avx },
...@@ -2439,6 +2499,16 @@...@@ -2439,6 +2499,16 @@
24392499
2440 .{ .vpcmpgtq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x37 }, 0, .vex_256_wig, .avx2 },2500 .{ .vpcmpgtq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x37 }, 0, .vex_256_wig, .avx2 },
24412501
2502 .{ .vphaddw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x01 }, 0, .vex_256_wig, .avx2 },
2503 .{ .vphaddd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x02 }, 0, .vex_256_wig, .avx2 },
2504
2505 .{ .vphaddsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x03 }, 0, .vex_256_wig, .avx2 },
2506
2507 .{ .vphaddw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x05 }, 0, .vex_256_wig, .avx2 },
2508 .{ .vphaddd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x06 }, 0, .vex_256_wig, .avx2 },
2509
2510 .{ .vphaddsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x07 }, 0, .vex_256_wig, .avx2 },
2511
2442 .{ .vperm2i128, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x46 }, 0, .vex_256_w0, .avx2 },2512 .{ .vperm2i128, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x46 }, 0, .vex_256_w0, .avx2 },
24432513
2444 .{ .vpermd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x36 }, 0, .vex_256_w0, .avx2 },2514 .{ .vpermd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x36 }, 0, .vex_256_w0, .avx2 },
...@@ -2449,6 +2519,10 @@...@@ -2449,6 +2519,10 @@
24492519
2450 .{ .vpermq, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x00 }, 0, .vex_256_w1, .avx2 },2520 .{ .vpermq, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x00 }, 0, .vex_256_w1, .avx2 },
24512521
2522 .{ .vpmaddubsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x04 }, 0, .vex_256_wig, .avx2 },
2523
2524 .{ .vpmaddwd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xf5 }, 0, .vex_256_wig, .avx2 },
2525
2452 .{ .vpmaskmovd, .rvm, .{ .xmm, .xmm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_128_w0, .avx2 },2526 .{ .vpmaskmovd, .rvm, .{ .xmm, .xmm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_128_w0, .avx2 },
2453 .{ .vpmaskmovd, .rvm, .{ .ymm, .ymm, .m256 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_256_w0, .avx2 },2527 .{ .vpmaskmovd, .rvm, .{ .ymm, .ymm, .m256 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_256_w0, .avx2 },
2454 .{ .vpmaskmovq, .rvm, .{ .xmm, .xmm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_128_w1, .avx2 },2528 .{ .vpmaskmovq, .rvm, .{ .xmm, .xmm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_128_w1, .avx2 },
...@@ -2493,14 +2567,24 @@...@@ -2493,14 +2567,24 @@
2493 .{ .vpmovzxwq, .rm, .{ .ymm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .vex_256_wig, .avx2 },2567 .{ .vpmovzxwq, .rm, .{ .ymm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .vex_256_wig, .avx2 },
2494 .{ .vpmovzxdq, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .vex_256_wig, .avx2 },2568 .{ .vpmovzxdq, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .vex_256_wig, .avx2 },
24952569
2570 .{ .vpmuldq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x28 }, 0, .vex_256_wig, .avx2 },
2571
2572 .{ .vpmulhrsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x0b }, 0, .vex_256_wig, .avx2 },
2573
2574 .{ .vpmulhuw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xe4 }, 0, .vex_256_wig, .avx2 },
2575
2496 .{ .vpmulhw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xe5 }, 0, .vex_256_wig, .avx2 },2576 .{ .vpmulhw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xe5 }, 0, .vex_256_wig, .avx2 },
24972577
2498 .{ .vpmulld, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .vex_256_wig, .avx2 },2578 .{ .vpmulld, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .vex_256_wig, .avx2 },
24992579
2500 .{ .vpmullw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xd5 }, 0, .vex_256_wig, .avx2 },2580 .{ .vpmullw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xd5 }, 0, .vex_256_wig, .avx2 },
25012581
2582 .{ .vpmuludq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xf4 }, 0, .vex_256_wig, .avx2 },
2583
2502 .{ .vpor, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xeb }, 0, .vex_256_wig, .avx2 },2584 .{ .vpor, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xeb }, 0, .vex_256_wig, .avx2 },
25032585
2586 .{ .vpsadbw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xf6 }, 0, .vex_256_wig, .avx2 },
2587
2504 .{ .vpshufb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .vex_256_wig, .avx2 },2588 .{ .vpshufb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .vex_256_wig, .avx2 },
2505 .{ .vpshufd, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .vex_256_wig, .avx2 },2589 .{ .vpshufd, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .vex_256_wig, .avx2 },
25062590
...@@ -2508,6 +2592,10 @@...@@ -2508,6 +2592,10 @@
25082592
2509 .{ .vpshuflw, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0xf2, 0x0f, 0x70 }, 0, .vex_256_wig, .avx2 },2593 .{ .vpshuflw, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0xf2, 0x0f, 0x70 }, 0, .vex_256_wig, .avx2 },
25102594
2595 .{ .vpsignb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x08 }, 0, .vex_256_wig, .avx2 },
2596 .{ .vpsignw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x09 }, 0, .vex_256_wig, .avx2 },
2597 .{ .vpsignd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x0a }, 0, .vex_256_wig, .avx2 },
2598
2511 .{ .vpsllw, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf1 }, 0, .vex_256_wig, .avx2 },2599 .{ .vpsllw, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf1 }, 0, .vex_256_wig, .avx2 },
2512 .{ .vpsllw, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 6, .vex_256_wig, .avx2 },2600 .{ .vpsllw, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 6, .vex_256_wig, .avx2 },
2513 .{ .vpslld, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf2 }, 0, .vex_256_wig, .avx2 },2601 .{ .vpslld, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf2 }, 0, .vex_256_wig, .avx2 },
src/codegen/c/Type.zig+247
...@@ -1374,6 +1374,10 @@ pub const Pool = struct {...@@ -1374,6 +1374,10 @@ pub const Pool = struct {
1374 .i64_type => return .i64,1374 .i64_type => return .i64,
1375 .u80_type, .u128_type => return .u128,1375 .u80_type, .u128_type => return .u128,
1376 .i128_type => return .i128,1376 .i128_type => return .i128,
1377 .u256_type => return pool.fromIntInfo(allocator, .{
1378 .signedness = .unsigned,
1379 .bits = 256,
1380 }, mod, kind),
1377 .usize_type => return .usize,1381 .usize_type => return .usize,
1378 .isize_type => return .isize,1382 .isize_type => return .isize,
1379 .c_char_type => return .{ .index = .char },1383 .c_char_type => return .{ .index = .char },
...@@ -1488,6 +1492,21 @@ pub const Pool = struct {...@@ -1488,6 +1492,21 @@ pub const Pool = struct {
1488 };1492 };
1489 return pool.fromFields(allocator, .@"struct", &fields, kind);1493 return pool.fromFields(allocator, .@"struct", &fields, kind);
1490 },1494 },
1495 .vector_64_i8_type => {
1496 const vector_ctype = try pool.getVector(allocator, .{
1497 .elem_ctype = .i8,
1498 .len = 64,
1499 });
1500 if (!kind.isParameter()) return vector_ctype;
1501 var fields = [_]Info.Field{
1502 .{
1503 .name = .{ .index = .array },
1504 .ctype = vector_ctype,
1505 .alignas = AlignAs.fromAbiAlignment(Type.i8.abiAlignment(zcu)),
1506 },
1507 };
1508 return pool.fromFields(allocator, .@"struct", &fields, kind);
1509 },
1491 .vector_1_u8_type => {1510 .vector_1_u8_type => {
1492 const vector_ctype = try pool.getVector(allocator, .{1511 const vector_ctype = try pool.getVector(allocator, .{
1493 .elem_ctype = .u8,1512 .elem_ctype = .u8,
...@@ -1578,6 +1597,36 @@ pub const Pool = struct {...@@ -1578,6 +1597,36 @@ pub const Pool = struct {
1578 };1597 };
1579 return pool.fromFields(allocator, .@"struct", &fields, kind);1598 return pool.fromFields(allocator, .@"struct", &fields, kind);
1580 },1599 },
1600 .vector_64_u8_type => {
1601 const vector_ctype = try pool.getVector(allocator, .{
1602 .elem_ctype = .u8,
1603 .len = 64,
1604 });
1605 if (!kind.isParameter()) return vector_ctype;
1606 var fields = [_]Info.Field{
1607 .{
1608 .name = .{ .index = .array },
1609 .ctype = vector_ctype,
1610 .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)),
1611 },
1612 };
1613 return pool.fromFields(allocator, .@"struct", &fields, kind);
1614 },
1615 .vector_2_i16_type => {
1616 const vector_ctype = try pool.getVector(allocator, .{
1617 .elem_ctype = .i16,
1618 .len = 2,
1619 });
1620 if (!kind.isParameter()) return vector_ctype;
1621 var fields = [_]Info.Field{
1622 .{
1623 .name = .{ .index = .array },
1624 .ctype = vector_ctype,
1625 .alignas = AlignAs.fromAbiAlignment(Type.i16.abiAlignment(zcu)),
1626 },
1627 };
1628 return pool.fromFields(allocator, .@"struct", &fields, kind);
1629 },
1581 .vector_4_i16_type => {1630 .vector_4_i16_type => {
1582 const vector_ctype = try pool.getVector(allocator, .{1631 const vector_ctype = try pool.getVector(allocator, .{
1583 .elem_ctype = .i16,1632 .elem_ctype = .i16,
...@@ -1623,6 +1672,21 @@ pub const Pool = struct {...@@ -1623,6 +1672,21 @@ pub const Pool = struct {
1623 };1672 };
1624 return pool.fromFields(allocator, .@"struct", &fields, kind);1673 return pool.fromFields(allocator, .@"struct", &fields, kind);
1625 },1674 },
1675 .vector_32_i16_type => {
1676 const vector_ctype = try pool.getVector(allocator, .{
1677 .elem_ctype = .i16,
1678 .len = 32,
1679 });
1680 if (!kind.isParameter()) return vector_ctype;
1681 var fields = [_]Info.Field{
1682 .{
1683 .name = .{ .index = .array },
1684 .ctype = vector_ctype,
1685 .alignas = AlignAs.fromAbiAlignment(Type.i16.abiAlignment(zcu)),
1686 },
1687 };
1688 return pool.fromFields(allocator, .@"struct", &fields, kind);
1689 },
1626 .vector_4_u16_type => {1690 .vector_4_u16_type => {
1627 const vector_ctype = try pool.getVector(allocator, .{1691 const vector_ctype = try pool.getVector(allocator, .{
1628 .elem_ctype = .u16,1692 .elem_ctype = .u16,
...@@ -1668,6 +1732,36 @@ pub const Pool = struct {...@@ -1668,6 +1732,36 @@ pub const Pool = struct {
1668 };1732 };
1669 return pool.fromFields(allocator, .@"struct", &fields, kind);1733 return pool.fromFields(allocator, .@"struct", &fields, kind);
1670 },1734 },
1735 .vector_32_u16_type => {
1736 const vector_ctype = try pool.getVector(allocator, .{
1737 .elem_ctype = .u16,
1738 .len = 32,
1739 });
1740 if (!kind.isParameter()) return vector_ctype;
1741 var fields = [_]Info.Field{
1742 .{
1743 .name = .{ .index = .array },
1744 .ctype = vector_ctype,
1745 .alignas = AlignAs.fromAbiAlignment(Type.u16.abiAlignment(zcu)),
1746 },
1747 };
1748 return pool.fromFields(allocator, .@"struct", &fields, kind);
1749 },
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 },
1671 .vector_4_i32_type => {1765 .vector_4_i32_type => {
1672 const vector_ctype = try pool.getVector(allocator, .{1766 const vector_ctype = try pool.getVector(allocator, .{
1673 .elem_ctype = .i32,1767 .elem_ctype = .i32,
...@@ -1698,6 +1792,21 @@ pub const Pool = struct {...@@ -1698,6 +1792,21 @@ pub const Pool = struct {
1698 };1792 };
1699 return pool.fromFields(allocator, .@"struct", &fields, kind);1793 return pool.fromFields(allocator, .@"struct", &fields, kind);
1700 },1794 },
1795 .vector_16_i32_type => {
1796 const vector_ctype = try pool.getVector(allocator, .{
1797 .elem_ctype = .i32,
1798 .len = 16,
1799 });
1800 if (!kind.isParameter()) return vector_ctype;
1801 var fields = [_]Info.Field{
1802 .{
1803 .name = .{ .index = .array },
1804 .ctype = vector_ctype,
1805 .alignas = AlignAs.fromAbiAlignment(Type.i32.abiAlignment(zcu)),
1806 },
1807 };
1808 return pool.fromFields(allocator, .@"struct", &fields, kind);
1809 },
1701 .vector_4_u32_type => {1810 .vector_4_u32_type => {
1702 const vector_ctype = try pool.getVector(allocator, .{1811 const vector_ctype = try pool.getVector(allocator, .{
1703 .elem_ctype = .u32,1812 .elem_ctype = .u32,
...@@ -1728,6 +1837,21 @@ pub const Pool = struct {...@@ -1728,6 +1837,21 @@ pub const Pool = struct {
1728 };1837 };
1729 return pool.fromFields(allocator, .@"struct", &fields, kind);1838 return pool.fromFields(allocator, .@"struct", &fields, kind);
1730 },1839 },
1840 .vector_16_u32_type => {
1841 const vector_ctype = try pool.getVector(allocator, .{
1842 .elem_ctype = .u32,
1843 .len = 16,
1844 });
1845 if (!kind.isParameter()) return vector_ctype;
1846 var fields = [_]Info.Field{
1847 .{
1848 .name = .{ .index = .array },
1849 .ctype = vector_ctype,
1850 .alignas = AlignAs.fromAbiAlignment(Type.u32.abiAlignment(zcu)),
1851 },
1852 };
1853 return pool.fromFields(allocator, .@"struct", &fields, kind);
1854 },
1731 .vector_2_i64_type => {1855 .vector_2_i64_type => {
1732 const vector_ctype = try pool.getVector(allocator, .{1856 const vector_ctype = try pool.getVector(allocator, .{
1733 .elem_ctype = .i64,1857 .elem_ctype = .i64,
...@@ -1758,6 +1882,21 @@ pub const Pool = struct {...@@ -1758,6 +1882,21 @@ pub const Pool = struct {
1758 };1882 };
1759 return pool.fromFields(allocator, .@"struct", &fields, kind);1883 return pool.fromFields(allocator, .@"struct", &fields, kind);
1760 },1884 },
1885 .vector_8_i64_type => {
1886 const vector_ctype = try pool.getVector(allocator, .{
1887 .elem_ctype = .i64,
1888 .len = 8,
1889 });
1890 if (!kind.isParameter()) return vector_ctype;
1891 var fields = [_]Info.Field{
1892 .{
1893 .name = .{ .index = .array },
1894 .ctype = vector_ctype,
1895 .alignas = AlignAs.fromAbiAlignment(Type.i64.abiAlignment(zcu)),
1896 },
1897 };
1898 return pool.fromFields(allocator, .@"struct", &fields, kind);
1899 },
1761 .vector_2_u64_type => {1900 .vector_2_u64_type => {
1762 const vector_ctype = try pool.getVector(allocator, .{1901 const vector_ctype = try pool.getVector(allocator, .{
1763 .elem_ctype = .u64,1902 .elem_ctype = .u64,
...@@ -1788,6 +1927,36 @@ pub const Pool = struct {...@@ -1788,6 +1927,36 @@ pub const Pool = struct {
1788 };1927 };
1789 return pool.fromFields(allocator, .@"struct", &fields, kind);1928 return pool.fromFields(allocator, .@"struct", &fields, kind);
1790 },1929 },
1930 .vector_8_u64_type => {
1931 const vector_ctype = try pool.getVector(allocator, .{
1932 .elem_ctype = .u64,
1933 .len = 8,
1934 });
1935 if (!kind.isParameter()) return vector_ctype;
1936 var fields = [_]Info.Field{
1937 .{
1938 .name = .{ .index = .array },
1939 .ctype = vector_ctype,
1940 .alignas = AlignAs.fromAbiAlignment(Type.u64.abiAlignment(zcu)),
1941 },
1942 };
1943 return pool.fromFields(allocator, .@"struct", &fields, kind);
1944 },
1945 .vector_1_u128_type => {
1946 const vector_ctype = try pool.getVector(allocator, .{
1947 .elem_ctype = .u128,
1948 .len = 1,
1949 });
1950 if (!kind.isParameter()) return vector_ctype;
1951 var fields = [_]Info.Field{
1952 .{
1953 .name = .{ .index = .array },
1954 .ctype = vector_ctype,
1955 .alignas = AlignAs.fromAbiAlignment(Type.u128.abiAlignment(zcu)),
1956 },
1957 };
1958 return pool.fromFields(allocator, .@"struct", &fields, kind);
1959 },
1791 .vector_2_u128_type => {1960 .vector_2_u128_type => {
1792 const vector_ctype = try pool.getVector(allocator, .{1961 const vector_ctype = try pool.getVector(allocator, .{
1793 .elem_ctype = .u128,1962 .elem_ctype = .u128,
...@@ -1803,6 +1972,24 @@ pub const Pool = struct {...@@ -1803,6 +1972,24 @@ pub const Pool = struct {
1803 };1972 };
1804 return pool.fromFields(allocator, .@"struct", &fields, kind);1973 return pool.fromFields(allocator, .@"struct", &fields, kind);
1805 },1974 },
1975 .vector_1_u256_type => {
1976 const vector_ctype = try pool.getVector(allocator, .{
1977 .elem_ctype = try pool.fromIntInfo(allocator, .{
1978 .signedness = .unsigned,
1979 .bits = 256,
1980 }, mod, kind),
1981 .len = 1,
1982 });
1983 if (!kind.isParameter()) return vector_ctype;
1984 var fields = [_]Info.Field{
1985 .{
1986 .name = .{ .index = .array },
1987 .ctype = vector_ctype,
1988 .alignas = AlignAs.fromAbiAlignment(Type.u256.abiAlignment(zcu)),
1989 },
1990 };
1991 return pool.fromFields(allocator, .@"struct", &fields, kind);
1992 },
1806 .vector_4_f16_type => {1993 .vector_4_f16_type => {
1807 const vector_ctype = try pool.getVector(allocator, .{1994 const vector_ctype = try pool.getVector(allocator, .{
1808 .elem_ctype = .f16,1995 .elem_ctype = .f16,
...@@ -1833,6 +2020,36 @@ pub const Pool = struct {...@@ -1833,6 +2020,36 @@ pub const Pool = struct {
1833 };2020 };
1834 return pool.fromFields(allocator, .@"struct", &fields, kind);2021 return pool.fromFields(allocator, .@"struct", &fields, kind);
1835 },2022 },
2023 .vector_16_f16_type => {
2024 const vector_ctype = try pool.getVector(allocator, .{
2025 .elem_ctype = .f16,
2026 .len = 16,
2027 });
2028 if (!kind.isParameter()) return vector_ctype;
2029 var fields = [_]Info.Field{
2030 .{
2031 .name = .{ .index = .array },
2032 .ctype = vector_ctype,
2033 .alignas = AlignAs.fromAbiAlignment(Type.f16.abiAlignment(zcu)),
2034 },
2035 };
2036 return pool.fromFields(allocator, .@"struct", &fields, kind);
2037 },
2038 .vector_32_f16_type => {
2039 const vector_ctype = try pool.getVector(allocator, .{
2040 .elem_ctype = .f16,
2041 .len = 32,
2042 });
2043 if (!kind.isParameter()) return vector_ctype;
2044 var fields = [_]Info.Field{
2045 .{
2046 .name = .{ .index = .array },
2047 .ctype = vector_ctype,
2048 .alignas = AlignAs.fromAbiAlignment(Type.f16.abiAlignment(zcu)),
2049 },
2050 };
2051 return pool.fromFields(allocator, .@"struct", &fields, kind);
2052 },
1836 .vector_2_f32_type => {2053 .vector_2_f32_type => {
1837 const vector_ctype = try pool.getVector(allocator, .{2054 const vector_ctype = try pool.getVector(allocator, .{
1838 .elem_ctype = .f32,2055 .elem_ctype = .f32,
...@@ -1878,6 +2095,21 @@ pub const Pool = struct {...@@ -1878,6 +2095,21 @@ pub const Pool = struct {
1878 };2095 };
1879 return pool.fromFields(allocator, .@"struct", &fields, kind);2096 return pool.fromFields(allocator, .@"struct", &fields, kind);
1880 },2097 },
2098 .vector_16_f32_type => {
2099 const vector_ctype = try pool.getVector(allocator, .{
2100 .elem_ctype = .f32,
2101 .len = 16,
2102 });
2103 if (!kind.isParameter()) return vector_ctype;
2104 var fields = [_]Info.Field{
2105 .{
2106 .name = .{ .index = .array },
2107 .ctype = vector_ctype,
2108 .alignas = AlignAs.fromAbiAlignment(Type.f32.abiAlignment(zcu)),
2109 },
2110 };
2111 return pool.fromFields(allocator, .@"struct", &fields, kind);
2112 },
1881 .vector_2_f64_type => {2113 .vector_2_f64_type => {
1882 const vector_ctype = try pool.getVector(allocator, .{2114 const vector_ctype = try pool.getVector(allocator, .{
1883 .elem_ctype = .f64,2115 .elem_ctype = .f64,
...@@ -1908,6 +2140,21 @@ pub const Pool = struct {...@@ -1908,6 +2140,21 @@ pub const Pool = struct {
1908 };2140 };
1909 return pool.fromFields(allocator, .@"struct", &fields, kind);2141 return pool.fromFields(allocator, .@"struct", &fields, kind);
1910 },2142 },
2143 .vector_8_f64_type => {
2144 const vector_ctype = try pool.getVector(allocator, .{
2145 .elem_ctype = .f64,
2146 .len = 8,
2147 });
2148 if (!kind.isParameter()) return vector_ctype;
2149 var fields = [_]Info.Field{
2150 .{
2151 .name = .{ .index = .array },
2152 .ctype = vector_ctype,
2153 .alignas = AlignAs.fromAbiAlignment(Type.f64.abiAlignment(zcu)),
2154 },
2155 };
2156 return pool.fromFields(allocator, .@"struct", &fields, kind);
2157 },
19112158
1912 .undef,2159 .undef,
1913 .zero,2160 .zero,
test/behavior/array.zig-1
...@@ -970,7 +970,6 @@ test "store array of array of structs at comptime" {...@@ -970,7 +970,6 @@ test "store array of array of structs at comptime" {
970}970}
971971
972test "accessing multidimensional global array at comptime" {972test "accessing multidimensional global array at comptime" {
973 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
974 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO973 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
975 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO974 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
976 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;975 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
test/behavior/cast.zig-1
...@@ -2714,7 +2714,6 @@ test "result type is preserved into comptime block" {...@@ -2714,7 +2714,6 @@ test "result type is preserved into comptime block" {
2714}2714}
27152715
2716test "bitcast vector" {2716test "bitcast vector" {
2717 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
2718 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2717 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2719 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2718 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
27202719
test/behavior/floatop.zig+12-5
...@@ -236,11 +236,11 @@ test "vector cmp f16" {...@@ -236,11 +236,11 @@ test "vector cmp f16" {
236 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO236 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
237 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO237 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
238 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;238 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
239 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
240 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;239 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
241 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;240 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
242 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;241 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
243 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;242 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
243 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
244244
245 try testCmpVector(f16);245 try testCmpVector(f16);
246 try comptime testCmpVector(f16);246 try comptime testCmpVector(f16);
...@@ -250,11 +250,11 @@ test "vector cmp f32" {...@@ -250,11 +250,11 @@ test "vector cmp f32" {
250 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;250 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
251 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO251 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
252 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO252 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
253 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
254 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;253 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
255 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;254 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
256 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;255 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
257 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;256 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
257 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
258258
259 try testCmpVector(f32);259 try testCmpVector(f32);
260 try comptime testCmpVector(f32);260 try comptime testCmpVector(f32);
...@@ -263,11 +263,11 @@ test "vector cmp f32" {...@@ -263,11 +263,11 @@ test "vector cmp f32" {
263test "vector cmp f64" {263test "vector cmp f64" {
264 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO264 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
265 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO265 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
266 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
267 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;266 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
268 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;267 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
269 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;268 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
270 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;269 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
270 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
271271
272 try testCmpVector(f64);272 try testCmpVector(f64);
273 try comptime testCmpVector(f64);273 try comptime testCmpVector(f64);
...@@ -279,25 +279,32 @@ test "vector cmp f128" {...@@ -279,25 +279,32 @@ test "vector cmp f128" {
279 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO279 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
280 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;280 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
281 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;281 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
282 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
283 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;282 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
284 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;283 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
285 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;284 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
286 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;285 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
286 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
287287
288 try testCmpVector(f128);288 try testCmpVector(f128);
289 try comptime testCmpVector(f128);289 try comptime testCmpVector(f128);
290}290}
291291
292test "vector cmp f80/c_longdouble" {292test "vector cmp f80/c_longdouble" {
293 if (true) return error.SkipZigTest;293 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
294 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .powerpc64le) return error.SkipZigTest;
295 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
296 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
297 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
298 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
294299
295 try testCmpVector(f80);300 try testCmpVector(f80);
296 try comptime testCmpVector(f80);301 try comptime testCmpVector(f80);
297 try testCmpVector(c_longdouble);302 try testCmpVector(c_longdouble);
298 try comptime testCmpVector(c_longdouble);303 try comptime testCmpVector(c_longdouble);
299}304}
305
300fn testCmpVector(comptime T: type) !void {306fn testCmpVector(comptime T: type) !void {
307 @setEvalBranchQuota(2_000);
301 var edges = [_]T{308 var edges = [_]T{
302 -math.inf(T),309 -math.inf(T),
303 -math.floatMax(T),310 -math.floatMax(T),
test/behavior/packed-struct.zig-1
...@@ -1164,7 +1164,6 @@ test "assignment to non-byte-aligned field in packed struct" {...@@ -1164,7 +1164,6 @@ test "assignment to non-byte-aligned field in packed struct" {
1164}1164}
11651165
1166test "packed struct field pointer aligned properly" {1166test "packed struct field pointer aligned properly" {
1167 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1168 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1167 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1169 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1168 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1170 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1169 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/sizeof_and_typeof.zig-1
...@@ -326,7 +326,6 @@ test "lazy abi size used in comparison" {...@@ -326,7 +326,6 @@ test "lazy abi size used in comparison" {
326}326}
327327
328test "peer type resolution with @TypeOf doesn't trigger dependency loop check" {328test "peer type resolution with @TypeOf doesn't trigger dependency loop check" {
329 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
330 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO329 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
331 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO330 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
332 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;331 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
test/behavior/slice.zig-4
...@@ -994,7 +994,6 @@ test "modify slice length at comptime" {...@@ -994,7 +994,6 @@ test "modify slice length at comptime" {
994}994}
995995
996test "slicing zero length array field of struct" {996test "slicing zero length array field of struct" {
997 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
998 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO997 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
999 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO998 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1000 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;999 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
...@@ -1011,7 +1010,6 @@ test "slicing zero length array field of struct" {...@@ -1011,7 +1010,6 @@ test "slicing zero length array field of struct" {
1011}1010}
10121011
1013test "slicing slices gives correct result" {1012test "slicing slices gives correct result" {
1014 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1015 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1013 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1016 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1014 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1017 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;1015 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
...@@ -1026,7 +1024,6 @@ test "slicing slices gives correct result" {...@@ -1026,7 +1024,6 @@ test "slicing slices gives correct result" {
1026}1024}
10271025
1028test "get address of element of zero-sized slice" {1026test "get address of element of zero-sized slice" {
1029 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1030 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1027 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1031 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1028 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1032 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;1029 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
...@@ -1040,7 +1037,6 @@ test "get address of element of zero-sized slice" {...@@ -1040,7 +1037,6 @@ test "get address of element of zero-sized slice" {
1040}1037}
10411038
1042test "sentinel-terminated 0-length slices" {1039test "sentinel-terminated 0-length slices" {
1043 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1044 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1040 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1045 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1041 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1046 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;1042 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
test/behavior/struct.zig-4
...@@ -1835,7 +1835,6 @@ test "tuple with comptime-only field" {...@@ -1835,7 +1835,6 @@ test "tuple with comptime-only field" {
1835}1835}
18361836
1837test "extern struct fields are aligned to 1" {1837test "extern struct fields are aligned to 1" {
1838 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1839 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1838 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1840 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1839 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
18411840
...@@ -1905,7 +1904,6 @@ test "array of structs inside struct initialized with undefined" {...@@ -1905,7 +1904,6 @@ test "array of structs inside struct initialized with undefined" {
1905}1904}
19061905
1907test "runtime call in nested initializer" {1906test "runtime call in nested initializer" {
1908 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1909 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1907 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1910 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1908 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1911 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;1909 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
...@@ -1938,7 +1936,6 @@ test "runtime call in nested initializer" {...@@ -1938,7 +1936,6 @@ test "runtime call in nested initializer" {
1938}1936}
19391937
1940test "runtime value in nested initializer passed as pointer to function" {1938test "runtime value in nested initializer passed as pointer to function" {
1941 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1942 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1939 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1943 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1940 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
19441941
...@@ -1963,7 +1960,6 @@ test "runtime value in nested initializer passed as pointer to function" {...@@ -1963,7 +1960,6 @@ test "runtime value in nested initializer passed as pointer to function" {
1963}1960}
19641961
1965test "struct field default value is a call" {1962test "struct field default value is a call" {
1966 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1967 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1963 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1968 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1964 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1969 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1965 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/try.zig-2
...@@ -47,7 +47,6 @@ test "try then not executed with assignment" {...@@ -47,7 +47,6 @@ test "try then not executed with assignment" {
47}47}
4848
49test "`try`ing an if/else expression" {49test "`try`ing an if/else expression" {
50 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
51 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO50 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
52 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO51 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
53 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;52 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
...@@ -69,7 +68,6 @@ test "`try`ing an if/else expression" {...@@ -69,7 +68,6 @@ test "`try`ing an if/else expression" {
69}68}
7069
71test "'return try' of empty error set in function returning non-error" {70test "'return try' of empty error set in function returning non-error" {
72 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
73 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO71 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
74 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO72 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
75 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;73 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
test/behavior/undefined.zig-1
...@@ -89,7 +89,6 @@ test "type name of undefined" {...@@ -89,7 +89,6 @@ test "type name of undefined" {
89var buf: []u8 = undefined;89var buf: []u8 = undefined;
9090
91test "reslice of undefined global var slice" {91test "reslice of undefined global var slice" {
92 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
93 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO92 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
94 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO93 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
95 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;94 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
test/behavior/union.zig-2
...@@ -2129,7 +2129,6 @@ test "copied union field doesn't alias source" {...@@ -2129,7 +2129,6 @@ test "copied union field doesn't alias source" {
2129}2129}
21302130
2131test "create union(enum) from other union(enum)" {2131test "create union(enum) from other union(enum)" {
2132 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
2133 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2132 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2134 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2133 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2135 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;2134 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
...@@ -2254,7 +2253,6 @@ test "matching captures causes union equivalence" {...@@ -2254,7 +2253,6 @@ test "matching captures causes union equivalence" {
2254}2253}
22552254
2256test "signed enum tag with negative value" {2255test "signed enum tag with negative value" {
2257 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
2258 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2256 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2259 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2257 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2260 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;2258 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
test/behavior/vector.zig+3-5
...@@ -756,15 +756,15 @@ test "vector shift operators" {...@@ -756,15 +756,15 @@ test "vector shift operators" {
756756
757test "vector reduce operation" {757test "vector reduce operation" {
758 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO758 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
759 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
760 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO759 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
761 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO760 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
762 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO761 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
763 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;762 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
764 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;763 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
765 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;764 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
766 if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21091765 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21091
767 if (builtin.cpu.arch.isSPARC()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/23719766 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isSPARC()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/23719
767 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
768768
769 const S = struct {769 const S = struct {
770 fn testReduce(comptime op: std.builtin.ReduceOp, x: anytype, expected: anytype) !void {770 fn testReduce(comptime op: std.builtin.ReduceOp, x: anytype, expected: anytype) !void {
...@@ -1548,7 +1548,6 @@ test "index into comptime-known vector is comptime-known" {...@@ -1548,7 +1548,6 @@ test "index into comptime-known vector is comptime-known" {
1548}1548}
15491549
1550test "arithmetic on zero-length vectors" {1550test "arithmetic on zero-length vectors" {
1551 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1552 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1551 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1553 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1552 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1554 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1553 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -1567,7 +1566,6 @@ test "arithmetic on zero-length vectors" {...@@ -1567,7 +1566,6 @@ test "arithmetic on zero-length vectors" {
15671566
1568test "@reduce on bool vector" {1567test "@reduce on bool vector" {
1569 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO1568 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1570 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1571 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1569 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1572 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1570 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
15731571
test/behavior/x86_64.zig+1-1
...@@ -7,8 +7,8 @@ test {...@@ -7,8 +7,8 @@ test {
7 if (builtin.object_format == .macho) return error.SkipZigTest;7 if (builtin.object_format == .macho) return error.SkipZigTest;
8 // COFF linker does not support the new backend.8 // COFF linker does not support the new backend.
9 if (builtin.object_format == .coff) return error.SkipZigTest;9 if (builtin.object_format == .coff) return error.SkipZigTest;
10 _ = @import("x86_64/access.zig");
10 _ = @import("x86_64/binary.zig");11 _ = @import("x86_64/binary.zig");
11 _ = @import("x86_64/cast.zig");12 _ = @import("x86_64/cast.zig");
12 _ = @import("x86_64/mem.zig");
13 _ = @import("x86_64/unary.zig");13 _ = @import("x86_64/unary.zig");
14}14}
test/behavior/x86_64/access.zig created+196
...@@ -0,0 +1,196 @@
1const math = @import("math.zig");
2const imax = math.imax;
3const imin = math.imin;
4
5fn accessSlice(comptime array: anytype) !void {
6 var slice: []const @typeInfo(@TypeOf(array)).array.child = undefined;
7 slice = &array;
8 inline for (0.., &array) |ct_index, *elem| {
9 var rt_index: usize = undefined;
10 rt_index = ct_index;
11 if (&(slice.ptr + ct_index)[0] != elem) return error.Unexpected;
12 if (&(slice.ptr + rt_index)[0] != elem) return error.Unexpected;
13 if (&slice.ptr[ct_index..][0] != elem) return error.Unexpected;
14 if (&slice.ptr[rt_index..][0] != elem) return error.Unexpected;
15 if (&slice.ptr[ct_index] != elem) return error.Unexpected;
16 if (&slice.ptr[rt_index] != elem) return error.Unexpected;
17 if (&slice[ct_index..].ptr[0] != elem) return error.Unexpected;
18 if (&slice[rt_index..].ptr[0] != elem) return error.Unexpected;
19 if (&slice[ct_index] != elem) return error.Unexpected;
20 if (&slice[rt_index] != elem) return error.Unexpected;
21 if (slice.ptr[ct_index] != elem.*) return error.Unexpected;
22 if (slice.ptr[rt_index] != elem.*) return error.Unexpected;
23 if (slice[ct_index] != elem.*) return error.Unexpected;
24 if (slice[rt_index] != elem.*) return error.Unexpected;
25 }
26}
27test accessSlice {
28 try accessSlice([3]u8{ 0xdb, 0xef, 0xbd });
29 try accessSlice([3]u16{ 0x340e, 0x3654, 0x88d7 });
30 try accessSlice([3]u32{ 0xd424c2c0, 0x2d6ac466, 0x5a0cfaba });
31 try accessSlice([3]u64{
32 0x9327a4f5221666a6,
33 0x5c34d3ddd84a8b12,
34 0xbae087f39f649260,
35 });
36 try accessSlice([3]u128{
37 0x601cf010065444d4d42d5536dd9b95db,
38 0xa03f592fcaa22d40af23a0c735531e3c,
39 0x5da44907b31602b95c2d93f0b582ceab,
40 });
41}
42
43fn accessVector(comptime init: anytype) !void {
44 const Vector = @TypeOf(init);
45 const Elem = @typeInfo(Vector).vector.child;
46 const ct_vals: [2]Elem = switch (Elem) {
47 bool => .{ false, true },
48 else => .{ imin(Elem), imax(Elem) },
49 };
50 var rt_vals: [2]Elem = undefined;
51 rt_vals = ct_vals;
52 var vector: Vector = undefined;
53 vector = init;
54 inline for (0..@typeInfo(Vector).vector.len) |ct_index| {
55 var rt_index: usize = undefined;
56 rt_index = ct_index;
57 if (&vector[rt_index] != &vector[ct_index]) return error.Unexpected;
58 if (vector[rt_index] != init[ct_index]) return error.Unexpected;
59 if (vector[ct_index] != init[ct_index]) return error.Unexpected;
60 vector[rt_index] = rt_vals[0];
61 if (vector[rt_index] != ct_vals[0]) return error.Unexpected;
62 if (vector[ct_index] != ct_vals[0]) return error.Unexpected;
63 vector[rt_index] = ct_vals[1];
64 if (vector[rt_index] != ct_vals[1]) return error.Unexpected;
65 if (vector[ct_index] != ct_vals[1]) return error.Unexpected;
66 vector[ct_index] = ct_vals[0];
67 if (vector[rt_index] != ct_vals[0]) return error.Unexpected;
68 if (vector[ct_index] != ct_vals[0]) return error.Unexpected;
69 vector[ct_index] = rt_vals[1];
70 if (vector[rt_index] != ct_vals[1]) return error.Unexpected;
71 if (vector[ct_index] != ct_vals[1]) return error.Unexpected;
72 }
73}
74test accessVector {
75 try accessVector(@Vector(1, bool){
76 false,
77 });
78 try accessVector(@Vector(2, bool){
79 false, true,
80 });
81 try accessVector(@Vector(3, bool){
82 true, true, false,
83 });
84 try accessVector(@Vector(5, bool){
85 true, false, true, false, true,
86 });
87 try accessVector(@Vector(7, bool){
88 true, false, true, true, true, false, true,
89 });
90 try accessVector(@Vector(8, bool){
91 false, true, false, true, false, false, false, true,
92 });
93 try accessVector(@Vector(9, bool){
94 true, true, false, true, false, false, false, false,
95 true,
96 });
97 try accessVector(@Vector(15, bool){
98 false, true, true, true, false, true, false, false,
99 true, true, false, false, true, false, false,
100 });
101 try accessVector(@Vector(16, bool){
102 true, true, false, true, false, false, false, false,
103 false, true, true, false, false, false, true, true,
104 });
105 try accessVector(@Vector(17, bool){
106 true, false, true, true, false, true, false, true,
107 true, true, true, false, false, false, true, true,
108 false,
109 });
110 try accessVector(@Vector(31, bool){
111 true, false, true, true, false, true, true, true,
112 false, true, false, true, false, true, true, true,
113 false, false, true, false, false, false, false, true,
114 true, true, true, false, false, false, false,
115 });
116 try accessVector(@Vector(32, bool){
117 true, true, false, false, false, true, true, true,
118 false, true, true, true, false, true, false, true,
119 false, true, false, true, false, true, true, false,
120 false, false, false, false, false, true, true, true,
121 });
122 try accessVector(@Vector(33, bool){
123 true, false, false, false, false, true, true, true,
124 false, false, true, false, true, true, false, true,
125 true, true, false, true, true, false, false, false,
126 false, true, false, false, false, true, true, false,
127 false,
128 });
129 try accessVector(@Vector(63, bool){
130 false, false, true, true, true, false, true, true,
131 true, false, true, true, true, false, true, false,
132 true, true, false, true, false, true, true, true,
133 false, false, true, false, false, false, false, true,
134 true, true, true, true, false, true, false, true,
135 true, true, false, false, true, false, false, true,
136 false, true, false, false, false, false, true, true,
137 false, true, false, false, true, true, true,
138 });
139 try accessVector(@Vector(64, bool){
140 false, false, true, true, true, false, true, true,
141 true, false, true, true, false, true, true, false,
142 false, false, false, false, true, true, false, true,
143 true, true, true, true, false, false, false, true,
144 true, false, true, true, false, false, true, false,
145 false, true, true, false, true, true, false, false,
146 true, true, false, true, false, true, true, true,
147 false, true, true, false, false, false, false, false,
148 });
149 try accessVector(@Vector(65, bool){
150 false, false, true, true, true, true, true, true,
151 true, false, false, false, false, true, true, false,
152 true, false, true, true, true, false, false, false,
153 true, false, true, true, false, true, true, true,
154 true, true, false, true, true, false, true, false,
155 false, true, false, true, false, false, true, false,
156 true, false, true, true, true, false, true, true,
157 false, false, true, true, true, true, false, false,
158 true,
159 });
160 try accessVector(@Vector(8, u8){
161 0x60, 0xf7, 0xf4, 0xb0, 0x05, 0xd3, 0x06, 0x78,
162 });
163 try accessVector(@Vector(8, u16){
164 0x9c91, 0xfb8b, 0x7f80, 0x8304, 0x6e52, 0xd8ef, 0x37fc, 0x7851,
165 });
166 try accessVector(@Vector(8, u32){
167 0x688b88e2, 0x68e2b7a2, 0x87574680, 0xab4f0769,
168 0x75472bb5, 0xa791f2ae, 0xeb2ed416, 0x5f05ce82,
169 });
170 try accessVector(@Vector(8, u64){
171 0xdefd1ddffaedf818, 0x91c78a29d3d59890,
172 0x842aaf8fd3c7b785, 0x970a07b8f9f4a6b3,
173 0x21b2425d1a428246, 0xea50e41174a7977b,
174 0x08d0f1c4f5978b74, 0x8dc88a7fd85e0e67,
175 });
176 try accessVector(@Vector(8, u128){
177 0x6f2cbde1fb219b1e73d7f774d10f0d94,
178 0x7c1412616cda20436d7106691d8ba4cc,
179 0x4ee940b50e97675b3b35d7872a35b5ad,
180 0x6d994fb8caa1b2fac48acbb68fa2d2f1,
181 0xdee698c7ec8de9b5940903e3fc665b63,
182 0x0751491a509e4a1ce8cfa6d62fe9e74c,
183 0x3d880f0a927ce3bfc2682b72070fcd50,
184 0x82f0eec62881598699eeb93fbb456e95,
185 });
186 try accessVector(@Vector(8, u256){
187 0x6ee4f35fe624d365952f73960791238ac781bfba782abc7866a691063e43ce48,
188 0xb006491f54a9c9292458a5835b7d5f4cfa18136f175eef0a13bb8adf5c3dc061,
189 0xd6e25ca1bc5685fc52609e261b9065bc05a8662e9291660033dd7f6d98e562b3,
190 0x992c5e54e0e6331dac258996be7dae9b2a2eff323a39043ba8d2721420dc5f5c,
191 0x257313f45fb3556d0fc323d5f38c953e9a093fe2278655312b6a5b64aab9d901,
192 0x6c8ad2182b9a3b2b19c2c9b152956b383d0fee2e3fbd5b02ed72227446a7b221,
193 0xd80cafc2252b289793799675e43f97ba4a5448c7b57e1544a464687b435efc7b,
194 0xfcb480f2d70afd53c4689dd3f5db7638c24302f2a6a15f738167db090d91fb28,
195 });
196}
test/behavior/x86_64/binary.zig+54
...@@ -5434,6 +5434,60 @@ test optionalsNotEqual {...@@ -5434,6 +5434,60 @@ test optionalsNotEqual {
5434 try test_optionals_not_equal.testFloats();5434 try test_optionals_not_equal.testFloats();
5435}5435}
54365436
5437inline fn reduceAndEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5438 return @reduce(.And, lhs == rhs);
5439}
5440test reduceAndEqual {
5441 const test_reduce_and_equal = binary(reduceAndEqual, .{});
5442 try test_reduce_and_equal.testIntVectors();
5443 try test_reduce_and_equal.testFloatVectors();
5444}
5445
5446inline fn reduceAndNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5447 return @reduce(.And, lhs != rhs);
5448}
5449test reduceAndNotEqual {
5450 const test_reduce_and_not_equal = binary(reduceAndNotEqual, .{});
5451 try test_reduce_and_not_equal.testIntVectors();
5452 try test_reduce_and_not_equal.testFloatVectors();
5453}
5454
5455inline fn reduceOrEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5456 return @reduce(.Or, lhs == rhs);
5457}
5458test reduceOrEqual {
5459 const test_reduce_or_equal = binary(reduceOrEqual, .{});
5460 try test_reduce_or_equal.testIntVectors();
5461 try test_reduce_or_equal.testFloatVectors();
5462}
5463
5464inline fn reduceOrNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5465 return @reduce(.Or, lhs != rhs);
5466}
5467test reduceOrNotEqual {
5468 const test_reduce_or_not_equal = binary(reduceOrNotEqual, .{});
5469 try test_reduce_or_not_equal.testIntVectors();
5470 try test_reduce_or_not_equal.testFloatVectors();
5471}
5472
5473inline fn reduceXorEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5474 return @reduce(.Xor, lhs == rhs);
5475}
5476test reduceXorEqual {
5477 const test_reduce_xor_equal = binary(reduceXorEqual, .{});
5478 try test_reduce_xor_equal.testIntVectors();
5479 try test_reduce_xor_equal.testFloatVectors();
5480}
5481
5482inline fn reduceXorNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5483 return @reduce(.Xor, lhs != rhs);
5484}
5485test reduceXorNotEqual {
5486 const test_reduce_xor_not_equal = binary(reduceXorNotEqual, .{});
5487 try test_reduce_xor_not_equal.testIntVectors();
5488 try test_reduce_xor_not_equal.testFloatVectors();
5489}
5490
5437inline fn mulAdd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mulAdd(Type, lhs, rhs, rhs)) {5491inline fn mulAdd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mulAdd(Type, lhs, rhs, rhs)) {
5438 return @mulAdd(Type, lhs, rhs, rhs);5492 return @mulAdd(Type, lhs, rhs, rhs);
5439}5493}
test/behavior/x86_64/build.zig+4-3
...@@ -87,7 +87,7 @@ pub fn build(b: *std.Build) void {...@@ -87,7 +87,7 @@ pub fn build(b: *std.Build) void {
87 .{87 .{
88 .cpu_arch = .x86_64,88 .cpu_arch = .x86_64,
89 .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v2 },89 .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v2 },
90 .cpu_features_add = std.Target.x86.featureSet(&.{ .adx, .gfni }),90 .cpu_features_add = std.Target.x86.featureSet(&.{ .adx, .fast_hops, .gfni, .pclmul, .slow_incdec }),
91 },91 },
92 .{92 .{
93 .cpu_arch = .x86_64,93 .cpu_arch = .x86_64,
...@@ -97,6 +97,7 @@ pub fn build(b: *std.Build) void {...@@ -97,6 +97,7 @@ pub fn build(b: *std.Build) void {
97 .{97 .{
98 .cpu_arch = .x86_64,98 .cpu_arch = .x86_64,
99 .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 },99 .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 },
100 .cpu_features_add = std.Target.x86.featureSet(&.{ .adx, .fast_hops, .gfni, .pclmul, .slow_incdec }),
100 .cpu_features_sub = std.Target.x86.featureSet(&.{.avx2}),101 .cpu_features_sub = std.Target.x86.featureSet(&.{.avx2}),
101 },102 },
102 .{103 .{
...@@ -106,7 +107,7 @@ pub fn build(b: *std.Build) void {...@@ -106,7 +107,7 @@ pub fn build(b: *std.Build) void {
106 .{107 .{
107 .cpu_arch = .x86_64,108 .cpu_arch = .x86_64,
108 .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 },109 .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 },
109 .cpu_features_add = std.Target.x86.featureSet(&.{ .adx, .gfni }),110 .cpu_features_add = std.Target.x86.featureSet(&.{ .adx, .fast_hops, .gfni, .slow_incdec, .vpclmulqdq }),
110 },111 },
111 .{112 .{
112 .cpu_arch = .x86_64,113 .cpu_arch = .x86_64,
...@@ -116,9 +117,9 @@ pub fn build(b: *std.Build) void {...@@ -116,9 +117,9 @@ pub fn build(b: *std.Build) void {
116 const target = b.resolveTargetQuery(query);117 const target = b.resolveTargetQuery(query);
117 const cpu = query.serializeCpuAlloc(b.allocator) catch @panic("OOM");118 const cpu = query.serializeCpuAlloc(b.allocator) catch @panic("OOM");
118 for ([_][]const u8{119 for ([_][]const u8{
120 "access.zig",
119 "binary.zig",121 "binary.zig",
120 "cast.zig",122 "cast.zig",
121 "mem.zig",
122 "unary.zig",123 "unary.zig",
123 }) |path| {124 }) |path| {
124 const test_mod = b.createModule(.{125 const test_mod = b.createModule(.{
test/behavior/x86_64/math.zig+18-6
...@@ -125,7 +125,7 @@ fn boolOr(lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) {...@@ -125,7 +125,7 @@ fn boolOr(lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) {
125 @compileError("unsupported boolOr type: " ++ @typeName(@TypeOf(lhs)));125 @compileError("unsupported boolOr type: " ++ @typeName(@TypeOf(lhs)));
126}126}
127127
128pub const Compare = enum { strict, relaxed, approx, approx_int };128pub const Compare = enum { strict, relaxed, approx, approx_int, approx_or_overflow };
129// noinline for a more helpful stack trace129// noinline for a more helpful stack trace
130pub noinline fn checkExpected(expected: anytype, actual: @TypeOf(expected), comptime compare: Compare) !void {130pub noinline fn checkExpected(expected: anytype, actual: @TypeOf(expected), comptime compare: Compare) !void {
131 const Expected = @TypeOf(expected);131 const Expected = @TypeOf(expected);
...@@ -137,20 +137,32 @@ pub noinline fn checkExpected(expected: anytype, actual: @TypeOf(expected), comp...@@ -137,20 +137,32 @@ pub noinline fn checkExpected(expected: anytype, actual: @TypeOf(expected), comp
137 break :unexpected switch (compare) {137 break :unexpected switch (compare) {
138 .strict => boolOr(unequal, sign(expected) != sign(actual)),138 .strict => boolOr(unequal, sign(expected) != sign(actual)),
139 .relaxed => unequal,139 .relaxed => unequal,
140 .approx, .approx_int => comptime unreachable,140 .approx, .approx_int, .approx_or_overflow => comptime unreachable,
141 };141 };
142 },142 },
143 .approx, .approx_int => {143 .approx, .approx_int, .approx_or_overflow => {
144 const epsilon = math.floatEps(Scalar(Expected));144 const epsilon = math.floatEps(Scalar(Expected));
145 const tolerance = @sqrt(epsilon);145 const tolerance = switch (compare) {
146 break :unexpected @abs(expected - actual) > @max(146 .strict, .relaxed => comptime unreachable,
147 .approx, .approx_int => @sqrt(epsilon),
148 .approx_or_overflow => @exp2(@log2(epsilon) * 0.4),
149 };
150 const approx_unequal = @abs(expected - actual) > @max(
147 @abs(expected) * splat(Expected, tolerance),151 @abs(expected) * splat(Expected, tolerance),
148 splat(Expected, switch (compare) {152 splat(Expected, switch (compare) {
149 .strict, .relaxed => comptime unreachable,153 .strict, .relaxed => comptime unreachable,
150 .approx => tolerance,154 .approx, .approx_or_overflow => tolerance,
151 .approx_int => 1,155 .approx_int => 1,
152 }),156 }),
153 );157 );
158 break :unexpected switch (compare) {
159 .strict, .relaxed => comptime unreachable,
160 .approx, .approx_int => approx_unequal,
161 .approx_or_overflow => boolAnd(approx_unequal, boolOr(boolAnd(
162 @abs(expected) != splat(Expected, inf(Expected)),
163 @abs(actual) != splat(Expected, inf(Expected)),
164 ), sign(expected) != sign(actual))),
165 };
154 },166 },
155 },167 },
156 .@"struct" => |@"struct"| inline for (@"struct".fields) |field| {168 .@"struct" => |@"struct"| inline for (@"struct".fields) |field| {
test/behavior/x86_64/mem.zig deleted-196
...@@ -1,196 +0,0 @@
1const math = @import("math.zig");
2const imax = math.imax;
3const imin = math.imin;
4
5fn accessSlice(comptime array: anytype) !void {
6 var slice: []const @typeInfo(@TypeOf(array)).array.child = undefined;
7 slice = &array;
8 inline for (0.., &array) |ct_index, *elem| {
9 var rt_index: usize = undefined;
10 rt_index = ct_index;
11 if (&(slice.ptr + ct_index)[0] != elem) return error.Unexpected;
12 if (&(slice.ptr + rt_index)[0] != elem) return error.Unexpected;
13 if (&slice.ptr[ct_index..][0] != elem) return error.Unexpected;
14 if (&slice.ptr[rt_index..][0] != elem) return error.Unexpected;
15 if (&slice.ptr[ct_index] != elem) return error.Unexpected;
16 if (&slice.ptr[rt_index] != elem) return error.Unexpected;
17 if (&slice[ct_index..].ptr[0] != elem) return error.Unexpected;
18 if (&slice[rt_index..].ptr[0] != elem) return error.Unexpected;
19 if (&slice[ct_index] != elem) return error.Unexpected;
20 if (&slice[rt_index] != elem) return error.Unexpected;
21 if (slice.ptr[ct_index] != elem.*) return error.Unexpected;
22 if (slice.ptr[rt_index] != elem.*) return error.Unexpected;
23 if (slice[ct_index] != elem.*) return error.Unexpected;
24 if (slice[rt_index] != elem.*) return error.Unexpected;
25 }
26}
27test accessSlice {
28 try accessSlice([3]u8{ 0xdb, 0xef, 0xbd });
29 try accessSlice([3]u16{ 0x340e, 0x3654, 0x88d7 });
30 try accessSlice([3]u32{ 0xd424c2c0, 0x2d6ac466, 0x5a0cfaba });
31 try accessSlice([3]u64{
32 0x9327a4f5221666a6,
33 0x5c34d3ddd84a8b12,
34 0xbae087f39f649260,
35 });
36 try accessSlice([3]u128{
37 0x601cf010065444d4d42d5536dd9b95db,
38 0xa03f592fcaa22d40af23a0c735531e3c,
39 0x5da44907b31602b95c2d93f0b582ceab,
40 });
41}
42
43fn accessVector(comptime init: anytype) !void {
44 const Vector = @TypeOf(init);
45 const Elem = @typeInfo(Vector).vector.child;
46 const ct_vals: [2]Elem = switch (Elem) {
47 bool => .{ false, true },
48 else => .{ imin(Elem), imax(Elem) },
49 };
50 var rt_vals: [2]Elem = undefined;
51 rt_vals = ct_vals;
52 var vector: Vector = undefined;
53 vector = init;
54 inline for (0..@typeInfo(Vector).vector.len) |ct_index| {
55 var rt_index: usize = undefined;
56 rt_index = ct_index;
57 if (&vector[rt_index] != &vector[ct_index]) return error.Unexpected;
58 if (vector[rt_index] != init[ct_index]) return error.Unexpected;
59 if (vector[ct_index] != init[ct_index]) return error.Unexpected;
60 vector[rt_index] = rt_vals[0];
61 if (vector[rt_index] != ct_vals[0]) return error.Unexpected;
62 if (vector[ct_index] != ct_vals[0]) return error.Unexpected;
63 vector[rt_index] = ct_vals[1];
64 if (vector[rt_index] != ct_vals[1]) return error.Unexpected;
65 if (vector[ct_index] != ct_vals[1]) return error.Unexpected;
66 vector[ct_index] = ct_vals[0];
67 if (vector[rt_index] != ct_vals[0]) return error.Unexpected;
68 if (vector[ct_index] != ct_vals[0]) return error.Unexpected;
69 vector[ct_index] = rt_vals[1];
70 if (vector[rt_index] != ct_vals[1]) return error.Unexpected;
71 if (vector[ct_index] != ct_vals[1]) return error.Unexpected;
72 }
73}
74test accessVector {
75 try accessVector(@Vector(1, bool){
76 false,
77 });
78 try accessVector(@Vector(2, bool){
79 false, true,
80 });
81 try accessVector(@Vector(3, bool){
82 true, true, false,
83 });
84 try accessVector(@Vector(5, bool){
85 true, false, true, false, true,
86 });
87 try accessVector(@Vector(7, bool){
88 true, false, true, true, true, false, true,
89 });
90 try accessVector(@Vector(8, bool){
91 false, true, false, true, false, false, false, true,
92 });
93 try accessVector(@Vector(9, bool){
94 true, true, false, true, false, false, false, false,
95 true,
96 });
97 try accessVector(@Vector(15, bool){
98 false, true, true, true, false, true, false, false,
99 true, true, false, false, true, false, false,
100 });
101 try accessVector(@Vector(16, bool){
102 true, true, false, true, false, false, false, false,
103 false, true, true, false, false, false, true, true,
104 });
105 try accessVector(@Vector(17, bool){
106 true, false, true, true, false, true, false, true,
107 true, true, true, false, false, false, true, true,
108 false,
109 });
110 try accessVector(@Vector(31, bool){
111 true, false, true, true, false, true, true, true,
112 false, true, false, true, false, true, true, true,
113 false, false, true, false, false, false, false, true,
114 true, true, true, false, false, false, false,
115 });
116 try accessVector(@Vector(32, bool){
117 true, true, false, false, false, true, true, true,
118 false, true, true, true, false, true, false, true,
119 false, true, false, true, false, true, true, false,
120 false, false, false, false, false, true, true, true,
121 });
122 try accessVector(@Vector(33, bool){
123 true, false, false, false, false, true, true, true,
124 false, false, true, false, true, true, false, true,
125 true, true, false, true, true, false, false, false,
126 false, true, false, false, false, true, true, false,
127 false,
128 });
129 try accessVector(@Vector(63, bool){
130 false, false, true, true, true, false, true, true,
131 true, false, true, true, true, false, true, false,
132 true, true, false, true, false, true, true, true,
133 false, false, true, false, false, false, false, true,
134 true, true, true, true, false, true, false, true,
135 true, true, false, false, true, false, false, true,
136 false, true, false, false, false, false, true, true,
137 false, true, false, false, true, true, true,
138 });
139 try accessVector(@Vector(64, bool){
140 false, false, true, true, true, false, true, true,
141 true, false, true, true, false, true, true, false,
142 false, false, false, false, true, true, false, true,
143 true, true, true, true, false, false, false, true,
144 true, false, true, true, false, false, true, false,
145 false, true, true, false, true, true, false, false,
146 true, true, false, true, false, true, true, true,
147 false, true, true, false, false, false, false, false,
148 });
149 try accessVector(@Vector(65, bool){
150 false, false, true, true, true, true, true, true,
151 true, false, false, false, false, true, true, false,
152 true, false, true, true, true, false, false, false,
153 true, false, true, true, false, true, true, true,
154 true, true, false, true, true, false, true, false,
155 false, true, false, true, false, false, true, false,
156 true, false, true, true, true, false, true, true,
157 false, false, true, true, true, true, false, false,
158 true,
159 });
160 try accessVector(@Vector(8, u8){
161 0x60, 0xf7, 0xf4, 0xb0, 0x05, 0xd3, 0x06, 0x78,
162 });
163 try accessVector(@Vector(8, u16){
164 0x9c91, 0xfb8b, 0x7f80, 0x8304, 0x6e52, 0xd8ef, 0x37fc, 0x7851,
165 });
166 try accessVector(@Vector(8, u32){
167 0x688b88e2, 0x68e2b7a2, 0x87574680, 0xab4f0769,
168 0x75472bb5, 0xa791f2ae, 0xeb2ed416, 0x5f05ce82,
169 });
170 try accessVector(@Vector(8, u64){
171 0xdefd1ddffaedf818, 0x91c78a29d3d59890,
172 0x842aaf8fd3c7b785, 0x970a07b8f9f4a6b3,
173 0x21b2425d1a428246, 0xea50e41174a7977b,
174 0x08d0f1c4f5978b74, 0x8dc88a7fd85e0e67,
175 });
176 try accessVector(@Vector(8, u128){
177 0x6f2cbde1fb219b1e73d7f774d10f0d94,
178 0x7c1412616cda20436d7106691d8ba4cc,
179 0x4ee940b50e97675b3b35d7872a35b5ad,
180 0x6d994fb8caa1b2fac48acbb68fa2d2f1,
181 0xdee698c7ec8de9b5940903e3fc665b63,
182 0x0751491a509e4a1ce8cfa6d62fe9e74c,
183 0x3d880f0a927ce3bfc2682b72070fcd50,
184 0x82f0eec62881598699eeb93fbb456e95,
185 });
186 try accessVector(@Vector(8, u256){
187 0x6ee4f35fe624d365952f73960791238ac781bfba782abc7866a691063e43ce48,
188 0xb006491f54a9c9292458a5835b7d5f4cfa18136f175eef0a13bb8adf5c3dc061,
189 0xd6e25ca1bc5685fc52609e261b9065bc05a8662e9291660033dd7f6d98e562b3,
190 0x992c5e54e0e6331dac258996be7dae9b2a2eff323a39043ba8d2721420dc5f5c,
191 0x257313f45fb3556d0fc323d5f38c953e9a093fe2278655312b6a5b64aab9d901,
192 0x6c8ad2182b9a3b2b19c2c9b152956b383d0fee2e3fbd5b02ed72227446a7b221,
193 0xd80cafc2252b289793799675e43f97ba4a5448c7b57e1544a464687b435efc7b,
194 0xfcb480f2d70afd53c4689dd3f5db7638c24302f2a6a15f738167db090d91fb28,
195 });
196}
test/behavior/x86_64/unary.zig+3822-475
...@@ -675,6 +675,105 @@ fn unary(comptime op: anytype, comptime opts: struct {...@@ -675,6 +675,105 @@ fn unary(comptime op: anytype, comptime opts: struct {
675 try testArgs(f128, inf(f128));675 try testArgs(f128, inf(f128));
676 try testArgs(f128, nan(f128));676 try testArgs(f128, nan(f128));
677 }677 }
678 fn testBoolVectors() !void {
679 try testArgs(@Vector(1, bool), .{
680 true,
681 });
682 try testArgs(@Vector(2, bool), .{
683 false, false,
684 });
685 try testArgs(@Vector(3, bool), .{
686 false, false, false,
687 });
688 try testArgs(@Vector(4, bool), .{
689 true, true, true, true,
690 });
691 try testArgs(@Vector(5, bool), .{
692 true, true, true, true, true,
693 });
694 try testArgs(@Vector(7, bool), .{
695 false, false, false, false, false, false, false,
696 });
697 try testArgs(@Vector(8, bool), .{
698 false, true, false, true, true, false, true, false,
699 });
700 try testArgs(@Vector(9, bool), .{
701 true, false, false, false, true, true, false, true, false,
702 });
703 try testArgs(@Vector(15, bool), .{
704 false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,
705 });
706 try testArgs(@Vector(16, bool), .{
707 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
708 });
709 try testArgs(@Vector(17, bool), .{
710 true, false, true, true, true, true, false, false, true, false, true, true, false, false, false, true,
711 true,
712 });
713 try testArgs(@Vector(31, bool), .{
714 false, false, false, false, false, false, true, true, true, false, false, true, false, false, false, false,
715 true, true, false, false, true, false, true, true, true, false, false, true, true, false, false,
716 });
717 try testArgs(@Vector(32, bool), .{
718 false, true, true, false, true, false, false, false, true, false, false, false, true, true, true, true,
719 false, false, false, true, false, true, false, true, true, false, false, false, true, false, false, false,
720 });
721 try testArgs(@Vector(33, bool), .{
722 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
723 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
724 true,
725 });
726 try testArgs(@Vector(63, bool), .{
727 true, false, false, true, false, false, true, false, true, true, true, false, false, false, false, true,
728 true, true, false, false, false, true, true, false, true, false, true, false, false, true, true, false,
729 true, true, true, true, false, true, true, true, true, true, true, false, false, false, false, true,
730 false, false, true, false, true, true, false, true, true, true, true, true, true, false, true,
731 });
732 try testArgs(@Vector(64, bool), .{
733 true, true, false, true, true, false, false, false, false, true, false, true, false, false, false, false,
734 true, true, true, false, true, true, false, true, true, true, false, false, false, true, true, false,
735 false, true, false, false, false, false, false, false, true, true, false, true, false, false, false, false,
736 false, true, true, true, false, false, false, false, true, false, false, true, false, true, false, true,
737 });
738 try testArgs(@Vector(65, bool), .{
739 false, false, true, false, false, false, false, true, false, true, false, true, true, true, true, false,
740 false, true, false, true, true, false, false, true, true, false, true, false, true, true, true, false,
741 false, true, true, true, true, false, false, false, true, true, false, true, true, true, false, false,
742 false, true, false, false, false, false, true, true, false, false, false, true, true, false, false, false,
743 false,
744 });
745 try testArgs(@Vector(127, bool), .{
746 true, true, true, false, false, false, false, true, true, true, true, true, false, false, true, false,
747 false, true, false, true, true, false, true, true, true, true, true, false, true, false, true, true,
748 true, true, false, true, true, true, true, true, false, false, true, false, true, true, true, false,
749 false, true, true, false, true, true, false, false, true, false, true, true, false, false, true, true,
750 false, false, false, false, false, true, true, false, true, true, false, true, true, true, false, true,
751 true, false, false, false, false, false, false, true, true, true, false, true, true, true, false, true,
752 false, true, true, false, false, false, false, true, true, false, false, false, true, false, true, true,
753 true, false, true, false, true, true, false, true, false, false, false, true, false, false, true,
754 });
755 try testArgs(@Vector(128, bool), .{
756 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
757 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
758 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
759 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
760 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
761 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
762 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
763 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
764 });
765 try testArgs(@Vector(129, bool), .{
766 true, true, false, true, true, false, true, false, false, true, true, false, true, true, true, false,
767 true, true, true, false, false, false, true, true, false, false, false, true, true, false, false, true,
768 true, false, false, true, false, true, true, false, true, true, false, true, false, false, true, false,
769 false, false, false, false, true, true, false, false, true, true, false, false, false, false, true, false,
770 false, true, true, true, true, true, false, true, true, true, false, false, true, false, false, true,
771 true, true, true, true, true, false, true, false, false, true, true, true, true, false, true, true,
772 true, false, true, true, true, true, true, true, false, false, false, false, false, true, true, true,
773 true, true, false, false, false, false, false, true, true, false, true, true, true, false, false, false,
774 false,
775 });
776 }
678 fn testIntVectorTypes() !void {777 fn testIntVectorTypes() !void {
679 try testArgs(@Vector(3, i1), undefined);778 try testArgs(@Vector(3, i1), undefined);
680 try testArgs(@Vector(3, u1), undefined);779 try testArgs(@Vector(3, u1), undefined);
...@@ -838,549 +937,3485 @@ fn unary(comptime op: anytype, comptime opts: struct {...@@ -838,549 +937,3485 @@ fn unary(comptime op: anytype, comptime opts: struct {
838 try testArgs(@Vector(3, u1025), undefined);937 try testArgs(@Vector(3, u1025), undefined);
839 }938 }
840 fn testIntVectors() !void {939 fn testIntVectors() !void {
841 try testArgs(@Vector(3, i1), .{ -1 << 0, -1, 0 });940 try testArgs(@Vector(1, i1), .{
842 try testArgs(@Vector(3, u1), .{ 0, 1, 1 << 0 });941 0x0,
942 });
943 try testArgs(@Vector(2, i1), .{
944 -0x1, -0x1,
945 });
946 try testArgs(@Vector(3, i1), .{
947 0x0, 0x0, 0x0,
948 });
949 try testArgs(@Vector(4, i1), .{
950 -0x1, -0x1, -0x1, 0x0,
951 });
952 try testArgs(@Vector(5, i1), .{
953 -0x1, -0x1, 0x0, 0x0, -0x1,
954 });
955 try testArgs(@Vector(7, i1), .{
956 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
957 });
958 try testArgs(@Vector(8, i1), .{
959 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
960 });
961 try testArgs(@Vector(9, i1), .{
962 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
963 });
964 try testArgs(@Vector(15, i1), .{
965 0x0, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, 0x0, -0x1, -0x1, -0x1, -0x1,
966 });
967 try testArgs(@Vector(16, i1), .{
968 -0x1, -0x1, 0x0, -0x1, 0x0, 0x0, -0x1, 0x0, -0x1, -0x1, -0x1, -0x1, 0x0, 0x0, -0x1, -0x1,
969 });
970 try testArgs(@Vector(17, i1), .{
971 -0x1, -0x1, 0x0, -0x1, 0x0, -0x1, 0x0, 0x0, 0x0, -0x1, 0x0, 0x0, -0x1, -0x1, -0x1, 0x0,
972 -0x1,
973 });
974 try testArgs(@Vector(31, i1), .{
975 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
976 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
977 });
978 try testArgs(@Vector(32, i1), .{
979 0x0, -0x1, 0x0, 0x0, -0x1, -0x1, -0x1, -0x1, -0x1, 0x0, -0x1, -0x1, -0x1, -0x1, 0x0, 0x0,
980 0x0, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, -0x1, 0x0, 0x0, -0x1, 0x0, 0x0, -0x1, -0x1, -0x1,
981 });
982 try testArgs(@Vector(33, i1), .{
983 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
984 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
985 0x0,
986 });
987 try testArgs(@Vector(63, i1), .{
988 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
989 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
990 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
991 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
992 });
993 try testArgs(@Vector(64, i1), .{
994 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
995 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
996 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
997 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
998 });
999 try testArgs(@Vector(65, i1), .{
1000 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1001 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1002 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1003 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1004 0x0,
1005 });
1006 try testArgs(@Vector(127, i1), .{
1007 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1008 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1009 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1010 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1011 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1012 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1013 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1014 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1015 });
1016 try testArgs(@Vector(128, i1), .{
1017 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1018 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1019 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1020 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1021 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1022 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1023 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1024 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1025 });
1026 try testArgs(@Vector(129, i1), .{
1027 -0x1, -0x1, 0x0, -0x1, -0x1, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, 0x0,
1028 0x0, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, -0x1, 0x0, 0x0,
1029 0x0, -0x1, 0x0, -0x1, 0x0, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x0,
1030 -0x1, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, -0x1, -0x1, 0x0, -0x1, -0x1, 0x0, -0x1, -0x1, -0x1,
1031 -0x1, 0x0, -0x1, 0x0, -0x1, -0x1, -0x1, -0x1, 0x0, 0x0, -0x1, 0x0, -0x1, 0x0, -0x1, 0x0,
1032 0x0, -0x1, -0x1, 0x0, 0x0, -0x1, -0x1, 0x0, -0x1, 0x0, 0x0, -0x1, 0x0, -0x1, 0x0, 0x0,
1033 0x0, 0x0, 0x0, -0x1, -0x1, 0x0, -0x1, -0x1, 0x0, -0x1, -0x1, -0x1, -0x1, -0x1, 0x0, 0x0,
1034 0x0, -0x1, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, -0x1, -0x1, -0x1, -0x1,
1035 0x0,
1036 });
1037
1038 try testArgs(@Vector(1, u1), .{
1039 0x1,
1040 });
1041 try testArgs(@Vector(2, u1), .{
1042 0x0, 0x0,
1043 });
1044 try testArgs(@Vector(3, u1), .{
1045 0x0, 0x0, 0x0,
1046 });
1047 try testArgs(@Vector(4, u1), .{
1048 0x1, 0x1, 0x1, 0x1,
1049 });
1050 try testArgs(@Vector(5, u1), .{
1051 0x1, 0x1, 0x1, 0x1, 0x1,
1052 });
1053 try testArgs(@Vector(7, u1), .{
1054 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1055 });
1056 try testArgs(@Vector(8, u1), .{
1057 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0,
1058 });
1059 try testArgs(@Vector(9, u1), .{
1060 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0,
1061 });
1062 try testArgs(@Vector(15, u1), .{
1063 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1064 });
1065 try testArgs(@Vector(16, u1), .{
1066 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1067 });
1068 try testArgs(@Vector(17, u1), .{
1069 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1,
1070 0x1,
1071 });
1072 try testArgs(@Vector(31, u1), .{
1073 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
1074 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0,
1075 });
1076 try testArgs(@Vector(32, u1), .{
1077 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1,
1078 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
1079 });
1080 try testArgs(@Vector(33, u1), .{
1081 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1082 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1083 0x1,
1084 });
1085 try testArgs(@Vector(63, u1), .{
1086 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1,
1087 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0,
1088 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1,
1089 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1,
1090 });
1091 try testArgs(@Vector(64, u1), .{
1092 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
1093 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0,
1094 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
1095 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1,
1096 });
1097 try testArgs(@Vector(65, u1), .{
1098 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0,
1099 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0,
1100 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0,
1101 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0,
1102 0x0,
1103 });
1104 try testArgs(@Vector(127, u1), .{
1105 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0,
1106 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1,
1107 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0,
1108 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1,
1109 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
1110 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
1111 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1,
1112 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1,
1113 });
1114 try testArgs(@Vector(128, u1), .{
1115 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1116 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1117 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1118 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1119 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1120 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1121 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1122 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1123 });
1124 try testArgs(@Vector(129, u1), .{
1125 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0,
1126 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1,
1127 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0,
1128 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
1129 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1,
1130 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1,
1131 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1,
1132 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0,
1133 0x0,
1134 });
1135
1136 try testArgs(@Vector(1, i2), .{
1137 0x1,
1138 });
1139 try testArgs(@Vector(2, i2), .{
1140 0x0, 0x0,
1141 });
1142 try testArgs(@Vector(3, i2), .{
1143 -0x2, 0x1, -0x2,
1144 });
1145 try testArgs(@Vector(4, i2), .{
1146 0x1, 0x0, 0x0, -0x2,
1147 });
1148 try testArgs(@Vector(5, i2), .{
1149 -0x1, -0x2, -0x1, 0x1, 0x1,
1150 });
1151 try testArgs(@Vector(7, i2), .{
1152 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1,
1153 });
1154 try testArgs(@Vector(8, i2), .{
1155 0x1, -0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x1,
1156 });
1157 try testArgs(@Vector(9, i2), .{
1158 -0x2, -0x2, 0x0, 0x0, 0x0, 0x0, 0x0, -0x2, -0x2,
1159 });
1160 try testArgs(@Vector(15, i2), .{
1161 -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1162 });
1163 try testArgs(@Vector(16, i2), .{
1164 0x0, -0x2, 0x1, -0x2, 0x1, -0x1, -0x2, -0x1, 0x0, -0x2, -0x1, 0x1, 0x1, 0x1, -0x1, -0x1,
1165 });
1166 try testArgs(@Vector(17, i2), .{
1167 -0x2, 0x0, 0x1, 0x0, -0x2, 0x0, -0x2, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, -0x2,
1168 -0x1,
1169 });
1170 try testArgs(@Vector(31, i2), .{
1171 0x0, 0x1, -0x1, 0x1, -0x1, -0x2, -0x1, 0x1, 0x0, -0x2, -0x1, 0x0, 0x0, 0x1, 0x0, -0x1,
1172 -0x1, 0x0, 0x1, 0x0, -0x2, -0x1, -0x1, -0x2, -0x2, 0x0, -0x1, -0x1, 0x1, -0x2, -0x1,
1173 });
1174 try testArgs(@Vector(32, i2), .{
1175 0x1, 0x0, -0x1, 0x0, 0x0, -0x1, 0x0, 0x1, -0x1, 0x0, -0x1, -0x1, 0x1, 0x0, -0x2, -0x1,
1176 0x1, -0x1, 0x0, 0x1, -0x1, 0x1, -0x1, 0x0, -0x2, 0x1, -0x1, 0x1, -0x1, -0x2, 0x1, -0x2,
1177 });
1178 try testArgs(@Vector(33, i2), .{
1179 0x0, -0x1, -0x2, -0x1, 0x0, -0x1, -0x2, 0x0, -0x2, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x1,
1180 -0x1, -0x1, 0x1, 0x0, 0x1, -0x2, -0x1, -0x2, -0x1, 0x1, -0x1, 0x0, -0x1, -0x1, -0x2, 0x0,
1181 -0x1,
1182 });
1183 try testArgs(@Vector(63, i2), .{
1184 -0x2, -0x2, -0x2, 0x0, 0x0, -0x1, 0x1, 0x1, 0x1, 0x0, -0x2, 0x1, -0x2, -0x2, 0x0, -0x2,
1185 0x1, -0x1, 0x0, 0x1, 0x1, -0x2, 0x0, -0x2, -0x1, -0x1, 0x1, 0x1, -0x1, -0x2, -0x1, 0x0,
1186 0x1, 0x0, 0x1, 0x1, -0x2, -0x2, 0x0, 0x1, 0x1, -0x2, -0x2, -0x2, 0x1, 0x1, -0x2, -0x2,
1187 -0x2, 0x1, 0x0, -0x2, 0x1, -0x2, 0x0, 0x0, 0x0, -0x2, -0x1, 0x1, 0x0, 0x1, -0x2,
1188 });
1189 try testArgs(@Vector(64, i2), .{
1190 -0x1, 0x1, 0x1, -0x1, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, 0x1, 0x1, -0x1, -0x1, 0x1, 0x1,
1191 -0x1, -0x1, -0x1, 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1,
1192 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, -0x1,
1193 -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, 0x1, -0x1,
1194 });
1195 try testArgs(@Vector(65, i2), .{
1196 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, -0x1, -0x1, 0x1, 0x1, -0x2, 0x0, -0x1, -0x2, -0x1, -0x1,
1197 0x0, 0x1, -0x2, -0x2, 0x0, -0x2, -0x2, 0x1, 0x1, -0x2, 0x0, -0x1, 0x0, -0x2, -0x1, -0x2,
1198 -0x2, -0x1, 0x1, 0x0, -0x2, -0x1, -0x2, 0x0, 0x1, -0x2, -0x1, -0x2, 0x0, -0x1, -0x2, -0x1,
1199 0x0, 0x1, -0x1, 0x1, -0x2, -0x1, 0x1, -0x2, 0x1, 0x0, -0x2, 0x1, -0x1, 0x0, -0x2, 0x0,
1200 -0x1,
1201 });
1202 try testArgs(@Vector(127, i2), .{
1203 -0x1, 0x0, -0x1, 0x0, -0x2, -0x2, -0x2, -0x1, 0x0, -0x1, 0x1, -0x2, -0x1, -0x2, 0x0, -0x1,
1204 0x1, 0x0, 0x1, -0x2, 0x1, 0x0, -0x2, 0x0, 0x1, -0x1, -0x1, 0x1, -0x1, -0x2, -0x1, -0x2,
1205 0x0, 0x1, -0x1, 0x0, 0x0, -0x2, 0x0, -0x2, -0x2, 0x0, 0x0, 0x1, 0x0, -0x2, 0x0, -0x1,
1206 -0x2, 0x0, -0x1, -0x2, 0x1, 0x0, -0x2, -0x1, -0x1, 0x1, -0x1, 0x0, 0x0, -0x2, -0x1, -0x1,
1207 0x0, 0x0, 0x1, 0x0, -0x2, -0x1, 0x0, 0x0, 0x1, 0x0, -0x2, -0x2, 0x0, -0x2, -0x1, -0x2,
1208 0x0, 0x0, -0x1, -0x2, 0x1, -0x2, -0x1, 0x0, -0x1, -0x1, -0x1, 0x0, 0x0, -0x1, 0x1, -0x1,
1209 -0x1, -0x1, -0x2, 0x0, -0x2, 0x0, 0x1, 0x0, -0x1, -0x1, 0x1, 0x1, -0x1, 0x0, -0x1, 0x1,
1210 0x1, 0x0, -0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x1, 0x1, 0x1, -0x2, -0x2, 0x1, -0x1,
1211 });
1212 try testArgs(@Vector(128, i2), .{
1213 -0x2, 0x0, -0x2, 0x0, 0x0, -0x2, -0x2, 0x0, -0x2, 0x0, -0x2, 0x0, 0x0, 0x0, -0x2, 0x0,
1214 -0x2, -0x2, 0x0, 0x0, 0x0, -0x2, 0x0, 0x0, 0x0, -0x2, 0x0, -0x2, -0x2, 0x0, 0x0, -0x2,
1215 -0x2, 0x0, -0x2, 0x0, 0x0, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, 0x0, -0x2, 0x0, -0x2, 0x0,
1216 0x0, -0x2, 0x0, -0x2, 0x0, 0x0, 0x0, -0x2, -0x2, 0x0, 0x0, -0x2, -0x2, -0x2, -0x2, -0x2,
1217 -0x2, -0x2, -0x2, -0x2, -0x2, 0x0, 0x0, 0x0, -0x2, -0x2, -0x2, -0x2, 0x0, 0x0, 0x0, -0x2,
1218 0x0, -0x2, 0x0, 0x0, -0x2, 0x0, 0x0, -0x2, -0x2, 0x0, -0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
1219 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, -0x2, 0x0, -0x2, -0x2, -0x2, -0x2, 0x0, 0x0, 0x0, -0x2,
1220 0x0, -0x2, -0x2, -0x2, 0x0, 0x0, -0x2, 0x0, -0x2, -0x2, 0x0, -0x2, 0x0, -0x2, 0x0, 0x0,
1221 });
1222 try testArgs(@Vector(129, i2), .{
1223 -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1,
1224 -0x2, -0x2, -0x2, -0x2, -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1,
1225 -0x1, -0x1, -0x1, -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x2, -0x1, -0x1, -0x2, -0x2, -0x2,
1226 -0x1, -0x1, -0x1, -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x1, -0x1,
1227 -0x1, -0x2, -0x2, -0x2, -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, -0x2, -0x1, -0x1, -0x2, -0x2,
1228 -0x1, -0x1, -0x2, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, -0x1, -0x1, -0x1, -0x1, -0x2, -0x2, -0x1,
1229 -0x1, -0x1, -0x1, -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1, -0x1, -0x2, -0x2, -0x2, -0x1,
1230 -0x2, -0x1, -0x2, -0x1, -0x1, -0x2, -0x1, -0x2, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x1, -0x2,
1231 -0x2,
1232 });
1233
1234 try testArgs(@Vector(1, u2), .{
1235 0x2,
1236 });
1237 try testArgs(@Vector(2, u2), .{
1238 0x3, 0x1,
1239 });
1240 try testArgs(@Vector(3, u2), .{
1241 0x1, 0x3, 0x3,
1242 });
1243 try testArgs(@Vector(4, u2), .{
1244 0x0, 0x2, 0x2, 0x1,
1245 });
1246 try testArgs(@Vector(5, u2), .{
1247 0x1, 0x3, 0x3, 0x0, 0x0,
1248 });
1249 try testArgs(@Vector(7, u2), .{
1250 0x2, 0x3, 0x2, 0x2, 0x2, 0x3, 0x2,
1251 });
1252 try testArgs(@Vector(8, u2), .{
1253 0x2, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3,
1254 });
1255 try testArgs(@Vector(9, u2), .{
1256 0x3, 0x3, 0x2, 0x3, 0x0, 0x0, 0x0, 0x2, 0x3,
1257 });
1258 try testArgs(@Vector(15, u2), .{
1259 0x1, 0x2, 0x3, 0x3, 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x2, 0x1, 0x0, 0x1, 0x0,
1260 });
1261 try testArgs(@Vector(16, u2), .{
1262 0x1, 0x3, 0x0, 0x2, 0x2, 0x3, 0x1, 0x2, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x2,
1263 });
1264 try testArgs(@Vector(17, u2), .{
1265 0x1, 0x0, 0x3, 0x0, 0x3, 0x1, 0x3, 0x0, 0x2, 0x0, 0x3, 0x3, 0x1, 0x3, 0x1, 0x3,
1266 0x2,
1267 });
1268 try testArgs(@Vector(31, u2), .{
1269 0x2, 0x2, 0x1, 0x3, 0x3, 0x2, 0x2, 0x1, 0x3, 0x0, 0x2, 0x1, 0x2, 0x1, 0x3, 0x3,
1270 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x3, 0x0, 0x1, 0x3, 0x0, 0x0,
1271 });
1272 try testArgs(@Vector(32, u2), .{
1273 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
1274 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1,
1275 });
1276 try testArgs(@Vector(33, u2), .{
1277 0x3, 0x3, 0x3, 0x2, 0x2, 0x3, 0x3, 0x2, 0x3, 0x2, 0x2, 0x3, 0x2, 0x2, 0x3, 0x2,
1278 0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x2, 0x2, 0x3, 0x2, 0x3,
1279 0x2,
1280 });
1281 try testArgs(@Vector(63, u2), .{
1282 0x1, 0x1, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x0, 0x0, 0x1, 0x2, 0x0, 0x1, 0x0,
1283 0x0, 0x1, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, 0x2, 0x2, 0x3, 0x3, 0x3, 0x2, 0x1, 0x0,
1284 0x2, 0x1, 0x2, 0x1, 0x2, 0x2, 0x2, 0x1, 0x3, 0x3, 0x2, 0x3, 0x2, 0x1, 0x1, 0x3,
1285 0x1, 0x3, 0x3, 0x0, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x3, 0x3,
1286 });
1287 try testArgs(@Vector(64, u2), .{
1288 0x0, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0x0, 0x3, 0x0, 0x3, 0x1, 0x2, 0x0, 0x2, 0x2,
1289 0x3, 0x2, 0x0, 0x3, 0x0, 0x3, 0x0, 0x1, 0x1, 0x1, 0x0, 0x3, 0x1, 0x0, 0x3, 0x1,
1290 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x2, 0x3, 0x0, 0x1, 0x0, 0x2, 0x3, 0x3, 0x1, 0x2,
1291 0x2, 0x2, 0x0, 0x2, 0x3, 0x3, 0x0, 0x1, 0x2, 0x2, 0x1, 0x1, 0x0, 0x3, 0x3, 0x3,
1292 });
1293 try testArgs(@Vector(65, u2), .{
1294 0x3, 0x2, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x3,
1295 0x3, 0x3, 0x2, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x2, 0x2,
1296 0x2, 0x2, 0x2, 0x3, 0x3, 0x2, 0x3, 0x3, 0x2, 0x3, 0x3, 0x2, 0x3, 0x2, 0x2, 0x3,
1297 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x2, 0x2, 0x3, 0x3,
1298 0x3,
1299 });
1300 try testArgs(@Vector(127, u2), .{
1301 0x2, 0x2, 0x2, 0x3, 0x2, 0x3, 0x3, 0x2, 0x3, 0x2, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2,
1302 0x2, 0x3, 0x2, 0x3, 0x2, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3,
1303 0x3, 0x2, 0x2, 0x3, 0x2, 0x2, 0x3, 0x3, 0x2, 0x2, 0x2, 0x3, 0x3, 0x2, 0x2, 0x2,
1304 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x2, 0x2, 0x3, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3,
1305 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x3, 0x2,
1306 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x3,
1307 0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 0x2,
1308 0x3, 0x3, 0x2, 0x3, 0x2, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2,
1309 });
1310 try testArgs(@Vector(128, u2), .{
1311 0x3, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x0, 0x3, 0x2, 0x3, 0x1, 0x1, 0x3, 0x3, 0x3,
1312 0x2, 0x0, 0x0, 0x3, 0x2, 0x1, 0x1, 0x2, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x2, 0x1,
1313 0x0, 0x3, 0x1, 0x2, 0x3, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x1,
1314 0x3, 0x0, 0x0, 0x3, 0x2, 0x1, 0x3, 0x1, 0x0, 0x0, 0x3, 0x2, 0x0, 0x2, 0x1, 0x0,
1315 0x2, 0x0, 0x2, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x1, 0x3, 0x3,
1316 0x1, 0x1, 0x2, 0x3, 0x3, 0x3, 0x3, 0x0, 0x1, 0x2, 0x1, 0x2, 0x1, 0x3, 0x0, 0x1,
1317 0x1, 0x1, 0x0, 0x1, 0x3, 0x3, 0x3, 0x1, 0x1, 0x2, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1,
1318 0x3, 0x1, 0x1, 0x2, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x3, 0x3, 0x1, 0x0, 0x3, 0x1,
1319 });
1320 try testArgs(@Vector(129, u2), .{
1321 0x2, 0x0, 0x0, 0x0, 0x2, 0x1, 0x3, 0x1, 0x1, 0x2, 0x0, 0x1, 0x2, 0x2, 0x0, 0x1,
1322 0x1, 0x0, 0x0, 0x3, 0x3, 0x3, 0x0, 0x3, 0x3, 0x1, 0x3, 0x0, 0x0, 0x1, 0x2, 0x3,
1323 0x1, 0x3, 0x2, 0x2, 0x3, 0x0, 0x2, 0x1, 0x2, 0x3, 0x3, 0x3, 0x1, 0x1, 0x1, 0x2,
1324 0x0, 0x2, 0x2, 0x2, 0x0, 0x2, 0x3, 0x0, 0x0, 0x2, 0x1, 0x0, 0x2, 0x0, 0x0, 0x0,
1325 0x0, 0x0, 0x0, 0x3, 0x2, 0x3, 0x2, 0x1, 0x3, 0x2, 0x3, 0x0, 0x2, 0x0, 0x0, 0x3,
1326 0x1, 0x0, 0x3, 0x2, 0x3, 0x0, 0x0, 0x2, 0x3, 0x0, 0x3, 0x0, 0x0, 0x2, 0x1, 0x1,
1327 0x2, 0x3, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x0, 0x2, 0x1, 0x2, 0x2, 0x0,
1328 0x3, 0x3, 0x3, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x3, 0x3, 0x1, 0x1, 0x3, 0x1,
1329 0x0,
1330 });
8431331
844 try testArgs(@Vector(3, i2), .{ -1 << 1, -1, 0 });1332 try testArgs(@Vector(1, i3), .{
845 try testArgs(@Vector(3, u2), .{ 0, 1, 1 << 1 });1333 -0x3,
1334 });
1335 try testArgs(@Vector(2, i3), .{
1336 -0x4, -0x3,
1337 });
1338 try testArgs(@Vector(3, i3), .{
1339 0x1, -0x1, 0x3,
1340 });
1341 try testArgs(@Vector(4, i3), .{
1342 -0x3, 0x0, 0x2, 0x3,
1343 });
1344 try testArgs(@Vector(5, i3), .{
1345 -0x1, -0x1, -0x2, 0x3, 0x0,
1346 });
1347 try testArgs(@Vector(7, i3), .{
1348 0x2, 0x2, -0x4, -0x4, 0x1, 0x0, 0x1,
1349 });
1350 try testArgs(@Vector(8, i3), .{
1351 0x1, 0x2, -0x4, -0x3, 0x1, 0x0, -0x2, -0x1,
1352 });
1353 try testArgs(@Vector(9, i3), .{
1354 0x0, -0x1, 0x3, -0x2, 0x1, -0x3, -0x3, -0x2, -0x1,
1355 });
1356 try testArgs(@Vector(15, i3), .{
1357 -0x1, -0x3, -0x4, -0x3, -0x1, -0x3, -0x3, -0x4, -0x1, -0x2, -0x1, -0x1, -0x2, -0x2, -0x2,
1358 });
1359 try testArgs(@Vector(16, i3), .{
1360 0x1, -0x3, 0x3, -0x3, 0x3, -0x3, 0x3, 0x1, 0x1, -0x3, -0x3, -0x1, 0x1, 0x3, 0x3, -0x3,
1361 });
1362 try testArgs(@Vector(17, i3), .{
1363 0x2, -0x4, -0x2, 0x0, 0x2, -0x2, -0x2, 0x0, 0x2, -0x2, -0x4, 0x0, -0x4, -0x2, 0x2, -0x2,
1364 -0x4,
1365 });
1366 try testArgs(@Vector(31, i3), .{
1367 -0x4, -0x4, 0x2, 0x0, -0x4, 0x0, 0x2, -0x2, -0x2, -0x4, -0x2, 0x0, -0x4, 0x0, -0x4, 0x0,
1368 0x2, -0x4, 0x0, -0x2, -0x4, -0x4, -0x4, -0x4, 0x0, -0x4, -0x2, 0x0, -0x2, -0x4, 0x0,
1369 });
1370 try testArgs(@Vector(32, i3), .{
1371 -0x1, 0x3, 0x3, 0x3, 0x0, -0x2, 0x0, 0x1, 0x1, -0x1, -0x2, -0x2, 0x3, 0x2, 0x1, -0x1,
1372 0x3, -0x3, 0x1, -0x4, 0x3, 0x1, -0x2, -0x1, 0x2, 0x1, 0x0, 0x3, 0x1, -0x4, -0x1, 0x0,
1373 });
1374 try testArgs(@Vector(33, i3), .{
1375 -0x2, 0x0, 0x0, 0x2, -0x4, -0x2, -0x4, 0x2, 0x2, 0x2, 0x0, -0x4, 0x0, 0x2, 0x2, -0x4,
1376 -0x2, -0x2, -0x4, 0x0, 0x2, 0x0, 0x0, -0x2, 0x2, -0x4, -0x4, -0x2, -0x2, 0x0, -0x2, -0x2,
1377 0x2,
1378 });
1379 try testArgs(@Vector(63, i3), .{
1380 -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x2, 0x2, 0x3, -0x1, 0x2, -0x1, 0x3, -0x1, -0x1, 0x3,
1381 -0x2, -0x1, 0x2, 0x3, 0x2, -0x2, -0x2, 0x3, -0x2, -0x2, 0x3, -0x1, 0x3, -0x1, -0x1, -0x1,
1382 -0x2, 0x2, -0x1, 0x3, 0x3, 0x3, -0x2, 0x3, 0x2, -0x2, 0x3, -0x1, 0x3, 0x3, -0x2, 0x3,
1383 -0x1, 0x2, 0x3, -0x2, -0x1, -0x2, -0x2, -0x1, -0x1, 0x3, 0x2, 0x3, 0x2, -0x2, -0x1,
1384 });
1385 try testArgs(@Vector(64, i3), .{
1386 -0x2, -0x4, 0x1, 0x2, -0x2, 0x3, -0x3, -0x3, 0x1, 0x3, 0x2, 0x2, -0x3, 0x3, 0x2, -0x2,
1387 0x0, -0x4, -0x4, -0x3, -0x3, 0x0, -0x1, 0x0, 0x0, 0x2, 0x1, 0x1, 0x1, 0x3, 0x0, 0x2,
1388 -0x3, -0x2, 0x3, 0x3, -0x3, -0x1, -0x1, 0x3, 0x0, 0x3, 0x2, 0x0, -0x2, 0x0, -0x4, -0x4,
1389 0x2, 0x2, 0x0, 0x0, 0x3, -0x1, 0x0, -0x3, -0x2, -0x1, 0x1, 0x1, -0x4, -0x4, -0x3, 0x1,
1390 });
1391 try testArgs(@Vector(65, i3), .{
1392 0x0, 0x2, 0x0, 0x3, 0x3, 0x2, 0x0, 0x2, 0x3, 0x3, 0x1, 0x3, 0x1, 0x3, 0x2, 0x0,
1393 0x0, 0x1, 0x0, 0x2, 0x2, 0x3, 0x2, 0x2, 0x0, 0x1, 0x0, 0x2, 0x1, 0x1, 0x3, 0x2,
1394 0x0, 0x1, 0x0, 0x1, 0x2, 0x1, 0x3, 0x3, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x3, 0x2,
1395 0x2, 0x0, 0x3, 0x1, 0x2, 0x2, 0x0, 0x1, 0x3, 0x3, 0x3, 0x0, 0x3, 0x3, 0x3, 0x1,
1396 0x0,
1397 });
1398 try testArgs(@Vector(127, i3), .{
1399 0x1, 0x3, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x1, 0x2, 0x2, 0x3, 0x3, 0x2, 0x1,
1400 0x1, 0x0, 0x2, 0x1, 0x3, 0x3, 0x3, 0x0, 0x0, 0x0, 0x1, 0x2, 0x0, 0x0, 0x3, 0x3,
1401 0x2, 0x3, 0x1, 0x1, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x0, 0x3, 0x1, 0x3, 0x3, 0x3,
1402 0x3, 0x1, 0x2, 0x0, 0x2, 0x1, 0x0, 0x1, 0x1, 0x2, 0x3, 0x1, 0x2, 0x1, 0x3, 0x2,
1403 0x2, 0x3, 0x1, 0x0, 0x1, 0x3, 0x0, 0x0, 0x3, 0x1, 0x0, 0x2, 0x1, 0x3, 0x0, 0x2,
1404 0x3, 0x1, 0x1, 0x1, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x2, 0x2,
1405 0x0, 0x1, 0x1, 0x3, 0x2, 0x3, 0x1, 0x1, 0x3, 0x0, 0x2, 0x2, 0x0, 0x2, 0x3, 0x3,
1406 0x2, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, 0x0, 0x3, 0x3, 0x0, 0x0, 0x1, 0x0, 0x1,
1407 });
1408 try testArgs(@Vector(128, i3), .{
1409 0x3, -0x2, -0x1, -0x2, 0x2, 0x0, -0x1, 0x2, -0x3, -0x1, 0x2, 0x0, 0x0, 0x0, 0x0, -0x1,
1410 -0x3, 0x3, -0x3, 0x0, -0x4, -0x4, 0x0, -0x1, 0x1, 0x2, 0x3, -0x2, -0x3, 0x3, -0x3, 0x2,
1411 -0x2, 0x1, -0x3, 0x1, -0x4, -0x3, -0x4, -0x2, -0x3, 0x2, 0x0, -0x1, 0x3, 0x1, 0x1, -0x1,
1412 -0x4, 0x2, -0x4, 0x0, -0x3, -0x2, -0x1, -0x4, 0x2, -0x4, 0x2, 0x2, 0x0, 0x3, -0x4, 0x2,
1413 -0x4, -0x3, 0x0, -0x3, 0x3, -0x1, 0x3, 0x3, -0x2, 0x3, -0x1, 0x0, 0x0, 0x1, 0x3, -0x3,
1414 -0x1, 0x1, 0x1, 0x2, 0x3, 0x3, 0x0, 0x3, 0x0, 0x1, -0x1, -0x3, -0x4, -0x3, 0x2, -0x4,
1415 0x2, 0x1, 0x2, -0x2, 0x2, 0x0, -0x3, -0x4, -0x3, -0x1, 0x1, 0x0, -0x4, -0x3, -0x1, -0x3,
1416 0x3, -0x3, 0x1, 0x3, -0x3, 0x2, -0x4, -0x3, 0x2, 0x2, -0x4, 0x3, -0x3, 0x0, 0x2, -0x4,
1417 });
1418 try testArgs(@Vector(129, i3), .{
1419 -0x3, -0x3, -0x4, -0x3, 0x1, -0x4, -0x4, -0x4, -0x4, -0x4, -0x3, 0x0, -0x3, 0x1, 0x1, -0x4,
1420 -0x3, 0x0, -0x4, 0x0, -0x3, 0x1, -0x4, 0x0, -0x4, 0x0, 0x1, -0x3, -0x4, -0x4, 0x1, 0x1,
1421 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, -0x3, -0x3, 0x1, 0x0, -0x3, -0x3, -0x4, 0x1, -0x4, -0x4,
1422 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, -0x4, -0x4, -0x4, 0x1, 0x0, -0x3, 0x0, -0x4, -0x3, -0x4,
1423 -0x3, -0x4, 0x0, -0x4, -0x4, 0x0, -0x4, 0x1, 0x0, 0x1, -0x3, 0x0, -0x3, -0x4, -0x3, -0x4,
1424 0x0, 0x1, -0x4, -0x4, 0x0, -0x4, 0x0, -0x3, -0x3, -0x3, -0x3, -0x3, -0x3, 0x1, 0x1, 0x0,
1425 -0x3, -0x3, -0x3, 0x1, -0x3, 0x0, 0x0, 0x0, 0x0, 0x0, -0x4, 0x0, -0x3, -0x3, 0x0, 0x1,
1426 0x1, -0x4, -0x4, -0x3, -0x3, 0x0, -0x4, 0x1, -0x3, -0x4, 0x0, 0x1, -0x3, -0x4, 0x1, 0x1,
1427 -0x4,
1428 });
8461429
847 try testArgs(@Vector(3, i3), .{ -1 << 2, -1, 0 });1430 try testArgs(@Vector(1, u3), .{
848 try testArgs(@Vector(3, u3), .{ 0, 1, 1 << 2 });1431 0x5,
1432 });
1433 try testArgs(@Vector(2, u3), .{
1434 0x4, 0x6,
1435 });
1436 try testArgs(@Vector(3, u3), .{
1437 0x4, 0x1, 0x1,
1438 });
1439 try testArgs(@Vector(4, u3), .{
1440 0x1, 0x4, 0x1, 0x5,
1441 });
1442 try testArgs(@Vector(5, u3), .{
1443 0x3, 0x4, 0x6, 0x4, 0x5,
1444 });
1445 try testArgs(@Vector(7, u3), .{
1446 0x1, 0x3, 0x1, 0x3, 0x7, 0x1, 0x1,
1447 });
1448 try testArgs(@Vector(8, u3), .{
1449 0x6, 0x0, 0x0, 0x4, 0x2, 0x4, 0x0, 0x6,
1450 });
1451 try testArgs(@Vector(9, u3), .{
1452 0x4, 0x4, 0x2, 0x2, 0x2, 0x2, 0x0, 0x6, 0x6,
1453 });
1454 try testArgs(@Vector(15, u3), .{
1455 0x7, 0x5, 0x4, 0x3, 0x6, 0x6, 0x6, 0x1, 0x5, 0x5, 0x6, 0x4, 0x2, 0x3, 0x0,
1456 });
1457 try testArgs(@Vector(16, u3), .{
1458 0x7, 0x6, 0x2, 0x7, 0x2, 0x7, 0x7, 0x2, 0x6, 0x2, 0x3, 0x6, 0x3, 0x2, 0x3, 0x7,
1459 });
1460 try testArgs(@Vector(17, u3), .{
1461 0x4, 0x2, 0x2, 0x0, 0x2, 0x0, 0x4, 0x4, 0x6, 0x2, 0x2, 0x6, 0x0, 0x0, 0x0, 0x2,
1462 0x2,
1463 });
1464 try testArgs(@Vector(31, u3), .{
1465 0x3, 0x0, 0x5, 0x3, 0x3, 0x5, 0x2, 0x3, 0x3, 0x6, 0x1, 0x3, 0x5, 0x7, 0x6, 0x6,
1466 0x6, 0x6, 0x0, 0x6, 0x4, 0x5, 0x3, 0x3, 0x3, 0x3, 0x0, 0x2, 0x7, 0x0, 0x0,
1467 });
1468 try testArgs(@Vector(32, u3), .{
1469 0x7, 0x1, 0x3, 0x1, 0x7, 0x1, 0x5, 0x1, 0x1, 0x5, 0x5, 0x5, 0x1, 0x1, 0x5, 0x1,
1470 0x3, 0x1, 0x3, 0x1, 0x7, 0x5, 0x1, 0x5, 0x1, 0x3, 0x7, 0x5, 0x3, 0x5, 0x5, 0x5,
1471 });
1472 try testArgs(@Vector(33, u3), .{
1473 0x3, 0x2, 0x4, 0x2, 0x7, 0x2, 0x1, 0x5, 0x6, 0x0, 0x0, 0x3, 0x0, 0x6, 0x2, 0x5,
1474 0x2, 0x4, 0x1, 0x4, 0x4, 0x1, 0x0, 0x7, 0x7, 0x2, 0x1, 0x5, 0x4, 0x2, 0x1, 0x0,
1475 0x3,
1476 });
1477 try testArgs(@Vector(63, u3), .{
1478 0x0, 0x6, 0x5, 0x1, 0x4, 0x7, 0x5, 0x4, 0x5, 0x3, 0x0, 0x5, 0x5, 0x7, 0x4, 0x5,
1479 0x0, 0x0, 0x2, 0x7, 0x2, 0x6, 0x0, 0x1, 0x4, 0x7, 0x4, 0x5, 0x5, 0x2, 0x2, 0x0,
1480 0x5, 0x4, 0x6, 0x0, 0x1, 0x2, 0x2, 0x1, 0x3, 0x5, 0x0, 0x2, 0x3, 0x5, 0x5, 0x2,
1481 0x3, 0x6, 0x3, 0x7, 0x1, 0x5, 0x5, 0x2, 0x1, 0x2, 0x7, 0x6, 0x2, 0x4, 0x5,
1482 });
1483 try testArgs(@Vector(64, u3), .{
1484 0x2, 0x1, 0x3, 0x3, 0x1, 0x1, 0x3, 0x1, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x2,
1485 0x0, 0x0, 0x0, 0x3, 0x3, 0x1, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0x3,
1486 0x2, 0x3, 0x1, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x3, 0x2, 0x0, 0x3, 0x2,
1487 0x3, 0x2, 0x1, 0x1, 0x2, 0x2, 0x0, 0x2, 0x2, 0x1, 0x3, 0x1, 0x3, 0x3, 0x3, 0x3,
1488 });
1489 try testArgs(@Vector(65, u3), .{
1490 0x4, 0x5, 0x6, 0x6, 0x7, 0x4, 0x4, 0x4, 0x6, 0x5, 0x6, 0x5, 0x7, 0x4, 0x6, 0x5,
1491 0x4, 0x6, 0x4, 0x7, 0x4, 0x4, 0x4, 0x4, 0x7, 0x4, 0x7, 0x6, 0x6, 0x4, 0x5, 0x6,
1492 0x7, 0x7, 0x4, 0x6, 0x6, 0x4, 0x5, 0x6, 0x4, 0x5, 0x7, 0x7, 0x7, 0x7, 0x5, 0x5,
1493 0x6, 0x6, 0x7, 0x5, 0x6, 0x4, 0x5, 0x6, 0x5, 0x6, 0x4, 0x6, 0x4, 0x6, 0x6, 0x5,
1494 0x5,
1495 });
1496 try testArgs(@Vector(127, u3), .{
1497 0x0, 0x5, 0x0, 0x0, 0x5, 0x6, 0x5, 0x1, 0x3, 0x3, 0x3, 0x2, 0x5, 0x5, 0x3, 0x7,
1498 0x6, 0x4, 0x5, 0x4, 0x3, 0x6, 0x1, 0x5, 0x5, 0x4, 0x2, 0x2, 0x1, 0x5, 0x0, 0x2,
1499 0x7, 0x3, 0x0, 0x7, 0x0, 0x7, 0x2, 0x2, 0x5, 0x5, 0x3, 0x4, 0x4, 0x0, 0x5, 0x1,
1500 0x7, 0x2, 0x6, 0x4, 0x7, 0x3, 0x5, 0x6, 0x3, 0x5, 0x5, 0x6, 0x4, 0x3, 0x4, 0x1,
1501 0x1, 0x4, 0x6, 0x7, 0x5, 0x0, 0x2, 0x0, 0x1, 0x3, 0x2, 0x2, 0x5, 0x3, 0x0, 0x1,
1502 0x5, 0x4, 0x2, 0x0, 0x0, 0x4, 0x3, 0x2, 0x7, 0x6, 0x6, 0x7, 0x1, 0x1, 0x5, 0x1,
1503 0x6, 0x4, 0x1, 0x7, 0x0, 0x7, 0x1, 0x1, 0x3, 0x6, 0x5, 0x1, 0x0, 0x5, 0x4, 0x0,
1504 0x7, 0x7, 0x7, 0x2, 0x0, 0x1, 0x6, 0x0, 0x4, 0x2, 0x3, 0x7, 0x7, 0x2, 0x2,
1505 });
1506 try testArgs(@Vector(128, u3), .{
1507 0x2, 0x4, 0x4, 0x6, 0x2, 0x6, 0x6, 0x2, 0x2, 0x0, 0x6, 0x6, 0x0, 0x0, 0x2, 0x4,
1508 0x0, 0x0, 0x4, 0x6, 0x2, 0x0, 0x6, 0x6, 0x0, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4, 0x6,
1509 0x6, 0x6, 0x4, 0x4, 0x2, 0x4, 0x4, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x4, 0x0, 0x6,
1510 0x2, 0x6, 0x0, 0x0, 0x2, 0x4, 0x2, 0x4, 0x6, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0,
1511 0x0, 0x2, 0x4, 0x4, 0x2, 0x6, 0x0, 0x4, 0x6, 0x6, 0x6, 0x2, 0x4, 0x6, 0x4, 0x6,
1512 0x0, 0x4, 0x6, 0x6, 0x2, 0x0, 0x2, 0x2, 0x6, 0x4, 0x6, 0x6, 0x2, 0x0, 0x6, 0x4,
1513 0x2, 0x2, 0x2, 0x0, 0x2, 0x6, 0x6, 0x4, 0x4, 0x2, 0x6, 0x0, 0x2, 0x4, 0x2, 0x0,
1514 0x2, 0x2, 0x6, 0x4, 0x4, 0x0, 0x6, 0x4, 0x4, 0x2, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6,
1515 });
1516 try testArgs(@Vector(129, u3), .{
1517 0x4, 0x7, 0x3, 0x7, 0x5, 0x1, 0x7, 0x3, 0x7, 0x6, 0x1, 0x3, 0x2, 0x0, 0x1, 0x1,
1518 0x0, 0x4, 0x6, 0x5, 0x2, 0x5, 0x6, 0x7, 0x5, 0x2, 0x4, 0x7, 0x4, 0x3, 0x6, 0x4,
1519 0x1, 0x3, 0x0, 0x4, 0x5, 0x0, 0x2, 0x7, 0x5, 0x0, 0x1, 0x4, 0x4, 0x3, 0x0, 0x3,
1520 0x4, 0x4, 0x6, 0x2, 0x0, 0x5, 0x6, 0x5, 0x6, 0x7, 0x7, 0x1, 0x2, 0x5, 0x7, 0x4,
1521 0x5, 0x5, 0x2, 0x7, 0x5, 0x0, 0x5, 0x7, 0x0, 0x7, 0x0, 0x3, 0x5, 0x1, 0x0, 0x6,
1522 0x6, 0x4, 0x1, 0x7, 0x6, 0x7, 0x0, 0x0, 0x7, 0x6, 0x1, 0x1, 0x2, 0x4, 0x0, 0x1,
1523 0x7, 0x3, 0x3, 0x5, 0x6, 0x6, 0x6, 0x6, 0x2, 0x3, 0x4, 0x0, 0x4, 0x5, 0x1, 0x4,
1524 0x1, 0x5, 0x1, 0x0, 0x3, 0x1, 0x4, 0x7, 0x5, 0x6, 0x2, 0x0, 0x7, 0x2, 0x7, 0x1,
1525 0x0,
1526 });
8491527
850 try testArgs(@Vector(3, i4), .{ -1 << 3, -1, 0 });
851 try testArgs(@Vector(1, i4), .{1528 try testArgs(@Vector(1, i4), .{
852 -0x2,1529 0x4,
853 });1530 });
854 try testArgs(@Vector(2, i4), .{1531 try testArgs(@Vector(2, i4), .{
855 -0x7, 0x4,1532 0x5, 0x1,
1533 });
1534 try testArgs(@Vector(3, i4), .{
1535 -0x8, 0x2, 0x0,
1536 });
1537 try testArgs(@Vector(4, i4), .{
1538 0x4, -0x7, -0x8, -0x7,
1539 });
1540 try testArgs(@Vector(5, i4), .{
1541 -0x3, -0x6, -0x5, -0x7, -0x7,
1542 });
1543 try testArgs(@Vector(7, i4), .{
1544 0x4, -0x3, 0x7, 0x2, -0x6, -0x7, 0x5,
1545 });
1546 try testArgs(@Vector(8, i4), .{
1547 -0x5, -0x6, 0x0, 0x3, -0x8, -0x5, 0x3, 0x3,
1548 });
1549 try testArgs(@Vector(9, i4), .{
1550 0x5, 0x1, 0x5, -0x1, 0x3, -0x3, -0x3, 0x1, 0x1,
1551 });
1552 try testArgs(@Vector(15, i4), .{
1553 0x7, -0x7, 0x0, 0x0, 0x0, -0x8, 0x5, -0x1, 0x4, -0x5, -0x3, 0x6, -0x7, -0x8, -0x1,
1554 });
1555 try testArgs(@Vector(16, i4), .{
1556 0x7, -0x1, 0x4, 0x3, -0x5, -0x4, -0x1, -0x8, -0x7, 0x6, -0x6, 0x6, -0x6, 0x6, -0x3, 0x7,
1557 });
1558 try testArgs(@Vector(17, i4), .{
1559 0x4, 0x2, 0x6, 0x3, 0x6, 0x2, 0x1, 0x5, 0x3, 0x4, 0x5, 0x2, 0x0, 0x0, 0x1, 0x5,
1560 0x0,
1561 });
1562 try testArgs(@Vector(31, i4), .{
1563 0x6, 0x4, 0x7, -0x8, 0x7, -0x8, 0x5, 0x7, -0x1, -0x5, -0x6, -0x3, -0x4, 0x1, 0x5, 0x3,
1564 0x0, 0x5, -0x6, 0x0, -0x1, -0x8, 0x1, 0x7, 0x2, 0x3, -0x3, 0x5, -0x2, 0x2, -0x6,
1565 });
1566 try testArgs(@Vector(32, i4), .{
1567 -0x3, -0x4, -0x4, -0x8, 0x2, 0x3, -0x2, 0x4, -0x5, 0x7, 0x0, -0x7, -0x3, 0x2, 0x3, 0x3,
1568 0x5, -0x1, -0x8, 0x0, -0x3, -0x1, -0x8, -0x6, -0x5, -0x4, -0x3, 0x2, 0x4, 0x3, 0x3, 0x2,
1569 });
1570 try testArgs(@Vector(33, i4), .{
1571 0x5, 0x6, 0x7, -0x1, -0x8, 0x5, 0x1, 0x7, 0x5, -0x2, 0x3, -0x1, 0x0, 0x0, -0x1, -0x2,
1572 -0x3, 0x3, 0x0, -0x2, 0x0, 0x7, -0x7, 0x1, -0x8, 0x5, -0x6, -0x3, -0x3, 0x6, 0x0, 0x6,
1573 -0x3,
1574 });
1575 try testArgs(@Vector(63, i4), .{
1576 -0x7, -0x8, 0x2, 0x6, 0x6, -0x6, -0x8, -0x7, 0x7, -0x3, -0x5, -0x1, -0x8, -0x4, 0x1, -0x6,
1577 -0x4, -0x1, 0x2, -0x3, 0x4, 0x3, 0x0, -0x3, 0x7, 0x1, -0x5, -0x4, 0x2, 0x5, 0x7, 0x5,
1578 -0x4, -0x2, 0x0, -0x2, 0x3, 0x2, 0x0, -0x1, -0x7, -0x2, -0x2, 0x6, 0x3, -0x6, -0x6, -0x5,
1579 0x4, -0x1, 0x3, 0x4, 0x7, -0x1, -0x5, -0x8, -0x5, -0x7, 0x3, 0x2, -0x6, -0x8, -0x3,
1580 });
1581 try testArgs(@Vector(64, i4), .{
1582 -0x6, -0x8, -0x3, 0x5, -0x7, -0x3, -0x8, -0x6, 0x3, 0x6, 0x5, 0x7, -0x7, 0x5, 0x4, -0x8,
1583 -0x4, -0x2, -0x1, -0x4, 0x3, 0x4, 0x3, -0x8, -0x5, 0x6, 0x7, 0x3, 0x6, -0x1, 0x4, 0x2,
1584 -0x6, 0x4, -0x1, 0x2, -0x1, -0x2, -0x4, 0x4, -0x2, -0x2, -0x3, 0x1, 0x0, 0x2, -0x7, -0x8,
1585 0x1, -0x7, -0x5, 0x6, 0x2, 0x7, -0x6, 0x7, -0x5, 0x0, -0x6, 0x2, 0x6, 0x4, -0x3, -0x6,
1586 });
1587 try testArgs(@Vector(65, i4), .{
1588 0x4, -0x3, -0x1, 0x0, -0x1, -0x7, 0x4, -0x7, -0x3, -0x1, -0x5, 0x2, -0x3, 0x5, -0x8, 0x7,
1589 -0x7, 0x0, 0x2, -0x7, 0x4, -0x5, -0x4, 0x7, -0x2, 0x6, 0x3, 0x4, -0x1, 0x2, 0x5, 0x7,
1590 -0x2, 0x7, 0x2, -0x1, 0x2, 0x2, 0x2, 0x7, -0x2, -0x2, -0x5, 0x4, 0x7, 0x0, 0x3, 0x1,
1591 0x0, -0x5, -0x1, 0x6, 0x2, -0x3, -0x7, -0x4, 0x2, -0x5, 0x4, -0x7, 0x2, -0x4, 0x2, -0x1,
1592 -0x2,
1593 });
1594 try testArgs(@Vector(127, i4), .{
1595 -0x2, 0x2, 0x6, 0x3, 0x1, -0x2, 0x1, 0x1, -0x4, 0x5, -0x5, 0x7, 0x7, -0x5, -0x5, -0x6,
1596 0x0, -0x8, 0x4, 0x7, 0x4, -0x1, 0x3, 0x7, -0x5, 0x7, -0x8, 0x6, -0x7, -0x6, 0x3, -0x6,
1597 -0x4, -0x8, 0x1, -0x7, 0x7, 0x2, -0x2, 0x5, 0x1, -0x8, -0x3, -0x5, -0x8, 0x0, -0x4, 0x0,
1598 -0x8, 0x5, -0x8, 0x0, 0x4, -0x4, -0x4, -0x5, 0x2, -0x8, -0x3, -0x1, -0x7, 0x0, 0x0, -0x4,
1599 -0x5, 0x5, -0x1, -0x7, -0x7, -0x8, -0x2, 0x7, 0x4, 0x6, 0x4, 0x5, -0x1, 0x3, -0x4, 0x7,
1600 -0x1, -0x1, 0x3, 0x1, 0x4, 0x1, -0x3, 0x2, -0x2, -0x6, -0x4, 0x5, -0x7, -0x2, 0x0, 0x5,
1601 -0x4, 0x4, -0x7, -0x7, -0x3, 0x4, -0x3, -0x3, -0x7, -0x8, 0x1, 0x6, 0x5, -0x3, -0x4, 0x7,
1602 0x3, 0x5, 0x0, -0x7, -0x1, -0x7, 0x5, 0x1, -0x4, -0x6, 0x6, 0x6, -0x1, 0x1, 0x6,
1603 });
1604 try testArgs(@Vector(128, i4), .{
1605 -0x2, 0x3, -0x1, -0x6, 0x1, -0x7, 0x4, 0x4, 0x2, -0x5, 0x0, 0x4, 0x3, 0x2, 0x0, -0x7,
1606 0x4, -0x5, -0x6, -0x8, 0x7, -0x8, 0x5, 0x3, 0x2, 0x5, 0x3, -0x8, -0x8, -0x8, 0x1, 0x4,
1607 -0x3, -0x5, 0x6, 0x2, -0x4, -0x2, 0x3, -0x1, 0x1, -0x2, -0x7, -0x8, 0x5, 0x5, 0x3, -0x6,
1608 0x3, 0x5, 0x7, -0x7, 0x3, 0x6, 0x5, 0x2, 0x2, -0x3, 0x0, -0x5, 0x7, -0x8, 0x1, 0x1,
1609 0x6, 0x3, 0x1, 0x5, -0x7, 0x1, -0x5, -0x1, 0x4, -0x2, 0x1, 0x3, 0x4, -0x3, 0x5, 0x1,
1610 -0x2, -0x6, -0x5, -0x1, -0x5, 0x6, -0x5, 0x0, 0x0, -0x8, -0x8, 0x3, -0x5, 0x3, -0x1, -0x7,
1611 -0x2, 0x0, 0x3, -0x3, -0x6, -0x5, -0x2, -0x5, 0x0, -0x1, 0x6, -0x6, 0x4, 0x5, 0x6, -0x3,
1612 -0x7, -0x4, 0x2, 0x5, 0x0, -0x5, 0x7, 0x6, 0x2, 0x6, 0x6, -0x2, 0x7, -0x2, 0x0, 0x3,
1613 });
1614 try testArgs(@Vector(129, i4), .{
1615 0x3, 0x1, 0x3, 0x1, 0x2, 0x0, -0x5, -0x6, -0x7, 0x2, -0x6, 0x2, 0x0, -0x8, -0x6, -0x6,
1616 0x0, 0x3, 0x2, 0x3, -0x6, 0x2, -0x6, -0x8, -0x6, 0x2, -0x6, -0x7, 0x0, 0x3, -0x7, 0x3,
1617 -0x5, -0x6, 0x0, 0x1, 0x0, 0x3, 0x2, -0x5, -0x6, 0x3, 0x2, 0x0, -0x5, 0x0, 0x0, -0x7,
1618 -0x6, -0x6, -0x5, -0x8, 0x0, -0x7, 0x3, 0x2, -0x5, -0x6, -0x8, 0x3, -0x8, 0x0, -0x5, 0x0,
1619 -0x5, -0x5, 0x3, -0x6, 0x3, 0x1, 0x3, -0x5, 0x1, -0x8, 0x0, -0x6, -0x6, -0x8, -0x5, 0x0,
1620 0x2, 0x0, 0x0, 0x2, -0x7, 0x3, -0x5, -0x6, -0x5, 0x3, 0x1, 0x0, -0x7, -0x5, -0x5, 0x3,
1621 0x0, -0x5, 0x0, 0x0, 0x3, 0x2, 0x3, 0x3, -0x7, 0x2, 0x0, -0x6, -0x8, 0x2, -0x6, -0x6,
1622 0x2, 0x0, 0x3, -0x5, 0x1, -0x7, 0x2, 0x0, -0x7, 0x2, -0x6, -0x6, 0x0, 0x2, 0x2, 0x1,
1623 -0x8,
1624 });
1625
1626 try testArgs(@Vector(1, u4), .{
1627 0xb,
1628 });
1629 try testArgs(@Vector(2, u4), .{
1630 0x0, 0xf,
1631 });
1632 try testArgs(@Vector(3, u4), .{
1633 0x9, 0xa, 0xe,
1634 });
1635 try testArgs(@Vector(4, u4), .{
1636 0x0, 0x9, 0x9, 0x9,
1637 });
1638 try testArgs(@Vector(5, u4), .{
1639 0xe, 0x8, 0x9, 0xd, 0x9,
1640 });
1641 try testArgs(@Vector(7, u4), .{
1642 0x5, 0xc, 0x1, 0x4, 0x1, 0xe, 0xd,
1643 });
1644 try testArgs(@Vector(8, u4), .{
1645 0x4, 0x0, 0x0, 0x7, 0x2, 0x1, 0x2, 0x3,
1646 });
1647 try testArgs(@Vector(9, u4), .{
1648 0x9, 0x4, 0x8, 0x9, 0xc, 0x9, 0x9, 0xc, 0xd,
1649 });
1650 try testArgs(@Vector(15, u4), .{
1651 0x8, 0x5, 0xc, 0x4, 0x7, 0x0, 0x0, 0x7, 0x6, 0xc, 0x5, 0x9, 0xa, 0x0, 0x2,
1652 });
1653 try testArgs(@Vector(16, u4), .{
1654 0xf, 0xf, 0x7, 0xf, 0x7, 0xb, 0x2, 0x6, 0x6, 0xf, 0x2, 0xb, 0x3, 0xa, 0xa, 0x2,
1655 });
1656 try testArgs(@Vector(17, u4), .{
1657 0x0, 0x6, 0x1, 0x7, 0x7, 0x6, 0x0, 0x6, 0x6, 0x7, 0x6, 0x1, 0x5, 0x7, 0x7, 0x3,
1658 0x1,
1659 });
1660 try testArgs(@Vector(31, u4), .{
1661 0x3, 0x1, 0xa, 0xa, 0x1, 0x3, 0xa, 0xb, 0xb, 0x1, 0x1, 0xa, 0x8, 0x3, 0x0, 0x9,
1662 0x8, 0x9, 0x0, 0x8, 0x2, 0x0, 0x2, 0xb, 0x0, 0x0, 0x1, 0x1, 0x0, 0x8, 0x3,
1663 });
1664 try testArgs(@Vector(32, u4), .{
1665 0x8, 0x7, 0x3, 0x9, 0xd, 0x0, 0x8, 0xe, 0xb, 0x8, 0x4, 0x4, 0x4, 0x8, 0x4, 0x2,
1666 0xd, 0x9, 0x1, 0xe, 0x1, 0xc, 0x0, 0x9, 0xa, 0x5, 0x1, 0x6, 0x9, 0x1, 0xd, 0xe,
1667 });
1668 try testArgs(@Vector(33, u4), .{
1669 0x5, 0xd, 0x0, 0x7, 0x8, 0x0, 0xd, 0x5, 0x3, 0x0, 0xe, 0xf, 0xd, 0xd, 0x6, 0xd,
1670 0x4, 0x4, 0x4, 0x0, 0x4, 0x1, 0x2, 0x0, 0x4, 0x2, 0x2, 0x9, 0x3, 0x7, 0xf, 0xb,
1671 0xd,
1672 });
1673 try testArgs(@Vector(63, u4), .{
1674 0x2, 0x2, 0x8, 0x7, 0x7, 0x3, 0xa, 0x0, 0x7, 0x7, 0xe, 0xb, 0xb, 0xe, 0x8, 0x8,
1675 0xe, 0x7, 0x7, 0x7, 0x1, 0xe, 0xb, 0x7, 0x8, 0x2, 0x7, 0x9, 0xd, 0x0, 0x2, 0x1,
1676 0xb, 0xc, 0xb, 0xa, 0x8, 0xb, 0x5, 0x3, 0x2, 0xf, 0x6, 0x2, 0x7, 0x7, 0x4, 0x3,
1677 0x2, 0xd, 0xb, 0x6, 0x6, 0x2, 0xd, 0x4, 0x4, 0x9, 0x9, 0x4, 0x5, 0x8, 0x2,
1678 });
1679 try testArgs(@Vector(64, u4), .{
1680 0x2, 0x0, 0x1, 0xb, 0x1, 0x8, 0x2, 0xa, 0x3, 0x3, 0x1, 0x1, 0x8, 0xb, 0x3, 0x3,
1681 0x9, 0xa, 0x2, 0x2, 0x8, 0x8, 0x2, 0x3, 0xb, 0x3, 0x8, 0xa, 0x8, 0xa, 0x8, 0x8,
1682 0x2, 0x2, 0x1, 0x8, 0x1, 0x1, 0x9, 0xa, 0x0, 0x0, 0x0, 0x3, 0x8, 0xb, 0x2, 0x2,
1683 0xb, 0xb, 0xb, 0x0, 0xb, 0x2, 0x0, 0x2, 0x1, 0xb, 0xb, 0x1, 0xa, 0x9, 0xb, 0x0,
1684 });
1685 try testArgs(@Vector(65, u4), .{
1686 0xb, 0x2, 0xb, 0xf, 0xf, 0xe, 0x6, 0xa, 0xf, 0x7, 0x7, 0xf, 0xa, 0x7, 0x2, 0x3,
1687 0xb, 0x3, 0xe, 0x6, 0x7, 0xa, 0x6, 0x2, 0x6, 0xb, 0xe, 0xf, 0xe, 0xa, 0xf, 0xf,
1688 0xf, 0x2, 0x6, 0xb, 0xa, 0x7, 0xb, 0x7, 0xa, 0x2, 0xa, 0xe, 0xe, 0x3, 0xb, 0xa,
1689 0x3, 0x2, 0xe, 0x6, 0xf, 0x2, 0x6, 0xe, 0xf, 0xe, 0x7, 0x7, 0x3, 0xb, 0x2, 0x7,
1690 0x2,
1691 });
1692 try testArgs(@Vector(127, u4), .{
1693 0x3, 0x1, 0x6, 0xf, 0x2, 0x1, 0x2, 0x3, 0x3, 0x9, 0xe, 0x8, 0x4, 0xe, 0xd, 0x8,
1694 0x6, 0x4, 0xa, 0xe, 0xa, 0x6, 0xe, 0x5, 0x0, 0x8, 0x3, 0xd, 0x5, 0x9, 0x5, 0xd,
1695 0x7, 0x0, 0x9, 0xb, 0xc, 0xd, 0x3, 0x2, 0x9, 0x4, 0xb, 0xd, 0x5, 0xd, 0xb, 0x2,
1696 0xe, 0x0, 0x6, 0xf, 0x4, 0x4, 0x8, 0xf, 0xb, 0xe, 0xf, 0x9, 0x5, 0x7, 0x7, 0xb,
1697 0x4, 0xf, 0x5, 0x2, 0x3, 0x2, 0xd, 0x9, 0xd, 0x9, 0x6, 0xe, 0x9, 0x4, 0x1, 0xa,
1698 0x7, 0xb, 0xe, 0xd, 0x7, 0x7, 0xa, 0xa, 0x2, 0x9, 0x6, 0x7, 0x9, 0x6, 0x9, 0x9,
1699 0xd, 0x6, 0x0, 0x1, 0x1, 0x5, 0xf, 0xe, 0x4, 0x7, 0x3, 0x4, 0x7, 0xb, 0x7, 0xd,
1700 0x0, 0x8, 0xf, 0x5, 0x1, 0x7, 0xb, 0x7, 0x1, 0x3, 0x3, 0x0, 0xe, 0x0, 0x4,
1701 });
1702 try testArgs(@Vector(128, u4), .{
1703 0x0, 0xb, 0x9, 0x0, 0x6, 0xd, 0x9, 0x3, 0xd, 0xa, 0x4, 0xb, 0x8, 0x7, 0xc, 0xe,
1704 0x6, 0x9, 0xb, 0x5, 0xc, 0x8, 0xd, 0x8, 0xc, 0x3, 0x2, 0xd, 0x9, 0x9, 0x2, 0x7,
1705 0xa, 0x0, 0xf, 0x7, 0xd, 0x6, 0x0, 0x6, 0x8, 0x3, 0x3, 0x0, 0xa, 0x4, 0xf, 0x6,
1706 0x6, 0x6, 0x5, 0x8, 0x4, 0xe, 0x2, 0x3, 0x4, 0x7, 0x3, 0x5, 0xa, 0xc, 0x1, 0xf,
1707 0x0, 0xf, 0xd, 0x8, 0x2, 0xe, 0x0, 0xa, 0x9, 0x0, 0x0, 0xf, 0x3, 0x4, 0x3, 0xd,
1708 0x8, 0xd, 0xb, 0xd, 0x6, 0xc, 0xc, 0x9, 0x3, 0x5, 0xa, 0xe, 0x9, 0xf, 0x0, 0x9,
1709 0xa, 0xf, 0x4, 0xd, 0x4, 0xa, 0x3, 0xb, 0xe, 0x7, 0x8, 0x6, 0xc, 0x0, 0x3, 0xd,
1710 0xc, 0xc, 0x1, 0x5, 0x4, 0xc, 0xd, 0x9, 0xa, 0x7, 0xd, 0x2, 0x6, 0x3, 0x4, 0x2,
1711 });
1712 try testArgs(@Vector(129, u4), .{
1713 0xd, 0x2, 0xd, 0xd, 0xc, 0x7, 0x4, 0x1, 0xa, 0xc, 0xf, 0xe, 0xb, 0xc, 0xc, 0x8,
1714 0x0, 0x1, 0xf, 0x4, 0xb, 0x4, 0x7, 0x9, 0x9, 0x2, 0x7, 0xc, 0x4, 0xb, 0xd, 0xc,
1715 0x5, 0x5, 0xd, 0x9, 0x7, 0x2, 0x7, 0xa, 0x2, 0x4, 0x1, 0x3, 0x2, 0x4, 0x6, 0x8,
1716 0x9, 0xd, 0x9, 0x7, 0x1, 0x5, 0x5, 0x1, 0x3, 0x2, 0x4, 0x7, 0x3, 0xf, 0x2, 0xa,
1717 0x3, 0x5, 0xf, 0x4, 0x6, 0xd, 0xa, 0x1, 0xb, 0x3, 0xa, 0xd, 0x6, 0x0, 0x0, 0x7,
1718 0x0, 0xf, 0x0, 0xa, 0xf, 0x5, 0xc, 0x5, 0x5, 0x8, 0x8, 0x0, 0x5, 0x3, 0xf, 0x4,
1719 0xb, 0x7, 0x1, 0x0, 0x3, 0x6, 0x6, 0xd, 0xd, 0x5, 0xd, 0x4, 0x8, 0x9, 0x1, 0x8,
1720 0x7, 0x6, 0x4, 0x2, 0x7, 0x0, 0x6, 0x9, 0xb, 0x5, 0x6, 0x8, 0xd, 0xe, 0x5, 0x7,
1721 0x9,
1722 });
1723
1724 try testArgs(@Vector(1, i5), .{
1725 -0x07,
1726 });
1727 try testArgs(@Vector(2, i5), .{
1728 0x00, 0x09,
1729 });
1730 try testArgs(@Vector(3, i5), .{
1731 0x08, -0x04, 0x04,
1732 });
1733 try testArgs(@Vector(4, i5), .{
1734 0x07, 0x06, -0x0a, 0x01,
1735 });
1736 try testArgs(@Vector(5, i5), .{
1737 -0x06, -0x06, -0x03, -0x06, 0x0e,
1738 });
1739 try testArgs(@Vector(7, i5), .{
1740 0x08, -0x0c, 0x05, 0x08, 0x02, -0x05, 0x06,
1741 });
1742 try testArgs(@Vector(8, i5), .{
1743 0x0b, -0x07, 0x01, 0x0d, -0x0e, -0x10, 0x0e, -0x01,
1744 });
1745 try testArgs(@Vector(9, i5), .{
1746 -0x02, -0x0e, -0x05, -0x0d, -0x10, -0x01, -0x0b, -0x0e, -0x05,
1747 });
1748 try testArgs(@Vector(15, i5), .{
1749 -0x09, 0x07, 0x00, -0x10, 0x00, -0x0a, -0x09, 0x00, 0x02, -0x10, -0x0a, -0x0d, 0x00, 0x05, -0x0f,
1750 });
1751 try testArgs(@Vector(16, i5), .{
1752 0x0f, 0x07, 0x0d, -0x05, -0x0f, -0x07, -0x01, -0x0d, -0x0f, -0x0f, -0x07, 0x05, -0x09, -0x01, -0x0b, 0x0b,
1753 });
1754 try testArgs(@Vector(17, i5), .{
1755 0x07, -0x08, 0x0e, 0x0a, -0x0f, -0x0c, -0x10, -0x0e, 0x0c, -0x05, 0x04, 0x06, 0x00, 0x07, -0x10, -0x0e,
1756 0x0f,
1757 });
1758 try testArgs(@Vector(31, i5), .{
1759 0x01, 0x0d, -0x04, -0x0b, 0x08, -0x08, -0x08, 0x00, 0x08, -0x08, -0x0b, -0x07, -0x0c, -0x03, 0x0c, 0x05,
1760 -0x03, 0x08, -0x07, 0x09, 0x0c, 0x01, -0x10, 0x00, 0x09, -0x03, 0x09, 0x0d, 0x04, 0x09, 0x0c,
1761 });
1762 try testArgs(@Vector(32, i5), .{
1763 0x03, -0x0d, -0x0f, 0x01, -0x0f, -0x07, -0x03, -0x0f, 0x07, -0x06, 0x02, 0x01, 0x0f, -0x0c, -0x0f, -0x0a,
1764 -0x07, -0x06, -0x02, -0x08, 0x08, 0x05, -0x0f, 0x0b, -0x02, -0x0e, 0x07, 0x02, 0x07, -0x04, 0x0b, 0x0d,
1765 });
1766 try testArgs(@Vector(33, i5), .{
1767 -0x0e, -0x08, -0x02, -0x0e, -0x04, -0x02, -0x08, -0x10, 0x04, 0x0c, 0x02, -0x10, -0x02, 0x08, -0x0c, -0x06,
1768 -0x0a, -0x06, -0x10, -0x02, 0x02, -0x06, 0x0e, -0x10, 0x06, -0x08, 0x04, 0x06, -0x02, 0x00, 0x08, 0x08,
1769 -0x0e,
1770 });
1771 try testArgs(@Vector(63, i5), .{
1772 0x07, 0x05, -0x03, -0x01, 0x03, 0x0b, 0x01, -0x0d, 0x0b, -0x09, -0x03, 0x01, -0x01, -0x09, 0x05, -0x0b,
1773 -0x0d, 0x0d, 0x0f, -0x0b, 0x0b, -0x03, 0x05, -0x03, -0x0d, -0x07, 0x0b, 0x0f, 0x0d, -0x0b, -0x09, 0x03,
1774 0x05, -0x0b, 0x0f, 0x07, 0x0d, -0x09, 0x0d, -0x01, -0x09, 0x0f, -0x03, -0x01, -0x0d, -0x07, -0x01, 0x09,
1775 0x0f, -0x05, -0x03, -0x05, 0x0f, 0x01, -0x0d, -0x05, -0x0d, -0x0b, -0x0f, 0x05, 0x09, 0x07, -0x09,
1776 });
1777 try testArgs(@Vector(64, i5), .{
1778 -0x04, -0x03, 0x0f, -0x0f, -0x04, -0x10, 0x0c, -0x03, -0x0a, -0x06, 0x08, -0x0a, -0x0b, 0x0f, 0x07, 0x02,
1779 -0x0b, 0x09, -0x0b, 0x0b, -0x0e, -0x04, -0x08, 0x00, 0x0d, -0x0a, 0x01, 0x06, 0x0a, 0x05, 0x07, -0x0a,
1780 0x05, 0x09, -0x04, -0x08, -0x04, -0x02, -0x0e, 0x0d, 0x03, -0x09, -0x0e, -0x01, 0x0f, 0x04, 0x0d, -0x05,
1781 -0x04, 0x0d, -0x0c, -0x0e, 0x0c, 0x0a, -0x02, 0x0c, 0x00, 0x04, 0x06, 0x01, 0x0d, -0x07, -0x04, 0x0a,
1782 });
1783 try testArgs(@Vector(65, i5), .{
1784 -0x02, 0x02, -0x04, -0x01, 0x07, -0x02, -0x0c, 0x00, -0x05, 0x0b, 0x0d, -0x01, -0x09, 0x05, -0x08, -0x04,
1785 0x00, 0x01, -0x04, -0x0e, -0x02, -0x04, -0x0d, 0x04, -0x05, 0x01, 0x06, 0x07, 0x04, -0x07, 0x02, 0x02,
1786 -0x0b, 0x0f, -0x02, -0x0e, 0x07, -0x0c, 0x06, -0x10, -0x0f, -0x03, -0x06, -0x0c, 0x0b, -0x07, -0x06, 0x02,
1787 0x0a, 0x08, 0x01, 0x05, 0x03, -0x0b, -0x0a, -0x0f, -0x10, -0x05, -0x0a, -0x0e, -0x0b, -0x06, 0x0c, -0x08,
1788 0x04,
1789 });
1790 try testArgs(@Vector(127, i5), .{
1791 0x09, 0x0a, -0x03, 0x08, -0x04, -0x01, 0x0c, 0x0d, 0x0f, -0x08, 0x09, -0x05, -0x05, -0x01, -0x04, 0x0a,
1792 -0x02, 0x0c, 0x08, 0x0c, -0x06, 0x0b, 0x0a, 0x09, 0x09, 0x0c, -0x01, 0x09, -0x01, -0x03, -0x04, 0x0c,
1793 0x0e, 0x0c, 0x0d, -0x01, 0x0a, 0x0c, -0x04, 0x09, 0x0f, 0x0e, 0x0f, -0x08, -0x04, -0x04, 0x0f, -0x02,
1794 0x0c, -0x08, -0x06, -0x03, -0x07, 0x0d, 0x0d, -0x01, 0x08, -0x07, 0x08, -0x01, -0x04, 0x0e, -0x06, -0x03,
1795 -0x04, -0x05, 0x0e, 0x0c, 0x0a, -0x04, 0x0e, 0x0e, 0x0a, 0x0c, 0x0d, 0x08, 0x0a, -0x08, -0x06, 0x0a,
1796 0x0e, -0x08, 0x09, 0x08, -0x03, 0x0b, -0x02, -0x06, 0x0f, 0x08, -0x07, 0x0b, 0x0f, -0x07, -0x06, -0x01,
1797 0x09, 0x09, 0x0d, 0x0e, 0x09, 0x0b, -0x05, 0x0d, 0x08, 0x08, -0x07, -0x07, 0x0e, -0x07, -0x02, 0x0b,
1798 -0x05, 0x0d, 0x0e, -0x04, -0x02, -0x07, -0x04, -0x06, -0x04, -0x07, 0x0e, 0x08, -0x01, -0x03, 0x09,
1799 });
1800 try testArgs(@Vector(128, i5), .{
1801 -0x0c, -0x0d, -0x0b, -0x0c, -0x05, -0x09, 0x05, 0x02, 0x0a, 0x01, -0x07, 0x01, -0x09, -0x0c, -0x02, 0x03,
1802 -0x0f, 0x08, 0x03, 0x0b, -0x03, 0x07, -0x0b, 0x0a, -0x04, 0x0f, 0x06, -0x0a, -0x06, -0x0f, -0x0d, -0x0e,
1803 0x0a, 0x02, -0x0f, 0x0c, 0x0d, -0x03, 0x09, -0x0a, 0x0d, -0x10, -0x02, 0x06, 0x01, -0x08, 0x0f, -0x0b,
1804 -0x06, 0x01, 0x00, -0x07, 0x08, -0x03, -0x05, -0x03, -0x10, 0x00, 0x02, 0x09, -0x05, 0x0e, -0x04, 0x07,
1805 -0x09, -0x06, 0x0c, 0x00, -0x09, 0x0d, 0x01, -0x02, 0x07, -0x0f, 0x09, -0x0a, 0x04, 0x05, -0x06, 0x03,
1806 0x0c, 0x02, -0x05, -0x04, -0x06, -0x03, -0x0a, 0x01, 0x01, -0x06, -0x06, -0x0e, 0x01, 0x0a, 0x03, -0x0e,
1807 -0x10, 0x0a, 0x05, 0x04, -0x01, -0x04, -0x09, -0x0a, 0x0e, -0x0f, 0x0c, -0x06, 0x0e, 0x09, 0x00, 0x06,
1808 0x0e, -0x0a, -0x07, 0x04, 0x0b, 0x0f, 0x09, -0x0b, 0x03, 0x0b, 0x06, -0x0f, -0x04, -0x10, 0x03, -0x01,
1809 });
1810 try testArgs(@Vector(129, i5), .{
1811 -0x02, 0x09, 0x08, -0x06, 0x02, -0x0e, -0x01, -0x05, -0x0c, -0x0a, -0x03, 0x06, -0x02, -0x02, 0x09, 0x06,
1812 -0x02, 0x06, -0x09, -0x0c, 0x05, 0x07, -0x02, 0x0c, 0x09, -0x01, -0x02, 0x04, 0x04, 0x05, 0x05, 0x02,
1813 0x0d, -0x0f, 0x0c, -0x08, -0x0a, 0x07, 0x09, -0x04, -0x0c, 0x00, 0x01, -0x01, -0x09, -0x0c, 0x0e, 0x0d,
1814 0x0e, 0x0e, -0x0c, 0x0c, -0x05, 0x0e, 0x05, -0x0b, 0x0b, 0x01, 0x04, 0x0b, -0x10, -0x03, -0x05, 0x0b,
1815 0x05, -0x0f, -0x10, 0x08, -0x01, 0x0f, -0x0e, -0x10, 0x0d, 0x09, 0x00, -0x01, -0x0f, 0x01, 0x0f, -0x02,
1816 0x0d, -0x01, 0x0a, -0x0a, -0x0a, 0x0c, -0x01, 0x00, 0x09, 0x01, -0x08, -0x0e, 0x0d, 0x00, 0x02, -0x01,
1817 0x04, -0x0d, 0x00, 0x03, 0x08, 0x0d, 0x05, 0x03, 0x08, -0x09, -0x01, -0x0c, -0x0f, 0x0b, 0x0d, -0x08,
1818 0x0e, 0x0d, 0x0d, 0x05, 0x03, 0x01, -0x0b, 0x0f, 0x07, -0x08, -0x0d, -0x0b, 0x0f, -0x0c, -0x05, -0x04,
1819 0x00,
1820 });
1821
1822 try testArgs(@Vector(1, u5), .{
1823 0x1a,
1824 });
1825 try testArgs(@Vector(2, u5), .{
1826 0x0c, 0x0c,
1827 });
1828 try testArgs(@Vector(3, u5), .{
1829 0x07, 0x19, 0x07,
1830 });
1831 try testArgs(@Vector(4, u5), .{
1832 0x17, 0x16, 0x1f, 0x13,
1833 });
1834 try testArgs(@Vector(5, u5), .{
1835 0x03, 0x1a, 0x07, 0x04, 0x0a,
1836 });
1837 try testArgs(@Vector(7, u5), .{
1838 0x00, 0x1c, 0x1d, 0x1a, 0x13, 0x15, 0x00,
1839 });
1840 try testArgs(@Vector(8, u5), .{
1841 0x14, 0x13, 0x11, 0x16, 0x1c, 0x1a, 0x18, 0x1e,
1842 });
1843 try testArgs(@Vector(9, u5), .{
1844 0x09, 0x1a, 0x1a, 0x14, 0x04, 0x09, 0x17, 0x0d, 0x0b,
1845 });
1846 try testArgs(@Vector(15, u5), .{
1847 0x03, 0x01, 0x0c, 0x05, 0x11, 0x06, 0x09, 0x01, 0x15, 0x09, 0x1c, 0x13, 0x16, 0x03, 0x06,
1848 });
1849 try testArgs(@Vector(16, u5), .{
1850 0x13, 0x07, 0x02, 0x10, 0x15, 0x03, 0x00, 0x01, 0x10, 0x13, 0x17, 0x11, 0x16, 0x00, 0x07, 0x10,
1851 });
1852 try testArgs(@Vector(17, u5), .{
1853 0x1b, 0x1b, 0x1b, 0x02, 0x00, 0x02, 0x03, 0x09, 0x08, 0x00, 0x19, 0x01, 0x18, 0x10, 0x13, 0x03,
1854 0x18,
1855 });
1856 try testArgs(@Vector(31, u5), .{
1857 0x1d, 0x1d, 0x1b, 0x12, 0x18, 0x12, 0x1c, 0x14, 0x12, 0x15, 0x19, 0x13, 0x13, 0x15, 0x1c, 0x1f,
1858 0x1c, 0x10, 0x1b, 0x11, 0x17, 0x14, 0x18, 0x1e, 0x17, 0x14, 0x1d, 0x11, 0x14, 0x15, 0x19,
1859 });
1860 try testArgs(@Vector(32, u5), .{
1861 0x00, 0x00, 0x11, 0x19, 0x0d, 0x10, 0x01, 0x10, 0x08, 0x11, 0x00, 0x15, 0x08, 0x05, 0x14, 0x1c,
1862 0x18, 0x01, 0x10, 0x1d, 0x01, 0x18, 0x14, 0x1d, 0x18, 0x08, 0x1d, 0x1d, 0x18, 0x11, 0x1c, 0x1c,
1863 });
1864 try testArgs(@Vector(33, u5), .{
1865 0x0b, 0x18, 0x0f, 0x0c, 0x1f, 0x1f, 0x0f, 0x1a, 0x1b, 0x1e, 0x18, 0x08, 0x0f, 0x0c, 0x0b, 0x1d,
1866 0x1a, 0x0a, 0x0b, 0x0a, 0x1b, 0x19, 0x1c, 0x0a, 0x0b, 0x0e, 0x1b, 0x0a, 0x0b, 0x0b, 0x08, 0x1d,
1867 0x09,
1868 });
1869 try testArgs(@Vector(63, u5), .{
1870 0x14, 0x1b, 0x00, 0x0a, 0x0b, 0x00, 0x05, 0x17, 0x06, 0x1f, 0x1e, 0x0a, 0x03, 0x17, 0x0a, 0x1a,
1871 0x19, 0x01, 0x0d, 0x14, 0x19, 0x0c, 0x09, 0x0e, 0x0a, 0x1c, 0x05, 0x15, 0x0e, 0x17, 0x07, 0x09,
1872 0x0a, 0x1f, 0x17, 0x19, 0x17, 0x13, 0x16, 0x16, 0x0a, 0x02, 0x10, 0x19, 0x10, 0x10, 0x1b, 0x1d,
1873 0x08, 0x08, 0x1b, 0x09, 0x0a, 0x10, 0x1e, 0x1f, 0x18, 0x10, 0x09, 0x07, 0x05, 0x09, 0x1b,
1874 });
1875 try testArgs(@Vector(64, u5), .{
1876 0x09, 0x0d, 0x1c, 0x11, 0x15, 0x0d, 0x09, 0x10, 0x0c, 0x01, 0x05, 0x14, 0x14, 0x18, 0x1d, 0x14,
1877 0x01, 0x15, 0x08, 0x15, 0x0c, 0x10, 0x18, 0x10, 0x11, 0x15, 0x00, 0x1d, 0x08, 0x1d, 0x10, 0x04,
1878 0x1d, 0x05, 0x05, 0x08, 0x00, 0x0c, 0x05, 0x08, 0x09, 0x0d, 0x0c, 0x1d, 0x14, 0x18, 0x01, 0x0d,
1879 0x18, 0x1c, 0x15, 0x19, 0x18, 0x19, 0x09, 0x08, 0x10, 0x0c, 0x1c, 0x1d, 0x0c, 0x04, 0x10, 0x19,
1880 });
1881 try testArgs(@Vector(65, u5), .{
1882 0x15, 0x00, 0x15, 0x13, 0x06, 0x01, 0x10, 0x16, 0x15, 0x01, 0x16, 0x01, 0x00, 0x07, 0x15, 0x00,
1883 0x13, 0x02, 0x13, 0x06, 0x13, 0x14, 0x10, 0x11, 0x00, 0x05, 0x13, 0x04, 0x00, 0x11, 0x15, 0x15,
1884 0x05, 0x11, 0x13, 0x01, 0x07, 0x14, 0x05, 0x13, 0x03, 0x05, 0x07, 0x04, 0x17, 0x14, 0x00, 0x01,
1885 0x13, 0x17, 0x03, 0x15, 0x04, 0x12, 0x13, 0x06, 0x17, 0x00, 0x07, 0x02, 0x16, 0x14, 0x07, 0x10,
1886 0x13,
1887 });
1888 try testArgs(@Vector(127, u5), .{
1889 0x09, 0x04, 0x19, 0x07, 0x1c, 0x0b, 0x1b, 0x1b, 0x1a, 0x11, 0x1f, 0x15, 0x05, 0x08, 0x08, 0x11,
1890 0x08, 0x05, 0x08, 0x0f, 0x00, 0x13, 0x05, 0x0c, 0x15, 0x10, 0x00, 0x0d, 0x13, 0x1d, 0x19, 0x1b,
1891 0x0c, 0x0a, 0x18, 0x09, 0x1c, 0x15, 0x04, 0x17, 0x19, 0x12, 0x05, 0x16, 0x09, 0x19, 0x0c, 0x12,
1892 0x14, 0x12, 0x1a, 0x15, 0x0d, 0x02, 0x1b, 0x05, 0x0d, 0x1e, 0x05, 0x1a, 0x01, 0x1b, 0x06, 0x0b,
1893 0x1c, 0x07, 0x00, 0x06, 0x09, 0x19, 0x13, 0x0a, 0x08, 0x04, 0x1d, 0x15, 0x0f, 0x1f, 0x0b, 0x1c,
1894 0x14, 0x15, 0x1e, 0x15, 0x15, 0x19, 0x0c, 0x0e, 0x07, 0x1f, 0x09, 0x1e, 0x18, 0x0f, 0x1d, 0x15,
1895 0x01, 0x19, 0x0d, 0x15, 0x10, 0x02, 0x15, 0x1f, 0x1e, 0x1d, 0x17, 0x17, 0x05, 0x1d, 0x10, 0x0c,
1896 0x17, 0x00, 0x10, 0x00, 0x0b, 0x12, 0x13, 0x0b, 0x09, 0x08, 0x1c, 0x0d, 0x1d, 0x11, 0x16,
1897 });
1898 try testArgs(@Vector(128, u5), .{
1899 0x14, 0x0f, 0x12, 0x10, 0x04, 0x0b, 0x11, 0x12, 0x18, 0x00, 0x1c, 0x0a, 0x11, 0x0a, 0x0f, 0x1d,
1900 0x09, 0x19, 0x06, 0x11, 0x03, 0x1a, 0x08, 0x0d, 0x03, 0x0e, 0x0e, 0x1a, 0x09, 0x00, 0x1c, 0x05,
1901 0x1c, 0x17, 0x19, 0x0a, 0x0a, 0x08, 0x1b, 0x0f, 0x0a, 0x15, 0x1e, 0x17, 0x1f, 0x1b, 0x10, 0x01,
1902 0x02, 0x1d, 0x11, 0x19, 0x0a, 0x15, 0x0d, 0x09, 0x03, 0x02, 0x00, 0x1d, 0x19, 0x03, 0x0d, 0x10,
1903 0x1b, 0x15, 0x1b, 0x13, 0x03, 0x08, 0x0c, 0x00, 0x16, 0x19, 0x05, 0x17, 0x1d, 0x07, 0x05, 0x15,
1904 0x00, 0x07, 0x01, 0x17, 0x0a, 0x00, 0x0c, 0x08, 0x19, 0x00, 0x0c, 0x06, 0x0b, 0x13, 0x01, 0x0b,
1905 0x0c, 0x03, 0x1c, 0x03, 0x08, 0x07, 0x14, 0x00, 0x02, 0x09, 0x08, 0x05, 0x18, 0x0d, 0x10, 0x1c,
1906 0x0d, 0x11, 0x12, 0x07, 0x01, 0x1d, 0x1e, 0x13, 0x08, 0x09, 0x08, 0x05, 0x16, 0x0c, 0x08, 0x1c,
1907 });
1908 try testArgs(@Vector(129, u5), .{
1909 0x1d, 0x12, 0x0a, 0x02, 0x03, 0x14, 0x1b, 0x00, 0x16, 0x0d, 0x1d, 0x1e, 0x0c, 0x17, 0x0f, 0x07,
1910 0x04, 0x1d, 0x03, 0x0b, 0x0a, 0x10, 0x04, 0x12, 0x00, 0x11, 0x00, 0x11, 0x03, 0x16, 0x0b, 0x08,
1911 0x17, 0x1e, 0x19, 0x10, 0x0f, 0x1d, 0x0a, 0x04, 0x11, 0x0a, 0x1c, 0x16, 0x02, 0x14, 0x13, 0x0f,
1912 0x0d, 0x04, 0x0a, 0x03, 0x1a, 0x0c, 0x18, 0x10, 0x00, 0x0d, 0x03, 0x06, 0x10, 0x03, 0x0e, 0x08,
1913 0x14, 0x10, 0x0b, 0x0d, 0x00, 0x0c, 0x0a, 0x07, 0x06, 0x10, 0x11, 0x1d, 0x06, 0x12, 0x0c, 0x12,
1914 0x00, 0x1d, 0x0f, 0x09, 0x02, 0x1d, 0x17, 0x13, 0x02, 0x09, 0x11, 0x0c, 0x1d, 0x14, 0x01, 0x11,
1915 0x03, 0x1f, 0x16, 0x0c, 0x16, 0x09, 0x11, 0x17, 0x01, 0x12, 0x13, 0x00, 0x1c, 0x0b, 0x03, 0x04,
1916 0x18, 0x0d, 0x06, 0x04, 0x10, 0x1e, 0x09, 0x1c, 0x04, 0x0a, 0x01, 0x0d, 0x1f, 0x1c, 0x1f, 0x1e,
1917 0x00,
1918 });
1919
1920 try testArgs(@Vector(1, i7), .{
1921 0x1e,
1922 });
1923 try testArgs(@Vector(2, i7), .{
1924 -0x2b, 0x17,
1925 });
1926 try testArgs(@Vector(3, i7), .{
1927 0x15, 0x36, 0x3a,
1928 });
1929 try testArgs(@Vector(4, i7), .{
1930 0x10, 0x17, -0x19, 0x1b,
1931 });
1932 try testArgs(@Vector(5, i7), .{
1933 -0x18, 0x0a, 0x2a, -0x3c, -0x2c,
1934 });
1935 try testArgs(@Vector(7, i7), .{
1936 -0x37, 0x1d, 0x2a, -0x3d, 0x07, 0x22, 0x38,
1937 });
1938 try testArgs(@Vector(8, i7), .{
1939 0x2a, -0x06, 0x03, -0x26, 0x18, -0x11, 0x12, 0x3f,
1940 });
1941 try testArgs(@Vector(9, i7), .{
1942 0x39, 0x0b, -0x1d, 0x10, -0x18, -0x2a, -0x2b, 0x16, 0x15,
1943 });
1944 try testArgs(@Vector(15, i7), .{
1945 -0x27, 0x3c, 0x39, -0x27, 0x1f, -0x2b, 0x39, 0x3b, -0x06, 0x38, -0x26, 0x11, -0x23, -0x01, 0x13,
1946 });
1947 try testArgs(@Vector(16, i7), .{
1948 0x31, -0x35, -0x21, 0x27, 0x13, 0x05, 0x07, 0x0d, -0x27, 0x3d, -0x0b, 0x0d, -0x1f, -0x13, -0x09, 0x1b,
1949 });
1950 try testArgs(@Vector(17, i7), .{
1951 0x2d, 0x2d, -0x05, -0x0a, 0x38, -0x3a, -0x36, 0x09, -0x34, -0x15, 0x34, 0x3d, 0x07, -0x16, -0x23, 0x10,
1952 0x35,
1953 });
1954 try testArgs(@Vector(31, i7), .{
1955 -0x32, -0x39, 0x37, 0x2d, -0x2a, 0x17, -0x3a, 0x17, 0x0e, -0x39, -0x11, 0x07, 0x0c, 0x2c, -0x19, -0x12,
1956 0x1e, 0x1f, -0x3c, 0x0d, 0x25, -0x0a, -0x13, 0x15, -0x33, 0x3f, 0x3c, -0x3b, -0x0b, 0x06, -0x23,
1957 });
1958 try testArgs(@Vector(32, i7), .{
1959 0x1d, 0x2e, 0x1e, 0x00, 0x10, 0x09, 0x07, 0x20, 0x26, 0x2b, 0x0a, 0x02, 0x0c, 0x3d, 0x3f, 0x06,
1960 0x34, 0x13, 0x17, 0x1d, 0x1d, 0x0f, 0x1b, 0x05, 0x36, 0x0a, 0x1f, 0x14, 0x13, 0x3f, 0x1a, 0x3a,
1961 });
1962 try testArgs(@Vector(33, i7), .{
1963 0x19, 0x31, 0x3d, -0x38, -0x3b, 0x2b, -0x11, -0x1c, 0x2c, 0x25, 0x37, 0x3d, 0x34, -0x38, -0x0d, 0x01,
1964 0x37, 0x3c, 0x3f, 0x02, 0x00, 0x0e, 0x22, -0x03, 0x26, -0x1f, 0x0b, 0x0f, 0x0f, -0x39, 0x10, 0x27,
1965 0x28,
1966 });
1967 try testArgs(@Vector(63, i7), .{
1968 0x13, 0x2c, -0x08, 0x2f, 0x2c, -0x3a, 0x3e, -0x01, 0x0a, 0x12, -0x1f, 0x34, 0x21, -0x3f, -0x0f, -0x3d,
1969 0x38, 0x1e, 0x11, 0x3a, -0x36, 0x2f, -0x03, -0x39, 0x3b, -0x3f, -0x29, 0x33, 0x25, 0x18, 0x0c, -0x3e,
1970 -0x0f, 0x0d, -0x01, -0x08, -0x2a, 0x33, 0x2b, 0x35, 0x18, -0x29, -0x05, 0x20, 0x02, 0x39, -0x24, 0x2f,
1971 0x36, -0x04, -0x40, 0x2e, 0x07, 0x04, -0x39, -0x3c, -0x24, 0x13, -0x10, 0x30, -0x2f, -0x39, -0x01,
1972 });
1973 try testArgs(@Vector(64, i7), .{
1974 0x20, -0x18, -0x15, -0x3a, 0x11, 0x39, -0x23, 0x19, -0x0a, -0x02, -0x1b, -0x28, -0x1f, -0x12, -0x33, -0x0f,
1975 -0x37, 0x2a, 0x35, -0x08, 0x19, 0x2c, 0x11, -0x13, -0x16, 0x00, -0x40, -0x3c, -0x16, 0x39, 0x01, 0x3c,
1976 0x01, -0x3e, -0x27, -0x17, -0x08, -0x3b, 0x13, 0x2f, 0x38, -0x37, 0x0b, 0x03, -0x21, -0x10, -0x40, 0x0a,
1977 -0x3c, 0x2f, -0x0b, 0x12, -0x2e, -0x32, 0x1b, -0x35, -0x20, -0x1d, -0x10, 0x2f, -0x40, 0x09, 0x13, 0x13,
1978 });
1979 try testArgs(@Vector(65, i7), .{
1980 0x0a, 0x16, -0x31, -0x06, -0x26, -0x14, -0x38, -0x32, -0x2e, -0x07, 0x03, 0x3c, 0x34, -0x14, -0x3b, 0x03,
1981 -0x11, -0x18, -0x12, -0x2f, -0x1c, 0x17, 0x0f, 0x0f, 0x2d, -0x15, 0x33, -0x2c, -0x2a, 0x2e, 0x26, -0x3f,
1982 -0x07, -0x3f, -0x23, -0x31, -0x05, -0x32, -0x0e, 0x15, -0x33, -0x03, -0x28, -0x1e, 0x15, -0x3e, 0x37, 0x30,
1983 -0x35, 0x31, -0x3e, 0x03, 0x17, -0x0e, 0x2d, -0x19, -0x2b, -0x3b, -0x16, 0x3f, 0x3c, 0x1b, -0x12, -0x30,
1984 -0x08,
1985 });
1986 try testArgs(@Vector(127, i7), .{
1987 -0x2c, -0x13, -0x40, 0x12, 0x16, -0x15, -0x29, 0x3c, -0x2f, 0x24, 0x24, 0x27, 0x11, -0x0b, 0x24, -0x11,
1988 0x0a, 0x2a, 0x23, -0x0f, 0x0f, 0x01, -0x2b, -0x06, 0x02, -0x1d, -0x09, -0x09, 0x2f, 0x09, 0x1c, -0x0e,
1989 -0x3a, -0x18, -0x1e, -0x34, -0x20, 0x27, -0x26, 0x26, 0x1f, 0x3c, -0x35, -0x33, 0x15, 0x32, -0x3e, -0x27,
1990 -0x3b, 0x0f, -0x1c, -0x33, -0x28, 0x0b, -0x1d, -0x21, -0x2b, 0x1d, 0x2a, 0x37, -0x26, 0x0c, -0x3e, -0x19,
1991 0x0a, -0x34, 0x03, 0x02, -0x2a, 0x36, -0x06, 0x15, 0x09, -0x0a, 0x0f, 0x07, -0x09, 0x07, -0x14, 0x24,
1992 -0x2f, 0x29, -0x29, -0x0f, -0x3b, 0x08, -0x0d, 0x11, 0x09, -0x0f, 0x0c, -0x27, -0x16, -0x2c, -0x14, 0x2e,
1993 -0x0c, -0x01, 0x19, 0x15, 0x21, 0x3f, -0x03, 0x28, -0x3d, -0x04, -0x0a, -0x2a, 0x2c, -0x25, 0x1b, 0x2e,
1994 0x23, -0x31, 0x03, -0x06, 0x2b, -0x04, 0x2e, -0x07, -0x10, -0x10, -0x35, 0x24, -0x3b, -0x36, 0x21,
1995 });
1996 try testArgs(@Vector(128, i7), .{
1997 0x28, 0x0a, -0x3c, -0x31, 0x35, -0x19, 0x3b, 0x3e, -0x17, 0x0e, 0x3e, -0x34, 0x23, 0x2d, -0x27, -0x1a,
1998 0x38, -0x1d, 0x10, 0x0c, -0x20, -0x0e, 0x33, -0x01, 0x0e, -0x14, -0x14, 0x0f, -0x39, 0x3d, 0x03, -0x1b,
1999 0x0c, 0x04, -0x0c, -0x2b, -0x25, 0x02, 0x20, -0x1b, -0x04, 0x37, -0x30, -0x10, -0x05, 0x0c, -0x0d, -0x40,
2000 0x20, 0x29, -0x3b, -0x24, -0x3e, 0x29, -0x3c, 0x1a, 0x34, 0x2f, -0x05, -0x11, 0x27, 0x25, -0x25, 0x19,
2001 -0x2d, -0x14, 0x0c, 0x3b, -0x22, -0x04, -0x19, 0x12, -0x15, -0x0c, 0x29, 0x0a, -0x18, -0x22, 0x27, 0x17,
2002 -0x2e, -0x01, -0x24, -0x10, 0x18, -0x0b, -0x1f, 0x1f, 0x30, -0x1e, -0x32, 0x17, -0x34, -0x11, 0x29, 0x0f,
2003 0x37, -0x01, 0x06, -0x32, 0x1d, -0x2a, 0x23, -0x1c, 0x36, 0x33, 0x0b, -0x19, 0x02, 0x15, 0x1b, -0x1a,
2004 -0x30, 0x34, -0x1f, 0x1e, 0x13, -0x20, -0x31, -0x03, 0x1a, -0x01, 0x36, 0x10, 0x2b, 0x17, 0x1f, 0x0e,
2005 });
2006 try testArgs(@Vector(129, i7), .{
2007 0x13, 0x20, 0x21, 0x11, 0x2c, 0x12, 0x23, 0x38, 0x00, 0x02, 0x2b, 0x30, 0x03, 0x21, 0x31, 0x3b,
2008 0x2c, 0x33, 0x1b, 0x3d, 0x1d, 0x2d, 0x22, 0x0a, 0x16, 0x3b, 0x04, 0x39, 0x24, 0x1e, 0x25, 0x2f,
2009 0x1e, 0x3d, 0x0a, 0x2f, 0x14, 0x18, 0x31, 0x2f, 0x07, 0x1d, 0x20, 0x25, 0x29, 0x36, 0x06, 0x2e,
2010 0x29, 0x1f, 0x3f, 0x26, 0x3d, 0x0b, 0x1b, 0x1d, 0x2f, 0x00, 0x14, 0x2b, 0x02, 0x13, 0x3c, 0x32,
2011 0x37, 0x0c, 0x00, 0x03, 0x28, 0x05, 0x39, 0x18, 0x38, 0x3c, 0x19, 0x1e, 0x35, 0x27, 0x0d, 0x08,
2012 0x0a, 0x28, 0x2a, 0x26, 0x0d, 0x10, 0x1b, 0x37, 0x2d, 0x11, 0x3b, 0x35, 0x1b, 0x31, 0x01, 0x0c,
2013 0x0d, 0x31, 0x32, 0x2c, 0x22, 0x2a, 0x0b, 0x05, 0x26, 0x3f, 0x13, 0x2c, 0x1a, 0x21, 0x1f, 0x14,
2014 0x16, 0x0d, 0x39, 0x20, 0x00, 0x23, 0x03, 0x34, 0x0a, 0x06, 0x17, 0x1b, 0x22, 0x11, 0x0e, 0x2e,
2015 0x0f,
2016 });
2017
2018 try testArgs(@Vector(1, u7), .{
2019 0x52,
2020 });
2021 try testArgs(@Vector(2, u7), .{
2022 0x06, 0x14,
2023 });
2024 try testArgs(@Vector(3, u7), .{
2025 0x03, 0x0d, 0x6b,
2026 });
2027 try testArgs(@Vector(4, u7), .{
2028 0x05, 0x26, 0x0c, 0x0b,
2029 });
2030 try testArgs(@Vector(5, u7), .{
2031 0x12, 0x43, 0x4b, 0x5d, 0x76,
2032 });
2033 try testArgs(@Vector(7, u7), .{
2034 0x51, 0x04, 0x52, 0x71, 0x05, 0x33, 0x53,
2035 });
2036 try testArgs(@Vector(8, u7), .{
2037 0x06, 0x65, 0x03, 0x61, 0x2a, 0x21, 0x01, 0x63,
2038 });
2039 try testArgs(@Vector(9, u7), .{
2040 0x38, 0x42, 0x79, 0x30, 0x20, 0x00, 0x00, 0x28, 0x22,
2041 });
2042 try testArgs(@Vector(15, u7), .{
2043 0x1e, 0x3f, 0x32, 0x2c, 0x01, 0x3f, 0x0a, 0x32, 0x39, 0x09, 0x24, 0x2b, 0x0f, 0x03, 0x3e,
2044 });
2045 try testArgs(@Vector(16, u7), .{
2046 0x74, 0x34, 0x11, 0x67, 0x52, 0x6d, 0x5e, 0x77, 0x00, 0x75, 0x4f, 0x54, 0x79, 0x21, 0x6d, 0x66,
2047 });
2048 try testArgs(@Vector(17, u7), .{
2049 0x71, 0x6c, 0x68, 0x5f, 0x42, 0x47, 0x7e, 0x42, 0x50, 0x50, 0x78, 0x57, 0x7b, 0x72, 0x57, 0x79,
2050 0x44,
2051 });
2052 try testArgs(@Vector(31, u7), .{
2053 0x3f, 0x64, 0x09, 0x5d, 0x61, 0x72, 0x50, 0x52, 0x5f, 0x2d, 0x54, 0x0b, 0x38, 0x08, 0x2a, 0x01,
2054 0x43, 0x1b, 0x21, 0x23, 0x26, 0x02, 0x0c, 0x32, 0x34, 0x4a, 0x77, 0x71, 0x68, 0x14, 0x2f,
2055 });
2056 try testArgs(@Vector(32, u7), .{
2057 0x03, 0x32, 0x20, 0x55, 0x77, 0x66, 0x71, 0x13, 0x55, 0x23, 0x34, 0x34, 0x40, 0x40, 0x45, 0x44,
2058 0x13, 0x00, 0x74, 0x21, 0x61, 0x12, 0x52, 0x32, 0x50, 0x05, 0x45, 0x22, 0x51, 0x07, 0x74, 0x03,
2059 });
2060 try testArgs(@Vector(33, u7), .{
2061 0x42, 0x42, 0x4c, 0x03, 0x53, 0x4a, 0x4c, 0x06, 0x44, 0x09, 0x01, 0x12, 0x4d, 0x01, 0x47, 0x1c,
2062 0x4c, 0x0b, 0x5a, 0x10, 0x42, 0x5a, 0x49, 0x0b, 0x19, 0x4f, 0x5b, 0x4b, 0x4e, 0x58, 0x4b, 0x1f,
2063 0x56,
2064 });
2065 try testArgs(@Vector(63, u7), .{
2066 0x51, 0x65, 0x25, 0x1b, 0x0f, 0x2f, 0x7a, 0x5e, 0x0f, 0x07, 0x40, 0x24, 0x5b, 0x29, 0x32, 0x14,
2067 0x43, 0x0b, 0x3e, 0x7a, 0x33, 0x08, 0x4a, 0x2d, 0x47, 0x5b, 0x17, 0x21, 0x25, 0x33, 0x14, 0x28,
2068 0x58, 0x60, 0x52, 0x67, 0x3c, 0x31, 0x0e, 0x09, 0x36, 0x15, 0x06, 0x13, 0x64, 0x46, 0x3a, 0x58,
2069 0x75, 0x68, 0x58, 0x56, 0x45, 0x44, 0x7c, 0x74, 0x51, 0x13, 0x49, 0x41, 0x0d, 0x5f, 0x64,
2070 });
2071 try testArgs(@Vector(64, u7), .{
2072 0x3b, 0x10, 0x70, 0x63, 0x0e, 0x36, 0x15, 0x00, 0x1d, 0x39, 0x4b, 0x0b, 0x03, 0x20, 0x27, 0x18,
2073 0x34, 0x48, 0x70, 0x37, 0x67, 0x21, 0x24, 0x09, 0x74, 0x62, 0x49, 0x34, 0x50, 0x05, 0x17, 0x47,
2074 0x13, 0x16, 0x34, 0x00, 0x00, 0x0d, 0x57, 0x1f, 0x4b, 0x53, 0x50, 0x00, 0x32, 0x02, 0x11, 0x16,
2075 0x39, 0x0d, 0x12, 0x3a, 0x5e, 0x51, 0x32, 0x48, 0x3a, 0x5e, 0x61, 0x64, 0x0b, 0x50, 0x56, 0x2e,
2076 });
2077 try testArgs(@Vector(65, u7), .{
2078 0x6e, 0x03, 0x6e, 0x39, 0x79, 0x49, 0x76, 0x12, 0x58, 0x52, 0x61, 0x58, 0x6f, 0x1a, 0x52, 0x1b,
2079 0x55, 0x77, 0x2a, 0x61, 0x1c, 0x4d, 0x0c, 0x71, 0x7c, 0x6b, 0x5f, 0x18, 0x63, 0x52, 0x5d, 0x6a,
2080 0x0f, 0x41, 0x4d, 0x0a, 0x7f, 0x78, 0x34, 0x0a, 0x37, 0x38, 0x31, 0x11, 0x45, 0x7e, 0x32, 0x2f,
2081 0x16, 0x0d, 0x45, 0x43, 0x67, 0x6d, 0x76, 0x54, 0x28, 0x5d, 0x09, 0x0b, 0x52, 0x20, 0x68, 0x65,
2082 0x7d,
2083 });
2084 try testArgs(@Vector(127, u7), .{
2085 0x02, 0x34, 0x23, 0x24, 0x28, 0x3c, 0x0e, 0x20, 0x03, 0x27, 0x13, 0x23, 0x1d, 0x32, 0x3f, 0x3f,
2086 0x1b, 0x37, 0x28, 0x2b, 0x38, 0x38, 0x2f, 0x0f, 0x07, 0x0c, 0x3d, 0x35, 0x2d, 0x0f, 0x1b, 0x32,
2087 0x3d, 0x30, 0x1c, 0x1a, 0x34, 0x21, 0x3d, 0x0f, 0x1e, 0x02, 0x0a, 0x2c, 0x16, 0x0c, 0x30, 0x37,
2088 0x16, 0x2a, 0x1f, 0x2d, 0x1f, 0x3d, 0x0c, 0x2e, 0x15, 0x1f, 0x2a, 0x10, 0x37, 0x3d, 0x2a, 0x3c,
2089 0x22, 0x17, 0x23, 0x0f, 0x3b, 0x21, 0x31, 0x02, 0x36, 0x31, 0x03, 0x14, 0x1b, 0x39, 0x29, 0x25,
2090 0x37, 0x37, 0x09, 0x33, 0x0a, 0x10, 0x10, 0x20, 0x07, 0x1e, 0x1c, 0x36, 0x05, 0x2f, 0x1a, 0x1a,
2091 0x21, 0x0b, 0x20, 0x30, 0x2c, 0x1e, 0x03, 0x2e, 0x09, 0x26, 0x3f, 0x30, 0x06, 0x37, 0x1c, 0x34,
2092 0x31, 0x0d, 0x2e, 0x3d, 0x24, 0x26, 0x10, 0x08, 0x14, 0x0f, 0x1c, 0x27, 0x37, 0x04, 0x02,
2093 });
2094 try testArgs(@Vector(128, u7), .{
2095 0x7b, 0x60, 0x69, 0x7b, 0x74, 0x5f, 0x51, 0x43, 0x69, 0x4b, 0x6f, 0x7f, 0x79, 0x5b, 0x56, 0x56,
2096 0x67, 0x70, 0x72, 0x73, 0x51, 0x60, 0x47, 0x5b, 0x79, 0x56, 0x62, 0x4f, 0x6f, 0x69, 0x6e, 0x68,
2097 0x4a, 0x47, 0x5e, 0x5b, 0x67, 0x6d, 0x64, 0x4a, 0x4e, 0x72, 0x50, 0x6b, 0x51, 0x43, 0x4b, 0x74,
2098 0x63, 0x6a, 0x75, 0x6f, 0x66, 0x74, 0x44, 0x51, 0x79, 0x46, 0x6d, 0x49, 0x49, 0x54, 0x62, 0x7d,
2099 0x40, 0x55, 0x70, 0x40, 0x6a, 0x5a, 0x65, 0x7d, 0x58, 0x4b, 0x49, 0x59, 0x5d, 0x5a, 0x61, 0x6a,
2100 0x4d, 0x5f, 0x5a, 0x62, 0x7f, 0x66, 0x7d, 0x53, 0x6b, 0x4f, 0x7e, 0x7b, 0x75, 0x73, 0x67, 0x6f,
2101 0x64, 0x6b, 0x75, 0x5a, 0x76, 0x53, 0x7b, 0x7a, 0x5d, 0x40, 0x6b, 0x5b, 0x6c, 0x65, 0x7a, 0x6a,
2102 0x5b, 0x43, 0x54, 0x74, 0x43, 0x7a, 0x57, 0x44, 0x44, 0x60, 0x4b, 0x47, 0x46, 0x7c, 0x63, 0x6b,
2103 });
2104 try testArgs(@Vector(129, u7), .{
2105 0x0f, 0x3b, 0x4f, 0x51, 0x55, 0x67, 0x07, 0x17, 0x53, 0x73, 0x25, 0x7b, 0x33, 0x6b, 0x0d, 0x29,
2106 0x51, 0x0b, 0x1d, 0x39, 0x1b, 0x2b, 0x33, 0x47, 0x73, 0x17, 0x59, 0x0d, 0x4b, 0x67, 0x5f, 0x1b,
2107 0x49, 0x3d, 0x7f, 0x3b, 0x49, 0x7f, 0x2d, 0x4b, 0x49, 0x55, 0x7d, 0x37, 0x29, 0x5d, 0x5f, 0x5d,
2108 0x4f, 0x39, 0x13, 0x39, 0x75, 0x6b, 0x2f, 0x33, 0x6f, 0x05, 0x45, 0x37, 0x0f, 0x7b, 0x25, 0x35,
2109 0x77, 0x09, 0x1d, 0x3d, 0x19, 0x11, 0x65, 0x6d, 0x01, 0x59, 0x6d, 0x2f, 0x5d, 0x01, 0x43, 0x0b,
2110 0x7f, 0x43, 0x13, 0x5d, 0x2b, 0x0d, 0x09, 0x69, 0x0d, 0x41, 0x37, 0x43, 0x5b, 0x07, 0x3d, 0x49,
2111 0x53, 0x0f, 0x15, 0x75, 0x01, 0x43, 0x3b, 0x45, 0x63, 0x15, 0x25, 0x15, 0x27, 0x5b, 0x33, 0x17,
2112 0x5d, 0x2b, 0x25, 0x73, 0x23, 0x2d, 0x49, 0x67, 0x51, 0x75, 0x31, 0x63, 0x39, 0x61, 0x1d, 0x1d,
2113 0x0d,
2114 });
2115
2116 try testArgs(@Vector(1, i8), .{
2117 -0x16,
2118 });
2119 try testArgs(@Vector(2, i8), .{
2120 0x18, 0x1b,
2121 });
2122 try testArgs(@Vector(3, i8), .{
2123 0x7a, 0x6f, 0x40,
2124 });
2125 try testArgs(@Vector(4, i8), .{
2126 0x14, -0x12, -0x53, 0x34,
2127 });
2128 try testArgs(@Vector(5, i8), .{
2129 -0x39, 0x63, 0x1a, 0x03, -0x48,
2130 });
2131 try testArgs(@Vector(7, i8), .{
2132 -0x56, -0x40, -0x1f, 0x7b, -0x7a, 0x39, -0x7b,
2133 });
2134 try testArgs(@Vector(8, i8), .{
2135 0x75, -0x64, -0x12, -0x0c, -0x47, 0x6f, 0x53, 0x1b,
2136 });
2137 try testArgs(@Vector(9, i8), .{
2138 0x29, 0x55, 0x4c, -0x4f, 0x54, 0x34, -0x21, -0x42, 0x36,
2139 });
2140 try testArgs(@Vector(15, i8), .{
2141 0x5f, -0x41, 0x76, 0x7c, 0x26, -0x5b, -0x4a, -0x7c, 0x26, 0x45, -0x69, 0x05, 0x67, 0x0f, -0x64,
2142 });
2143 try testArgs(@Vector(16, i8), .{
2144 -0x05, 0x77, 0x6f, -0x07, -0x7a, 0x56, -0x4d, -0x75, 0x02, -0x01, -0x4d, -0x7e, -0x24, 0x3a, -0x0b, 0x0a,
2145 });
2146 try testArgs(@Vector(17, i8), .{
2147 0x68, 0x06, -0x31, 0x7e, 0x07, 0x1d, 0x63, -0x01, -0x66, -0x75, 0x15, 0x00, 0x17, 0x00, -0x74, 0x03,
2148 -0x6b,
2149 });
2150 try testArgs(@Vector(31, i8), .{
2151 0x49, -0x72, 0x72, 0x15, 0x63, -0x4c, 0x04, 0x62, 0x21, -0x30, 0x57, 0x53, -0x33, 0x1b, -0x3b, -0x03,
2152 0x7d, -0x2c, 0x4a, 0x7b, -0x63, 0x36, -0x0b, 0x26, 0x4d, -0x60, -0x14, -0x6e, 0x6f, 0x7c, 0x3e,
2153 });
2154 try testArgs(@Vector(32, i8), .{
2155 -0x1a, -0x5f, -0x79, -0x10, -0x5e, 0x62, -0x0c, -0x3a, 0x37, 0x60, -0x1b, 0x72, 0x74, -0x1d, 0x32, -0x7c,
2156 0x31, -0x7b, 0x70, -0x4e, -0x7f, 0x53, 0x32, -0x3d, -0x49, 0x42, -0x4b, 0x74, 0x13, 0x70, -0x79, 0x64,
2157 });
2158 try testArgs(@Vector(33, i8), .{
2159 0x60, -0x0e, 0x06, -0x2a, -0x4a, -0x1a, 0x13, 0x20, 0x21, 0x60, 0x63, -0x6a, -0x1e, -0x10, 0x24, 0x76,
2160 0x22, -0x5c, 0x03, 0x03, 0x46, -0x30, -0x0e, 0x24, 0x73, 0x30, 0x24, -0x5d, -0x5d, 0x24, -0x1b, 0x31,
2161 -0x79,
2162 });
2163 try testArgs(@Vector(63, i8), .{
2164 -0x6b, 0x17, -0x12, -0x5b, 0x29, -0x03, -0x57, -0x1e, -0x70, 0x69, -0x1e, 0x40, 0x18, 0x32, 0x5e, 0x3b,
2165 0x39, 0x2b, -0x04, 0x54, 0x6a, 0x15, -0x04, 0x74, 0x12, -0x6f, 0x36, -0x1b, -0x7a, 0x3a, 0x63, -0x4d,
2166 -0x6e, -0x5e, 0x34, 0x39, -0x79, -0x1b, -0x6e, -0x3d, -0x5f, -0x1e, 0x70, -0x6c, -0x46, 0x45, 0x6f, 0x6e,
2167 0x38, -0x2d, -0x1e, -0x2c, -0x7a, 0x1c, 0x33, 0x26, -0x37, 0x06, -0x68, -0x7b, -0x2e, -0x48, 0x72,
2168 });
2169 try testArgs(@Vector(64, i8), .{
2170 0x23, 0x3b, 0x67, -0x61, 0x11, -0x45, -0x39, 0x43, 0x23, 0x37, 0x57, 0x6b, -0x4f, 0x05, -0x23, 0x1b,
2171 -0x3d, -0x73, 0x31, 0x6d, -0x2f, -0x7b, 0x49, -0x4d, -0x03, -0x5f, 0x13, 0x17, -0x79, -0x03, 0x47, -0x1f,
2172 0x51, 0x2d, -0x55, -0x4d, -0x5f, 0x2b, 0x53, -0x2f, -0x39, 0x23, 0x01, 0x29, -0x65, -0x61, 0x57, 0x21,
2173 -0x6d, 0x71, 0x59, -0x2d, -0x6d, 0x59, -0x39, 0x55, 0x27, 0x67, 0x73, -0x4d, 0x1f, 0x75, -0x05, 0x15,
2174 });
2175 try testArgs(@Vector(65, i8), .{
2176 -0x59, -0x45, -0x4a, -0x55, -0x0a, -0x11, 0x70, 0x20, -0x1f, -0x56, 0x28, 0x2d, 0x7e, 0x2f, -0x0e, -0x5d,
2177 0x2e, 0x7f, -0x04, -0x48, -0x51, 0x27, 0x72, 0x24, 0x39, -0x05, -0x4a, -0x60, 0x21, 0x7c, -0x51, 0x6d,
2178 -0x55, -0x42, 0x71, -0x08, -0x1f, 0x2a, 0x60, -0x07, -0x10, -0x0a, 0x68, 0x39, -0x4f, -0x44, 0x2b, -0x15,
2179 0x7f, 0x71, -0x51, -0x03, 0x3c, 0x3d, -0x46, 0x70, 0x20, -0x4b, 0x37, 0x72, -0x50, -0x0a, 0x27, -0x5b,
2180 -0x0d,
2181 });
2182 try testArgs(@Vector(127, i8), .{
2183 -0x13, -0x04, -0x6e, 0x5c, 0x20, -0x51, 0x21, 0x7b, -0x5d, 0x14, 0x72, -0x32, 0x50, 0x3f, 0x0e, -0x5d,
2184 0x3e, 0x77, -0x4e, -0x4d, 0x71, 0x71, 0x49, 0x11, 0x27, -0x0f, 0x08, 0x37, 0x08, 0x01, -0x77, 0x2e,
2185 0x45, 0x20, 0x1c, -0x17, 0x03, -0x22, 0x01, -0x1f, 0x71, -0x05, -0x1e, -0x3d, 0x02, -0x30, -0x5f, 0x17,
2186 -0x4a, -0x50, 0x16, 0x6f, 0x0c, 0x77, -0x44, -0x6c, -0x79, -0x75, 0x05, -0x3a, 0x11, 0x45, 0x57, -0x0f,
2187 0x57, 0x44, 0x4c, -0x63, 0x4b, 0x35, 0x16, -0x3e, 0x5d, -0x02, 0x22, -0x0c, 0x6f, 0x37, 0x49, 0x0b,
2188 0x2a, 0x27, 0x3c, 0x21, -0x7f, 0x7e, -0x29, -0x04, -0x72, -0x1a, -0x35, 0x69, 0x20, 0x68, -0x72, -0x58,
2189 -0x32, 0x0f, 0x4a, -0x2a, 0x1b, 0x07, 0x74, -0x44, -0x3e, -0x45, 0x54, -0x4e, 0x27, -0x4a, -0x0d, 0x55,
2190 -0x55, -0x67, 0x48, -0x0d, -0x6c, 0x6a, 0x2c, 0x18, -0x6d, -0x50, -0x2d, -0x2f, -0x01, -0x6b, 0x61,
2191 });
2192 try testArgs(@Vector(128, i8), .{
2193 0x55, 0x0f, -0x65, 0x0c, 0x0f, -0x22, -0x7a, 0x53, -0x3c, -0x35, 0x50, 0x5c, 0x53, -0x3d, -0x38, 0x18,
2194 0x5c, -0x66, 0x0c, -0x30, -0x77, -0x2d, -0x37, 0x5d, -0x30, -0x7b, -0x68, 0x1f, -0x2f, 0x56, 0x44, -0x7c,
2195 0x02, -0x2d, 0x15, -0x22, -0x6b, 0x07, -0x77, 0x1e, -0x3a, 0x0e, 0x0e, -0x69, 0x54, -0x65, 0x54, 0x02,
2196 -0x2b, 0x56, 0x49, -0x23, -0x40, 0x53, 0x0c, -0x66, -0x21, -0x67, -0x26, -0x65, -0x6c, -0x22, -0x3a, -0x79,
2197 0x45, 0x50, 0x0e, -0x34, -0x80, 0x13, -0x2c, -0x22, -0x7e, -0x24, 0x46, -0x21, 0x04, 0x41, -0x37, 0x10,
2198 -0x7c, 0x4e, -0x3a, 0x01, 0x12, -0x6c, -0x2e, -0x21, -0x6a, -0x22, 0x04, -0x6d, -0x7e, 0x02, -0x27, -0x6e,
2199 -0x64, -0x70, 0x50, 0x48, -0x24, 0x5a, 0x41, -0x68, -0x3b, 0x47, 0x0d, -0x70, -0x3a, 0x0f, -0x28, -0x40,
2200 0x1a, -0x6c, 0x11, 0x05, 0x5d, 0x5f, 0x5a, 0x0f, 0x56, -0x37, -0x29, 0x5e, 0x56, 0x4b, -0x22, 0x19,
2201 });
2202 try testArgs(@Vector(129, i8), .{
2203 0x0a, -0x15, -0x4a, -0x03, -0x0b, -0x5f, 0x7a, -0x52, 0x44, -0x40, 0x4d, 0x22, 0x51, -0x5c, 0x59, 0x1e,
2204 0x1c, 0x45, -0x31, -0x6f, 0x39, 0x6a, -0x1a, -0x36, 0x70, -0x6e, -0x29, 0x49, 0x4d, 0x29, -0x2f, 0x36,
2205 -0x08, -0x20, 0x18, -0x68, -0x3e, 0x13, -0x69, -0x6d, -0x31, 0x50, 0x16, -0x73, 0x67, 0x05, -0x24, 0x47,
2206 0x1e, 0x06, -0x13, -0x4b, -0x5d, -0x02, -0x4e, 0x01, -0x2a, 0x7b, 0x09, -0x25, 0x48, -0x65, 0x1c, -0x25,
2207 -0x58, 0x35, 0x63, 0x06, 0x30, -0x1d, -0x33, 0x2f, 0x7c, -0x6e, -0x69, -0x57, -0x2d, 0x72, -0x7c, 0x2c,
2208 -0x15, 0x0c, 0x0f, -0x60, -0x01, -0x10, 0x4f, 0x6a, 0x3b, 0x34, -0x18, 0x79, 0x1b, -0x5b, 0x61, 0x17,
2209 -0x24, -0x20, -0x07, -0x16, -0x38, 0x13, 0x44, -0x68, -0x32, -0x12, -0x51, 0x78, -0x6d, -0x24, -0x37, 0x52,
2210 0x27, -0x08, -0x48, -0x57, -0x2c, -0x66, -0x4c, 0x15, 0x67, 0x1f, 0x4e, -0x4b, -0x09, -0x6d, -0x06, 0x53,
2211 -0x74,
2212 });
2213
2214 try testArgs(@Vector(1, u8), .{
2215 0x24,
2216 });
2217 try testArgs(@Vector(2, u8), .{
2218 0xe0, 0xf6,
2219 });
2220 try testArgs(@Vector(3, u8), .{
2221 0xa4, 0xc5, 0xfa,
2222 });
2223 try testArgs(@Vector(4, u8), .{
2224 0x40, 0x1e, 0x54, 0x19,
2225 });
2226 try testArgs(@Vector(5, u8), .{
2227 0xe1, 0xe4, 0x6d, 0xec, 0x24,
2228 });
2229 try testArgs(@Vector(7, u8), .{
2230 0xa1, 0x99, 0x91, 0x20, 0xe3, 0x2a, 0xca,
2231 });
2232 try testArgs(@Vector(8, u8), .{
2233 0x62, 0x03, 0x04, 0xa1, 0x19, 0xa4, 0xbc, 0xec,
2234 });
2235 try testArgs(@Vector(9, u8), .{
2236 0x5a, 0x3e, 0x4c, 0x7a, 0x79, 0xde, 0xff, 0x6b, 0xcd,
2237 });
2238 try testArgs(@Vector(15, u8), .{
2239 0x73, 0xdd, 0x7d, 0x97, 0x0b, 0x27, 0xa9, 0x55, 0x0f, 0x35, 0x07, 0x1f, 0x81, 0xbf, 0x83,
2240 });
2241 try testArgs(@Vector(16, u8), .{
2242 0xef, 0x69, 0x8f, 0xd9, 0x3d, 0xef, 0x2f, 0x43, 0x27, 0x3d, 0x49, 0xcf, 0xed, 0x3d, 0xfb, 0x97,
2243 });
2244 try testArgs(@Vector(17, u8), .{
2245 0x0e, 0xd4, 0x7d, 0x16, 0xe7, 0xf5, 0xf4, 0x54, 0xb6, 0x55, 0x06, 0x17, 0xbe, 0xfd, 0xae, 0x4f,
2246 0x6e,
2247 });
2248 try testArgs(@Vector(31, u8), .{
2249 0x97, 0x3d, 0xed, 0xdf, 0xd9, 0xe9, 0xbd, 0x4b, 0xfb, 0x4f, 0x6b, 0x51, 0xa1, 0xa1, 0xa5, 0x9f,
2250 0x8d, 0xad, 0xdb, 0x27, 0xc7, 0x9f, 0x8f, 0x23, 0x07, 0x15, 0x7b, 0xad, 0x73, 0xc5, 0x9d,
2251 });
2252 try testArgs(@Vector(32, u8), .{
2253 0xed, 0xbc, 0xf3, 0x76, 0xb4, 0xb5, 0xb7, 0xa4, 0x79, 0x73, 0xb7, 0x20, 0xe1, 0xf5, 0x76, 0xef,
2254 0x63, 0xbc, 0x34, 0x20, 0x3e, 0x3e, 0xa4, 0x3a, 0x61, 0xbe, 0xfb, 0xa2, 0xe9, 0x69, 0x6e, 0x7e,
2255 });
2256 try testArgs(@Vector(33, u8), .{
2257 0x65, 0xac, 0x6f, 0x6d, 0x3d, 0x0d, 0x5f, 0x66, 0xba, 0x74, 0x78, 0x6b, 0xf2, 0x7f, 0x41, 0xa9,
2258 0x20, 0x09, 0xbc, 0xd3, 0x97, 0x74, 0x05, 0x09, 0xfa, 0x69, 0x8c, 0x5e, 0xfa, 0xe2, 0x82, 0x10,
2259 0x8d,
2260 });
2261 try testArgs(@Vector(63, u8), .{
2262 0x80, 0x65, 0xd4, 0xed, 0xa5, 0xf1, 0x8d, 0x9d, 0x99, 0x25, 0x6d, 0x28, 0xf9, 0x35, 0xe9, 0x9d,
2263 0x74, 0x7d, 0x00, 0xc5, 0xed, 0x75, 0xb5, 0xec, 0x5c, 0x01, 0xb4, 0x39, 0xb9, 0xc4, 0x34, 0xb0,
2264 0xd1, 0x1c, 0xfd, 0xd9, 0xc5, 0xe1, 0xe1, 0x58, 0x69, 0x40, 0x7d, 0xdc, 0xc0, 0x20, 0x95, 0xb4,
2265 0x15, 0x31, 0x7d, 0x75, 0x49, 0x2c, 0x60, 0x2d, 0x28, 0x61, 0xe4, 0xb8, 0x09, 0x6d, 0xa0,
2266 });
2267 try testArgs(@Vector(64, u8), .{
2268 0x3a, 0x1e, 0x95, 0x0b, 0x8e, 0x91, 0xaf, 0x25, 0x4a, 0x7b, 0xc4, 0xce, 0x72, 0xec, 0x80, 0xc2,
2269 0xae, 0xeb, 0xa3, 0x6a, 0x32, 0xc9, 0x6b, 0x2a, 0xd6, 0x7b, 0x9b, 0x8d, 0xb8, 0xe3, 0x28, 0x07,
2270 0xe1, 0xd0, 0x3d, 0xca, 0xb6, 0x33, 0x18, 0x0a, 0x37, 0xc2, 0x5c, 0x10, 0x1e, 0x93, 0xdf, 0xf9,
2271 0xb5, 0x8c, 0x09, 0x26, 0x91, 0x3b, 0x05, 0x38, 0xd8, 0x4f, 0x24, 0xa3, 0x16, 0x6f, 0x1a, 0x21,
2272 });
2273 try testArgs(@Vector(65, u8), .{
2274 0xc2, 0x3a, 0xa7, 0x9e, 0xd5, 0x94, 0x9a, 0x92, 0xdd, 0x16, 0xf4, 0x07, 0xc1, 0x95, 0xe2, 0xf1,
2275 0xaa, 0x53, 0x45, 0xda, 0xb5, 0x2c, 0x98, 0xda, 0x83, 0xc0, 0x0f, 0x3a, 0x56, 0x58, 0x28, 0xb1,
2276 0xaf, 0x85, 0x3d, 0xbf, 0x3a, 0x4c, 0x39, 0x9b, 0xb8, 0x2d, 0x2e, 0x75, 0x37, 0x50, 0x16, 0xb9,
2277 0xb5, 0xc4, 0x08, 0x99, 0x0d, 0x82, 0x3e, 0x05, 0xe7, 0xdf, 0x48, 0x01, 0x73, 0x85, 0x5d, 0x4d,
2278 0xf5,
2279 });
2280 try testArgs(@Vector(127, u8), .{
2281 0x1e, 0xdb, 0x7a, 0xf1, 0xeb, 0xe7, 0x8e, 0xe1, 0xd2, 0x19, 0x00, 0xc3, 0x8c, 0x64, 0x2c, 0xd0,
2282 0x7e, 0x47, 0x3b, 0x35, 0x6d, 0xdf, 0xfa, 0x2d, 0x42, 0x67, 0xc6, 0x88, 0xf1, 0xd5, 0xca, 0x69,
2283 0xa4, 0xf7, 0xe4, 0xc8, 0xdd, 0x93, 0x6b, 0xd3, 0x11, 0xff, 0xc2, 0xf3, 0xbf, 0xa2, 0x4c, 0xec,
2284 0xce, 0xdc, 0xad, 0xb0, 0xf6, 0x56, 0xcc, 0xe4, 0x3b, 0xeb, 0x10, 0x93, 0xce, 0x86, 0xb1, 0xb8,
2285 0xed, 0x34, 0xad, 0xe2, 0x60, 0x03, 0xff, 0x5c, 0x6d, 0x63, 0xd0, 0xc9, 0x4a, 0x66, 0x83, 0x53,
2286 0x15, 0x0e, 0xd4, 0xc2, 0xa2, 0x7c, 0x21, 0x7b, 0xfc, 0x95, 0xb9, 0x61, 0x92, 0x7c, 0x32, 0xe6,
2287 0x5a, 0x29, 0x90, 0x40, 0x05, 0x86, 0x9a, 0xae, 0x5b, 0x20, 0x3d, 0xd0, 0x03, 0x52, 0x72, 0x5a,
2288 0x21, 0xe1, 0x96, 0xf4, 0xc4, 0x80, 0x9e, 0x9e, 0xe8, 0xe6, 0x4c, 0x78, 0x63, 0x91, 0xd4,
2289 });
2290 try testArgs(@Vector(128, u8), .{
2291 0x72, 0x66, 0xed, 0xd6, 0xfe, 0x4a, 0xed, 0xeb, 0xd9, 0x6e, 0x5c, 0x64, 0xf1, 0xd2, 0xf1, 0x66,
2292 0xe4, 0x77, 0x65, 0x75, 0xe7, 0xd7, 0x78, 0x64, 0xc7, 0x6f, 0xf2, 0x61, 0xf7, 0x63, 0x45, 0xd7,
2293 0x6f, 0x6f, 0x57, 0x5d, 0x44, 0xd5, 0x7b, 0x55, 0x51, 0xdb, 0x4a, 0x55, 0xea, 0xca, 0x75, 0xc5,
2294 0x48, 0x76, 0xc6, 0xfd, 0xd6, 0xde, 0xd7, 0x61, 0x53, 0xc7, 0xcd, 0xce, 0x61, 0xe3, 0x53, 0x6b,
2295 0xf0, 0xe7, 0x65, 0xf4, 0xc8, 0x6b, 0xc4, 0xf6, 0xdc, 0x6d, 0x63, 0xd8, 0x48, 0x4e, 0x60, 0xff,
2296 0x4a, 0xd4, 0xe0, 0x7e, 0x5c, 0x5c, 0xd9, 0x76, 0x4c, 0x69, 0xe4, 0xfc, 0x7e, 0x73, 0x79, 0x54,
2297 0xc6, 0xf4, 0x55, 0x60, 0x65, 0x59, 0x4d, 0xee, 0xda, 0x74, 0xc7, 0x62, 0x7d, 0xf9, 0x75, 0x67,
2298 0x4b, 0xc6, 0x78, 0xf5, 0x5b, 0xca, 0xc5, 0xdd, 0x62, 0x53, 0xd8, 0x46, 0xd6, 0x68, 0xd6, 0x6f,
2299 });
2300 try testArgs(@Vector(129, u8), .{
2301 0x67, 0x97, 0xcc, 0x16, 0x15, 0x7f, 0x6d, 0xf8, 0x3b, 0x96, 0xd0, 0x94, 0x47, 0x7a, 0x71, 0x15,
2302 0x67, 0x08, 0x61, 0xf0, 0xf8, 0x94, 0x34, 0xff, 0x49, 0xb0, 0xf8, 0x07, 0xd3, 0x64, 0xa4, 0xc5,
2303 0x43, 0x67, 0x02, 0xc2, 0xc8, 0x05, 0xf0, 0x47, 0x1f, 0xbf, 0x78, 0x5a, 0x19, 0xf8, 0x75, 0xb7,
2304 0xf7, 0x9e, 0x57, 0x81, 0xa0, 0x59, 0x0c, 0x72, 0x82, 0x3f, 0x6a, 0xd8, 0x6d, 0xef, 0x70, 0x6b,
2305 0x2a, 0xc7, 0x02, 0x16, 0x59, 0xa2, 0xef, 0x0f, 0x4e, 0x5f, 0xdb, 0x43, 0x70, 0x15, 0x51, 0xd1,
2306 0xeb, 0xab, 0x14, 0x07, 0x8d, 0x94, 0x55, 0xfe, 0xd4, 0x56, 0xbc, 0x82, 0xa7, 0xec, 0xe7, 0x69,
2307 0xaa, 0xaa, 0x7d, 0xd4, 0x28, 0x07, 0x60, 0x6e, 0x66, 0x0c, 0xd3, 0xcf, 0x30, 0xee, 0xf0, 0x86,
2308 0x4d, 0xaa, 0xc3, 0x96, 0x8c, 0xe8, 0xb5, 0xfc, 0x23, 0xa4, 0x78, 0x5c, 0x4d, 0xdd, 0x2b, 0x3f,
2309 0xbc,
2310 });
2311
2312 try testArgs(@Vector(1, i9), .{
2313 -0x061,
2314 });
2315 try testArgs(@Vector(2, i9), .{
2316 -0x0bc, -0x0e1,
2317 });
2318 try testArgs(@Vector(3, i9), .{
2319 -0x0e6, -0x024, -0x049,
2320 });
2321 try testArgs(@Vector(4, i9), .{
2322 0x001, 0x059, 0x0e9, -0x031,
2323 });
2324 try testArgs(@Vector(5, i9), .{
2325 0x0e2, 0x052, -0x0d8, 0x05d, -0x0d0,
2326 });
2327 try testArgs(@Vector(7, i9), .{
2328 -0x025, 0x0d5, -0x00d, 0x0d2, 0x0c1, -0x03f, -0x0e8,
2329 });
2330 try testArgs(@Vector(8, i9), .{
2331 -0x031, -0x0bf, -0x0ed, 0x070, 0x055, -0x08e, 0x094, 0x0a2,
2332 });
2333 try testArgs(@Vector(9, i9), .{
2334 -0x003, 0x0fb, 0x0f7, -0x04d, -0x0bd, 0x019, 0x06d, -0x001,
2335 0x06f,
2336 });
2337 try testArgs(@Vector(15, i9), .{
2338 0x06d, -0x0ac, -0x060, -0x0ab, 0x005, -0x0b5, 0x0c4, 0x00d,
2339 0x075, 0x0d1, 0x025, -0x076, 0x01c, 0x01b, 0x0d2,
2340 });
2341 try testArgs(@Vector(16, i9), .{
2342 -0x04a, 0x01f, 0x077, 0x067, -0x0cb, -0x0b9, 0x0af, -0x0b2,
2343 0x045, 0x0dd, 0x0ff, -0x031, -0x0e1, 0x004, -0x02b, -0x0fc,
2344 });
2345 try testArgs(@Vector(17, i9), .{
2346 -0x0c9, -0x0a2, -0x094, -0x0d9, -0x063, -0x07f, -0x019, -0x064,
2347 -0x0c4, -0x060, -0x0b4, -0x0df, -0x08a, -0x0fe, -0x0fa, -0x097,
2348 -0x031,
2349 });
2350 try testArgs(@Vector(31, i9), .{
2351 0x00d, 0x05b, 0x07a, 0x074, -0x069, -0x024, -0x0f5, -0x065,
2352 -0x0b6, -0x08e, 0x0d3, 0x0f6, -0x026, -0x087, 0x0e3, -0x0a0,
2353 0x07c, 0x047, -0x046, -0x0e8, 0x079, 0x018, 0x080, 0x032,
2354 -0x09b, 0x053, 0x095, 0x0d7, 0x02f, -0x0ed, 0x0cf,
2355 });
2356 try testArgs(@Vector(32, i9), .{
2357 -0x0a9, 0x0b8, -0x0e4, 0x0c4, 0x0df, 0x0c2, -0x0d6, 0x04d,
2358 0x0f2, -0x0e7, 0x05b, 0x016, -0x066, 0x0c1, 0x0a4, 0x0c6,
2359 0x0ff, 0x01b, -0x021, 0x005, -0x03d, 0x074, -0x0c1, 0x09a,
2360 0x0b7, -0x0ed, -0x086, -0x003, -0x098, 0x005, 0x05e, 0x0ea,
2361 });
2362 try testArgs(@Vector(33, i9), .{
2363 0x00d, 0x03e, 0x084, 0x092, 0x055, -0x0ed, 0x006, 0x0ca,
2364 0x020, 0x01b, 0x060, 0x058, -0x044, -0x04b, -0x03d, 0x029,
2365 0x04a, 0x090, -0x036, 0x009, 0x02d, 0x098, -0x0fc, -0x029,
2366 -0x05d, -0x0d9, 0x0df, -0x0bf, -0x0ab, 0x010, 0x0aa, -0x0a4,
2367 -0x0d5,
2368 });
2369 try testArgs(@Vector(63, i9), .{
2370 0x028, 0x04e, 0x016, 0x02c, -0x043, -0x0c0, -0x075, -0x078,
2371 0x006, -0x0c9, -0x09d, 0x02e, -0x041, -0x0cb, -0x0b1, -0x052,
2372 -0x01c, -0x059, -0x086, -0x073, 0x042, -0x087, -0x034, 0x0be,
2373 0x0df, -0x07f, -0x031, 0x0d9, 0x0d2, -0x082, 0x080, -0x043,
2374 0x0cb, -0x0b5, 0x049, 0x028, -0x08a, -0x0bf, -0x034, 0x053,
2375 0x02f, -0x007, -0x085, 0x058, -0x0c4, -0x0c3, 0x07c, -0x064,
2376 -0x0d2, 0x027, 0x0fd, 0x0cd, 0x0e5, 0x0cc, -0x055, 0x08b,
2377 0x07e, -0x0e8, -0x052, 0x02a, 0x0b7, 0x0ea, -0x0b0,
2378 });
2379 try testArgs(@Vector(64, i9), .{
2380 -0x088, 0x036, 0x06a, -0x05c, -0x08d, -0x090, 0x0e3, 0x03b,
2381 -0x017, -0x0c7, 0x0a0, 0x0b4, -0x09f, -0x013, -0x0c9, -0x0de,
2382 -0x09d, 0x027, 0x06f, 0x0a2, 0x0a5, -0x099, -0x020, 0x071,
2383 0x0af, 0x0b4, -0x0d1, 0x02f, 0x031, 0x0a4, -0x048, -0x041,
2384 -0x0cf, -0x0c5, -0x020, 0x027, -0x050, 0x075, -0x0c4, 0x07a,
2385 -0x01f, -0x01d, 0x074, 0x03a, 0x038, -0x044, 0x030, -0x0c1,
2386 -0x002, 0x0e5, -0x008, 0x0a4, 0x0be, 0x066, -0x098, 0x021,
2387 -0x0cd, -0x00f, -0x04c, 0x0ab, 0x0f4, -0x0c2, 0x0e3, -0x014,
2388 });
2389 try testArgs(@Vector(65, i9), .{
2390 -0x048, -0x040, -0x0e5, 0x001, 0x056, 0x08a, 0x0ef, -0x01b,
2391 -0x002, -0x03a, 0x04f, -0x091, 0x0c6, 0x0b2, 0x038, 0x02e,
2392 -0x0a5, -0x020, -0x015, -0x068, -0x0d3, 0x081, 0x068, 0x0a3,
2393 0x097, -0x0d0, 0x0af, -0x0ab, -0x0ad, 0x0fa, 0x068, -0x05d,
2394 -0x073, 0x0ad, -0x091, -0x0ff, -0x0f4, -0x0b3, 0x009, -0x0aa,
2395 0x046, 0x0a0, -0x008, 0x018, -0x017, -0x0be, 0x0cb, 0x087,
2396 -0x0e5, 0x0a3, -0x05f, 0x0b5, 0x011, 0x0d1, -0x02e, -0x0a9,
2397 -0x0e1, -0x0be, 0x026, -0x0b2, -0x076, -0x0ec, 0x0bf, 0x0a0,
2398 0x063,
2399 });
2400
2401 try testArgs(@Vector(1, u9), .{
2402 0x180,
2403 });
2404 try testArgs(@Vector(2, u9), .{
2405 0x1d9, 0x15c,
2406 });
2407 try testArgs(@Vector(3, u9), .{
2408 0x112, 0x150, 0x0b7,
2409 });
2410 try testArgs(@Vector(4, u9), .{
2411 0x0b7, 0x1aa, 0x043, 0x033,
2412 });
2413 try testArgs(@Vector(5, u9), .{
2414 0x1e8, 0x012, 0x087, 0x039, 0x01f,
2415 });
2416 try testArgs(@Vector(7, u9), .{
2417 0x100, 0x0e9, 0x026, 0x08b, 0x071, 0x1e2, 0x15e,
2418 });
2419 try testArgs(@Vector(8, u9), .{
2420 0x007, 0x1c3, 0x113, 0x01d, 0x0be, 0x181, 0x110, 0x1d0,
2421 });
2422 try testArgs(@Vector(9, u9), .{
2423 0x073, 0x033, 0x1bd, 0x1ee, 0x1ab, 0x17c, 0x0bf, 0x1ba,
2424 0x1aa,
2425 });
2426 try testArgs(@Vector(15, u9), .{
2427 0x1bd, 0x039, 0x1ae, 0x1de, 0x12c, 0x05d, 0x09d, 0x118,
2428 0x068, 0x1b8, 0x1ed, 0x17d, 0x13a, 0x1ca, 0x01a,
2429 });
2430 try testArgs(@Vector(16, u9), .{
2431 0x186, 0x1ce, 0x134, 0x197, 0x144, 0x043, 0x051, 0x01d,
2432 0x158, 0x025, 0x13d, 0x0d0, 0x1d6, 0x0c2, 0x13f, 0x02f,
2433 });
2434 try testArgs(@Vector(17, u9), .{
2435 0x13b, 0x161, 0x0c7, 0x1ba, 0x0db, 0x1d3, 0x117, 0x091,
2436 0x17f, 0x1a4, 0x187, 0x0f2, 0x081, 0x02b, 0x02a, 0x1c4,
2437 0x0e8,
2438 });
2439 try testArgs(@Vector(31, u9), .{
2440 0x1f2, 0x1ba, 0x18a, 0x1d4, 0x072, 0x0c8, 0x05e, 0x0f8,
2441 0x0c0, 0x1c2, 0x002, 0x078, 0x002, 0x054, 0x188, 0x132,
2442 0x15e, 0x1ee, 0x16a, 0x0bc, 0x1a4, 0x1e6, 0x05c, 0x034,
2443 0x126, 0x020, 0x1b6, 0x07e, 0x02e, 0x12e, 0x004,
2444 });
2445 try testArgs(@Vector(32, u9), .{
2446 0x0e4, 0x0af, 0x1ab, 0x1e2, 0x096, 0x1c0, 0x117, 0x1c9,
2447 0x189, 0x0a0, 0x1e9, 0x060, 0x094, 0x11a, 0x0ff, 0x0ce,
2448 0x047, 0x083, 0x107, 0x0d4, 0x068, 0x13d, 0x06a, 0x164,
2449 0x0f1, 0x180, 0x059, 0x042, 0x0bd, 0x189, 0x157, 0x021,
2450 });
2451 try testArgs(@Vector(33, u9), .{
2452 0x048, 0x059, 0x170, 0x12f, 0x042, 0x11c, 0x059, 0x07c,
2453 0x13a, 0x13c, 0x07a, 0x047, 0x03e, 0x03e, 0x05d, 0x02d,
2454 0x17b, 0x056, 0x174, 0x077, 0x03b, 0x146, 0x15c, 0x031,
2455 0x057, 0x066, 0x04d, 0x058, 0x04a, 0x065, 0x044, 0x037,
2456 0x07d,
2457 });
2458 try testArgs(@Vector(63, u9), .{
2459 0x175, 0x0ca, 0x0df, 0x1c8, 0x0c0, 0x0cd, 0x16b, 0x042,
2460 0x1c9, 0x16d, 0x174, 0x14c, 0x064, 0x0d4, 0x153, 0x06f,
2461 0x1d5, 0x1d3, 0x050, 0x170, 0x0e8, 0x1db, 0x16e, 0x176,
2462 0x14d, 0x160, 0x0d7, 0x1cc, 0x1fd, 0x0de, 0x168, 0x0fd,
2463 0x175, 0x04a, 0x0cd, 0x0f7, 0x164, 0x1c1, 0x05f, 0x14a,
2464 0x1f6, 0x145, 0x0c2, 0x07e, 0x145, 0x0ea, 0x176, 0x154,
2465 0x0c9, 0x1f5, 0x1c4, 0x1f6, 0x15e, 0x1e0, 0x043, 0x1cb,
2466 0x0c9, 0x041, 0x1e2, 0x1e7, 0x14a, 0x074, 0x0f3,
2467 });
2468 try testArgs(@Vector(64, u9), .{
2469 0x169, 0x193, 0x044, 0x083, 0x13a, 0x06b, 0x1cc, 0x02a,
2470 0x04d, 0x078, 0x04d, 0x1bb, 0x14a, 0x1b4, 0x09a, 0x0eb,
2471 0x191, 0x044, 0x16c, 0x1f3, 0x04d, 0x19d, 0x0b7, 0x0de,
2472 0x15e, 0x04a, 0x184, 0x187, 0x1e0, 0x114, 0x0da, 0x055,
2473 0x1b1, 0x09d, 0x0aa, 0x183, 0x148, 0x103, 0x045, 0x0c4,
2474 0x117, 0x121, 0x1c5, 0x133, 0x1c1, 0x039, 0x023, 0x038,
2475 0x102, 0x01c, 0x1e0, 0x188, 0x149, 0x048, 0x075, 0x0b9,
2476 0x0c0, 0x1ee, 0x0ed, 0x171, 0x087, 0x177, 0x05f, 0x0f2,
2477 });
2478 try testArgs(@Vector(65, u9), .{
2479 0x00d, 0x10e, 0x05f, 0x138, 0x0c8, 0x138, 0x07f, 0x1fc,
2480 0x04e, 0x16a, 0x15d, 0x0de, 0x07d, 0x05f, 0x17d, 0x0f9,
2481 0x1bf, 0x14c, 0x08e, 0x06a, 0x029, 0x158, 0x188, 0x1bf,
2482 0x159, 0x1dc, 0x12f, 0x16c, 0x1fb, 0x0bc, 0x07c, 0x109,
2483 0x149, 0x0ce, 0x0db, 0x169, 0x10e, 0x178, 0x179, 0x028,
2484 0x098, 0x099, 0x0ff, 0x1c9, 0x17e, 0x0fa, 0x158, 0x01b,
2485 0x1bf, 0x0f8, 0x01a, 0x13f, 0x0b8, 0x0dd, 0x138, 0x029,
2486 0x13d, 0x1bb, 0x0eb, 0x05a, 0x13f, 0x1bc, 0x10e, 0x0ac,
2487 0x139,
2488 });
2489
2490 try testArgs(@Vector(1, i15), .{
2491 0x3e64,
2492 });
2493 try testArgs(@Vector(2, i15), .{
2494 0x1459, 0x24f0,
2495 });
2496 try testArgs(@Vector(3, i15), .{
2497 0x022d, 0x2f6e, 0x3993,
2498 });
2499 try testArgs(@Vector(4, i15), .{
2500 0x2a50, 0x1e30, -0x2e82, -0x0138,
2501 });
2502 try testArgs(@Vector(5, i15), .{
2503 0x1ea5, -0x175a, -0x38c9, -0x076d, -0x2dd6,
2504 });
2505 try testArgs(@Vector(7, i15), .{
2506 -0x1bea, 0x26d2, -0x34b4, 0x3192, 0x3f05, -0x1277, 0x35c0,
2507 });
2508 try testArgs(@Vector(8, i15), .{
2509 -0x00cc, 0x3ef1, 0x01af, -0x147a, -0x3b72, 0x04a2, 0x1dec, -0x0620,
2510 });
2511 try testArgs(@Vector(9, i15), .{
2512 -0x1d58, -0x28a6, 0x39cc, -0x219d, -0x1e51, 0x1f67, 0x2fef, 0x26e1,
2513 -0x3e39,
2514 });
2515 try testArgs(@Vector(15, i15), .{
2516 -0x2671, 0x00cb, 0x36c0, 0x2092, -0x3fb7, 0x2858, 0x00cd, 0x34a6,
2517 0x3f9c, -0x13b2, 0x3ff9, 0x0c90, 0x0f2c, 0x02a9, -0x3174,
2518 });
2519 try testArgs(@Vector(16, i15), .{
2520 0x0255, 0x1966, 0x3135, 0x399a, 0x21b9, 0x3a16, -0x1e8b, 0x1893,
2521 0x0d4d, -0x3b4d, -0x36e3, -0x1197, -0x2645, -0x3da3, -0x05d0, -0x1191,
2522 });
2523 try testArgs(@Vector(17, i15), .{
2524 -0x0805, -0x1a74, -0x22cd, -0x24d3, -0x0c9a, 0x158b, -0x1c5a, 0x318b,
2525 0x1b43, -0x2ca2, -0x10ea, -0x366b, -0x3435, 0x3d02, 0x0d77, -0x36d8,
2526 -0x3065,
2527 });
2528 try testArgs(@Vector(31, i15), .{
2529 -0x31db, -0x245a, 0x0894, 0x3405, -0x277c, -0x1680, 0x0a8c, 0x3425,
2530 -0x093b, -0x1df4, 0x1e07, 0x2dba, 0x2482, -0x0ac3, 0x00f6, -0x30b0,
2531 -0x19d2, -0x3c32, -0x3591, 0x1bfc, 0x1b37, 0x2d2a, -0x2de3, 0x0c23,
2532 -0x2860, 0x03ea, 0x0253, 0x34b4, -0x100c, 0x1133, -0x0950,
2533 });
2534 try testArgs(@Vector(32, i15), .{
2535 0x14a2, 0x0b4a, -0x061e, 0x1cd0, 0x15a7, 0x263c, 0x31a2, 0x37e5,
2536 -0x04a3, -0x0ce2, -0x27dc, 0x1fc1, 0x118d, 0x2ca4, 0x00b8, -0x388d,
2537 -0x3c35, 0x294c, -0x0866, 0x22b0, -0x0088, -0x2609, 0x0e46, 0x38ba,
2538 -0x28fc, -0x011c, 0x0f58, 0x0552, -0x2108, -0x2dc9, -0x2a76, -0x1568,
2539 });
2540 try testArgs(@Vector(33, i15), .{
2541 0x3d65, 0x12d4, -0x0ee6, 0x1df0, -0x1701, -0x2fe6, -0x2113, -0x09cd,
2542 -0x01dc, -0x3b32, 0x0406, -0x0db7, -0x3a96, -0x187c, -0x3eb5, -0x07a5,
2543 0x1390, -0x256d, -0x16c8, -0x2d79, -0x091e, -0x1426, -0x2bc7, 0x395f,
2544 0x1f6e, -0x3412, -0x22db, 0x3e3c, 0x01ed, -0x3223, 0x0206, 0x252c,
2545 0x0149,
2546 });
2547 try testArgs(@Vector(63, i15), .{
2548 0x160d, -0x0fc7, 0x0990, -0x1180, 0x1131, -0x1993, 0x1dd8, -0x2c33,
2549 -0x3424, -0x1ee4, -0x1e07, 0x2a01, 0x1a01, 0x03ec, -0x0fa8, 0x12b4,
2550 -0x1824, -0x2b8b, -0x0357, -0x2440, 0x0721, 0x303d, 0x092d, -0x196c,
2551 -0x1070, 0x066c, -0x1684, -0x1dd4, -0x2ba8, 0x11b9, -0x1460, -0x0b7c,
2552 0x325c, 0x2f60, 0x25b1, 0x342c, -0x051f, -0x25ac, 0x2d61, -0x0a80,
2553 0x11f9, -0x0e64, -0x2053, 0x24b1, -0x2088, -0x358c, 0x24f5, 0x24b8,
2554 0x3581, 0x2fb0, -0x0a6f, 0x18b5, 0x0041, -0x2d93, 0x0901, -0x18fb,
2555 0x37cc, -0x3954, -0x3097, 0x38d5, 0x06d8, -0x3fb0, -0x2e80,
2556 });
2557 try testArgs(@Vector(64, i15), .{
2558 -0x3948, -0x22d7, 0x0ad3, -0x304e, 0x0b52, -0x1674, -0x0283, -0x11d9,
2559 -0x35ca, -0x15bd, 0x341d, 0x108e, -0x0688, 0x2cb8, -0x0dea, 0x35f9,
2560 -0x34e1, 0x39b1, 0x2bd2, -0x2515, 0x32ce, 0x33aa, -0x3cda, 0x0be0,
2561 0x3596, 0x16de, 0x2df1, -0x3ef0, -0x3e7b, -0x1f4b, 0x18cb, -0x1e56,
2562 0x237d, -0x1cbb, 0x12c4, -0x2b65, 0x3967, -0x0cc7, 0x2a17, 0x3a54,
2563 0x27b0, 0x0225, 0x33a3, -0x1a7e, 0x0756, 0x0d35, -0x0ab8, 0x2b53,
2564 0x2751, 0x0784, 0x1ea0, -0x2a27, -0x02c6, 0x06da, 0x0e3c, -0x1662,
2565 -0x291f, -0x324d, 0x32a8, -0x2326, 0x3b6e, 0x2519, -0x15bb, 0x1ca3,
2566 });
2567 try testArgs(@Vector(65, i15), .{
2568 0x3e90, -0x315b, -0x376e, -0x04ed, -0x308a, 0x2469, 0x0f32, -0x2555,
2569 0x3b7a, 0x3830, 0x13f2, 0x0dc0, 0x06d7, 0x1953, 0x3945, -0x18ee,
2570 -0x135e, -0x08da, 0x29e5, -0x0fb4, -0x02a6, -0x3844, 0x2e42, -0x24c6,
2571 -0x04b6, 0x0055, 0x22fc, 0x05a3, -0x1e25, -0x12f9, 0x215d, 0x34b8,
2572 -0x28d8, 0x0f90, 0x307f, -0x0849, -0x330a, 0x2ecf, 0x1243, 0x2bf6,
2573 0x070b, 0x2636, -0x27a2, 0x2b60, -0x03e8, -0x3492, 0x0d5d, 0x39e2,
2574 0x2b82, 0x0e2d, -0x3d26, 0x3b02, 0x3302, 0x254a, -0x0f5c, -0x25bf,
2575 -0x0979, -0x22d6, 0x098e, -0x0be8, 0x3022, -0x2918, -0x2327, -0x219e,
2576 0x3b74,
2577 });
2578
2579 try testArgs(@Vector(1, u15), .{
2580 0x1107,
2581 });
2582 try testArgs(@Vector(2, u15), .{
2583 0x5408, 0x1b06,
2584 });
2585 try testArgs(@Vector(3, u15), .{
2586 0x5487, 0x6f41, 0x4f6f,
2587 });
2588 try testArgs(@Vector(4, u15), .{
2589 0x233c, 0x7b1b, 0x74d0, 0x11dc,
2590 });
2591 try testArgs(@Vector(5, u15), .{
2592 0x2fe4, 0x7db8, 0x470a, 0x69d8, 0x7f73,
2593 });
2594 try testArgs(@Vector(7, u15), .{
2595 0x7fb2, 0x0395, 0x0464, 0x05ab, 0x6470, 0x1ed6, 0x5301,
2596 });
2597 try testArgs(@Vector(8, u15), .{
2598 0x053d, 0x4d61, 0x4d29, 0x01a2, 0x6f27, 0x7b7e, 0x68f0, 0x7e35,
2599 });
2600 try testArgs(@Vector(9, u15), .{
2601 0x57c1, 0x0325, 0x519c, 0x5b51, 0x0119, 0x395a, 0x7f1f, 0x03c7,
2602 0x178e,
2603 });
2604 try testArgs(@Vector(15, u15), .{
2605 0x651c, 0x4234, 0x7ce4, 0x4e77, 0x5668, 0x1a1c, 0x6a80, 0x0823,
2606 0x7b0c, 0x12e2, 0x70de, 0x1952, 0x0bc9, 0x6bc1, 0x4c7f,
2607 });
2608 try testArgs(@Vector(16, u15), .{
2609 0x19fd, 0x0bf2, 0x0c0f, 0x1f92, 0x0ad3, 0x2e77, 0x2904, 0x2429,
2610 0x36a3, 0x1cf7, 0x3069, 0x04ec, 0x03ea, 0x1839, 0x0928, 0x2248,
2611 });
2612 try testArgs(@Vector(17, u15), .{
2613 0x219f, 0x2472, 0x28fa, 0x6733, 0x2c3c, 0x2a9b, 0x0e15, 0x6d19,
2614 0x2d13, 0x58ff, 0x78b2, 0x1fd9, 0x20f9, 0x6cb5, 0x33d2, 0x24db,
2615 0x089c,
2616 });
2617 try testArgs(@Vector(31, u15), .{
2618 0x11ed, 0x77f9, 0x4737, 0x1f92, 0x15ee, 0x61f7, 0x410c, 0x27a4,
2619 0x0910, 0x2f1d, 0x4721, 0x0be5, 0x5501, 0x5b40, 0x3db3, 0x0bf5,
2620 0x750f, 0x4f99, 0x4138, 0x5144, 0x4147, 0x13ed, 0x69cd, 0x374d,
2621 0x29cd, 0x45a4, 0x4189, 0x5178, 0x33c8, 0x5ffd, 0x433e,
2622 });
2623 try testArgs(@Vector(32, u15), .{
2624 0x4d4e, 0x6f97, 0x09aa, 0x12ee, 0x7322, 0x7add, 0x28f7, 0x3a07,
2625 0x058a, 0x73fc, 0x37a8, 0x1737, 0x763d, 0x1a18, 0x7dc5, 0x24bc,
2626 0x50f2, 0x2486, 0x4217, 0x635a, 0x6c7d, 0x2e1c, 0x72fe, 0x6e52,
2627 0x707b, 0x38d4, 0x04b0, 0x6ca3, 0x7e65, 0x5233, 0x06c7, 0x6e0d,
2628 });
2629 try testArgs(@Vector(33, u15), .{
2630 0x2382, 0x4c0e, 0x7720, 0x0233, 0x6894, 0x4aaa, 0x7a09, 0x2089,
2631 0x3fb8, 0x5f9b, 0x7628, 0x04b0, 0x0692, 0x690a, 0x49be, 0x5ffb,
2632 0x5a4f, 0x29c2, 0x308b, 0x6b3c, 0x5c24, 0x3764, 0x2c53, 0x44d5,
2633 0x3863, 0x7757, 0x57c6, 0x3654, 0x575c, 0x77c5, 0x4c94, 0x61f4,
2634 0x67d2,
2635 });
2636 try testArgs(@Vector(63, u15), .{
2637 0x422e, 0x5fbc, 0x2366, 0x145a, 0x3c76, 0x4892, 0x5208, 0x5fd4,
2638 0x7e52, 0x74a2, 0x3834, 0x201c, 0x05d6, 0x7d02, 0x5f6a, 0x0d96,
2639 0x72a4, 0x3304, 0x6514, 0x4d6c, 0x5b56, 0x697c, 0x5f62, 0x164a,
2640 0x6260, 0x267e, 0x3620, 0x372a, 0x7218, 0x5a6e, 0x0a82, 0x07e4,
2641 0x7a04, 0x5e62, 0x38ca, 0x4b64, 0x3106, 0x21b6, 0x41a4, 0x6828,
2642 0x4838, 0x3574, 0x5d9e, 0x55ee, 0x352a, 0x049e, 0x678e, 0x7604,
2643 0x6af0, 0x17a0, 0x74e4, 0x252e, 0x4c2e, 0x3744, 0x61e4, 0x1cca,
2644 0x3ade, 0x69cc, 0x6066, 0x7d6e, 0x1afa, 0x6daa, 0x5fa6,
2645 });
2646 try testArgs(@Vector(64, u15), .{
2647 0x4163, 0x5b5d, 0x0d65, 0x56b2, 0x7788, 0x3b80, 0x0faf, 0x3292,
2648 0x75ec, 0x5cba, 0x3a09, 0x60c0, 0x2840, 0x2798, 0x2957, 0x7a3b,
2649 0x4fb6, 0x478d, 0x38f8, 0x2cc2, 0x0d5b, 0x63f5, 0x208f, 0x26e2,
2650 0x0924, 0x411a, 0x6d93, 0x7c19, 0x45fb, 0x6f45, 0x5581, 0x1e1d,
2651 0x4a7f, 0x7fd8, 0x3ce3, 0x7244, 0x4f7b, 0x2327, 0x6e09, 0x2c02,
2652 0x55d9, 0x7f8d, 0x438b, 0x4bf4, 0x389b, 0x2c96, 0x75e9, 0x1aad,
2653 0x0bc0, 0x2de3, 0x6dc8, 0x0d5b, 0x35f9, 0x21ce, 0x73fd, 0x30db,
2654 0x25d0, 0x2ca9, 0x3478, 0x0f73, 0x726b, 0x5e32, 0x0ae8, 0x67a4,
2655 });
2656 try testArgs(@Vector(65, u15), .{
2657 0x7ea5, 0x6508, 0x140c, 0x68c4, 0x1b2a, 0x01ab, 0x27cd, 0x7943,
2658 0x4209, 0x48a7, 0x6d81, 0x727f, 0x2e0c, 0x709a, 0x04c0, 0x1ac4,
2659 0x6efd, 0x57db, 0x593b, 0x2331, 0x6a45, 0x2011, 0x3a1a, 0x7d33,
2660 0x3053, 0x42d1, 0x08c1, 0x28ea, 0x1f0f, 0x0abc, 0x2051, 0x5125,
2661 0x7298, 0x0bfd, 0x75b9, 0x4cfe, 0x0b22, 0x2a06, 0x4f2d, 0x29a1,
2662 0x7a91, 0x4268, 0x72db, 0x11c1, 0x04e4, 0x35dd, 0x29c6, 0x411d,
2663 0x11de, 0x2399, 0x61ec, 0x2386, 0x5d27, 0x033d, 0x1c83, 0x3e41,
2664 0x5915, 0x4aa1, 0x28ef, 0x385e, 0x64bc, 0x1d0b, 0x7f84, 0x1546,
2665 0x7d72,
2666 });
2667
2668 try testArgs(@Vector(1, i16), .{
2669 -0x3d83,
2670 });
2671 try testArgs(@Vector(2, i16), .{
2672 -0x3e9f, -0x6fd5,
2673 });
2674 try testArgs(@Vector(3, i16), .{
2675 0x2a8d, 0x0b83, 0x26e9,
2676 });
2677 try testArgs(@Vector(4, i16), .{
2678 -0x6d64, 0x7972, -0x4200, -0x102f,
2679 });
2680 try testArgs(@Vector(5, i16), .{
2681 -0x4e21, 0x1c47, -0x2fd6, 0x3235, -0x4484,
2682 });
2683 try testArgs(@Vector(7, i16), .{
2684 0x7846, 0x49c6, -0x46d0, 0x5866, 0x440f, 0x710c, -0x1b93,
2685 });
2686 try testArgs(@Vector(8, i16), .{
2687 -0x6ca8, 0x38df, -0x2893, 0x0ec8, -0x4c26, -0x5d34, -0x61f4, 0x45fa,
2688 });
2689 try testArgs(@Vector(9, i16), .{
2690 0x5b79, 0x00e5, 0x4b71, -0x102b, 0x0ae1, 0x1c7f, 0x247e, 0x5445,
2691 0x5270,
2692 });
2693 try testArgs(@Vector(15, i16), .{
2694 0x6cdd, -0x3e62, 0x3681, -0x409c, -0x2ecf, 0x5437, -0x540f, -0x4fa8,
2695 -0x0846, -0x62be, -0x70ea, 0x6020, -0x2b00, -0x29af, 0x6fe3,
2696 });
2697 try testArgs(@Vector(16, i16), .{
2698 0x7e6b, -0x1a1c, 0x6a16, 0x2a32, -0x52f2, 0x350f, 0x76ae, -0x52ac,
2699 0x620e, -0x4ab1, -0x18b8, 0x379a, -0x5c9d, 0x6c61, 0x6615, 0x7c8c,
2700 });
2701 try testArgs(@Vector(17, i16), .{
2702 -0x08d6, 0x760a, -0x79f6, 0x5529, 0x0440, 0x5636, 0x3376, -0x7ec8,
2703 -0x2c94, -0x74a0, 0x5a88, -0x4429, -0x47b4, 0x3127, -0x2099, -0x192b,
2704 -0x3512,
2705 });
2706 try testArgs(@Vector(31, i16), .{
2707 0x6e1c, 0x7729, -0x31f6, 0x199d, 0x1cb1, -0x60fd, 0x1cae, -0x26f7,
2708 -0x00f1, -0x3755, 0x6dae, 0x7ca8, -0x3059, 0x0398, 0x0130, 0x032c,
2709 0x1c33, -0x5df1, 0x4628, 0x30ba, -0x0842, 0x32ad, 0x7489, -0x3d75,
2710 0x0a20, 0x151e, 0x0b06, 0x6220, -0x105f, 0x168a, 0x6d02,
2711 });
2712 try testArgs(@Vector(32, i16), .{
2713 -0x788f, -0x1481, 0x546e, 0x2bc4, 0x2cdb, -0x0afe, 0x3d1d, -0x0019,
2714 -0x1559, -0x5ad7, 0x1741, -0x3445, -0x510c, -0x28a7, 0x4407, -0x03c0,
2715 -0x7339, -0x2038, 0x24c8, 0x30c0, 0x1d35, -0x76df, -0x03c7, 0x29a8,
2716 -0x000a, 0x47c7, -0x648b, -0x7610, 0x755b, -0x21ec, -0x1106, 0x5255,
2717 });
2718 try testArgs(@Vector(33, i16), .{
2719 -0x008a, -0x19d2, -0x49af, -0x67c4, -0x586f, -0x2365, -0x1a6d, -0x2535,
2720 -0x2ff2, -0x598c, -0x6dd3, -0x2ca0, -0x2e5c, -0x2513, -0x312a, -0x0d80,
2721 -0x703c, -0x16bf, -0x46e0, -0x7725, -0x6fe0, -0x7f8e, -0x7e83, -0x6b72,
2722 -0x492d, -0x234f, -0x5862, -0x0134, -0x4b2a, -0x50f4, -0x3b89, -0x25ce,
2723 -0x43ec,
2724 });
2725 try testArgs(@Vector(63, i16), .{
2726 -0x6e10, -0x1886, -0x0821, 0x5f19, -0x3542, -0x42cf, 0x22f6, 0x5418,
2727 -0x134f, -0x5ea5, 0x5f93, -0x26ef, 0x49f6, 0x2bf3, -0x5126, 0x5ebf,
2728 -0x2c82, 0x4ddb, -0x7a10, 0x29d3, 0x5b11, 0x171f, -0x2587, -0x1eea,
2729 -0x0e2f, 0x1151, -0x6243, -0x2682, 0x0ab5, 0x39b7, 0x5799, 0x20b6,
2730 0x7919, 0x6cd9, 0x7874, 0x6f72, -0x2128, 0x2990, 0x4d5f, -0x7621,
2731 -0x77e1, -0x54c2, -0x344f, 0x3f93, -0x7d43, 0x0450, 0x3353, -0x414c,
2732 0x633d, 0x2831, 0x2d32, -0x4f48, -0x4604, 0x6c38, -0x72e5, 0x25b5,
2733 -0x310b, 0x3a17, 0x0119, -0x56e8, 0x6332, -0x29a4, -0x5c90,
2734 });
2735 try testArgs(@Vector(64, i16), .{
2736 -0x11a2, 0x1875, 0x295d, 0x26a4, -0x61a0, 0x0ce3, 0x7700, -0x3cbe,
2737 0x606c, 0x2b3c, -0x209f, 0x2330, -0x3389, 0x6aa5, -0x2396, -0x5700,
2738 0x3e00, -0x4ed1, -0x228f, 0x7ccf, -0x0c7b, -0x4ea4, 0x5c3b, -0x3d8a,
2739 -0x7320, 0x02b7, 0x72db, 0x0542, -0x32a6, -0x29c3, -0x5566, 0x66f5,
2740 0x5562, 0x3604, -0x4117, 0x1942, -0x3430, 0x4b70, 0x2ea0, -0x2326,
2741 -0x715d, -0x292a, -0x16ab, -0x1471, 0x4ce7, 0x5246, 0x4672, 0x342c,
2742 -0x2dff, 0x6788, -0x1114, -0x4756, 0x77b4, 0x41a3, -0x01dc, 0x6671,
2743 -0x6255, -0x0bd2, 0x534e, -0x628c, 0x03d2, -0x7835, -0x4720, 0x5293,
2744 });
2745 try testArgs(@Vector(65, i16), .{
2746 0x2743, -0x47c2, 0x39e3, 0x3e4e, -0x46aa, 0x729e, 0x7707, 0x4697,
2747 -0x4726, -0x06d6, -0x1d9e, -0x71bd, 0x0efa, -0x3cb9, -0x23ad, -0x75a1,
2748 -0x3652, -0x3a95, -0x04a1, -0x66ae, -0x59c9, -0x7f55, 0x523f, -0x6d8a,
2749 0x272a, -0x3955, 0x0206, 0x73d6, -0x2375, 0x42a7, 0x3986, 0x179b,
2750 0x6e63, -0x7119, -0x73b2, -0x22b1, 0x28ab, 0x1fae, -0x65f1, 0x4a4a,
2751 -0x37aa, -0x5cb6, -0x3c42, -0x16c2, 0x3e0a, -0x7f7a, 0x15fb, 0x52c7,
2752 -0x018a, 0x0176, -0x4b2d, -0x13e5, 0x057f, -0x3ba9, -0x5805, 0x45d6,
2753 -0x787e, 0x2f2a, 0x7082, -0x0b5e, 0x16c6, -0x7a92, -0x68c6, -0x7869,
2754 -0x63ce,
2755 });
2756
2757 try testArgs(@Vector(1, u16), .{
2758 0x275d,
2759 });
2760 try testArgs(@Vector(2, u16), .{
2761 0x72e1, 0xd759,
2762 });
2763 try testArgs(@Vector(3, u16), .{
2764 0x366a, 0x4e97, 0xeb63,
2765 });
2766 try testArgs(@Vector(4, u16), .{
2767 0x57a8, 0x7ae8, 0x6e0f, 0xb7ac,
2768 });
2769 try testArgs(@Vector(5, u16), .{
2770 0x0ff3, 0xc907, 0xd1b7, 0x4820, 0x6e24,
2771 });
2772 try testArgs(@Vector(7, u16), .{
2773 0x5ca4, 0x5fff, 0x6fea, 0xc089, 0xdfbc, 0x6808, 0xd12f,
2774 });
2775 try testArgs(@Vector(8, u16), .{
2776 0xfcb4, 0xf7a2, 0xb84f, 0x9eaa, 0x3c5b, 0x9092, 0xf2ce, 0x10a0,
2777 });
2778 try testArgs(@Vector(9, u16), .{
2779 0x2c7d, 0xfa5b, 0x8039, 0xdb41, 0xe676, 0x2674, 0x7c5f, 0xc575,
2780 0x9d24,
2781 });
2782 try testArgs(@Vector(15, u16), .{
2783 0x0da3, 0x8306, 0x644f, 0xfad0, 0x09b6, 0x3936, 0x1883, 0xf19d,
2784 0xad5c, 0x07bd, 0x4e7d, 0xbce0, 0xa55e, 0xf653, 0xeea3,
2785 });
2786 try testArgs(@Vector(16, u16), .{
2787 0xc8d7, 0x16bd, 0x5e6d, 0x4ec3, 0x95f2, 0x5876, 0x4b0c, 0x5286,
2788 0x62d1, 0xebb7, 0x8db9, 0xecdc, 0x1bd7, 0x7b0f, 0x1fd8, 0x7f17,
2789 });
2790 try testArgs(@Vector(17, u16), .{
2791 0x24c8, 0xdc8d, 0x81db, 0xdfb9, 0xeac1, 0x84a6, 0x549c, 0xf3bd,
2792 0xd2e4, 0xf089, 0xcebb, 0x4af0, 0xab83, 0xf9fe, 0xacc0, 0x2295,
2793 0xdff9,
2794 });
2795 try testArgs(@Vector(31, u16), .{
2796 0x403b, 0x11b5, 0xf09e, 0x7524, 0xc26a, 0x43b1, 0x06cd, 0xea16,
2797 0xfd76, 0xd91e, 0xd79f, 0xbeb6, 0x4677, 0xf9ca, 0x8595, 0x8d8a,
2798 0xe17d, 0xf13e, 0x4f1f, 0x0fdd, 0x522b, 0x6376, 0x85f4, 0x98b2,
2799 0xc2dc, 0xdac3, 0x195e, 0x66d2, 0x0261, 0x83b3, 0x5394,
2800 });
2801 try testArgs(@Vector(32, u16), .{
2802 0x28bd, 0x1845, 0xe8b0, 0x41bb, 0xec1f, 0xa140, 0x666a, 0x7dad,
2803 0x448e, 0x972b, 0x81db, 0xe582, 0xce85, 0x8927, 0x05d8, 0x7cf1,
2804 0x1f69, 0x1087, 0xf2df, 0xfcf0, 0x98a2, 0x4fe5, 0x0482, 0x9599,
2805 0x2964, 0x5275, 0xc3f4, 0x3a58, 0xca17, 0x955b, 0x59d2, 0x40b0,
2806 });
2807 try testArgs(@Vector(33, u16), .{
2808 0x55cb, 0x6633, 0x78ad, 0x9412, 0xdbc4, 0x209a, 0x62c1, 0xf6ac,
2809 0xee41, 0x2273, 0xb4e4, 0x8be3, 0x07df, 0xf834, 0x052d, 0x3b82,
2810 0xf4e7, 0xbf41, 0xeb0d, 0x92ab, 0x88d9, 0x9409, 0xc131, 0x0f66,
2811 0x7b4f, 0x41f6, 0xb59b, 0xd18d, 0x1235, 0x119d, 0x9dbf, 0xa16c,
2812 0xc22e,
2813 });
2814 try testArgs(@Vector(63, u16), .{
2815 0x292b, 0x76cb, 0xbb04, 0x3962, 0xe678, 0x54a4, 0x13ba, 0x6419,
2816 0x646c, 0x5241, 0x5b13, 0xb54a, 0x4967, 0xfbed, 0xaf9d, 0xde8f,
2817 0x68ae, 0xa5be, 0xf3f9, 0x0c40, 0x1c32, 0xa8b3, 0xb19e, 0xd093,
2818 0x8e8c, 0xcb05, 0xe5c3, 0x2e06, 0xcfe2, 0xdd4c, 0x66af, 0x9fb9,
2819 0x4a8f, 0xe4be, 0xe203, 0x77cb, 0x70cd, 0x871d, 0xb16a, 0x4f34,
2820 0xfe15, 0x8ddd, 0xf389, 0x38ae, 0x31ff, 0xe966, 0x2470, 0x9c16,
2821 0x2c85, 0xc2c4, 0x94d1, 0x693c, 0xcad6, 0x4eb2, 0x0892, 0x5ede,
2822 0x6509, 0x7de4, 0xeeb6, 0xe686, 0x3b36, 0x0600, 0x79d2,
2823 });
2824 try testArgs(@Vector(64, u16), .{
2825 0x3896, 0x7e5b, 0x2e2f, 0xae17, 0xdf3f, 0xa69e, 0x7a2f, 0xe468,
2826 0x5410, 0x80fa, 0xfcea, 0xabcd, 0x6349, 0x7477, 0x7855, 0xa0ae,
2827 0xb797, 0xcb52, 0x0569, 0x579a, 0x0117, 0x7254, 0x3458, 0xde51,
2828 0x1900, 0x3d53, 0x25b5, 0x3b2a, 0x04d1, 0x4ab4, 0x5f5e, 0xf56a,
2829 0x066b, 0x7e74, 0xc044, 0x7eb7, 0x5b9f, 0xa7d9, 0xfeda, 0x6b3a,
2830 0xfbd5, 0xa8d8, 0xe4ab, 0x33b8, 0xfca7, 0x519e, 0xc49a, 0x3340,
2831 0xe08e, 0x8e0e, 0xf0ca, 0x87d9, 0x8965, 0x61f0, 0xe3da, 0x482e,
2832 0x3909, 0xe40f, 0x96f3, 0x494b, 0xdde3, 0x0361, 0xbc80, 0x3d92,
2833 });
2834 try testArgs(@Vector(65, u16), .{
2835 0xba2b, 0xfd21, 0x640f, 0x550d, 0x3a95, 0x8969, 0x9455, 0xe1cd,
2836 0x4d01, 0x1d2f, 0x97f9, 0xeb9f, 0xefd9, 0xfc03, 0x5527, 0xabc9,
2837 0x8f8d, 0x8435, 0x065d, 0xf11b, 0x61eb, 0x9ef5, 0x1051, 0x58df,
2838 0xe1d5, 0xeab7, 0x8753, 0x6fbb, 0xf28f, 0x7bc7, 0x025b, 0x29d3,
2839 0x59d3, 0x2a0d, 0x10f5, 0x5ac9, 0x0d33, 0x56ff, 0x5213, 0xf7e5,
2840 0xa1d5, 0xefaf, 0xec75, 0x36bb, 0x1641, 0x1a5b, 0x099f, 0x726d,
2841 0x7e19, 0x0b09, 0x9085, 0xdecf, 0x1e23, 0xa92b, 0xe9f3, 0x0873,
2842 0xfcb5, 0x9afd, 0x702f, 0x2785, 0x3b0b, 0x03d5, 0xb43b, 0x5a0d,
2843 0x413f,
2844 });
2845
2846 try testArgs(@Vector(1, i17), .{
2847 0x0202b,
2848 });
2849 try testArgs(@Vector(2, i17), .{
2850 -0x0c0d7, -0x066d3,
2851 });
2852 try testArgs(@Vector(3, i17), .{
2853 0x0f620, 0x07c24, 0x04e4b,
2854 });
2855 try testArgs(@Vector(4, i17), .{
2856 0x0fb3b, 0x03d42, 0x03e54, 0x0af90,
2857 });
2858 try testArgs(@Vector(5, i17), .{
2859 0x0a9cf, -0x05bed, 0x0e110, 0x0994b,
2860 -0x0ece6,
2861 });
2862 try testArgs(@Vector(7, i17), .{
2863 0x046d3, 0x04690, -0x076c0, 0x08758,
2864 -0x07460, -0x039bf, 0x0a20e,
2865 });
2866 try testArgs(@Vector(8, i17), .{
2867 0x06e32, -0x0474e, 0x0e18f, -0x066dd,
2868 0x06e45, -0x0eaf6, 0x05365, -0x0f05d,
2869 });
2870 try testArgs(@Vector(9, i17), .{
2871 -0x058ab, -0x046ff, -0x012a9, 0x0ea46,
2872 -0x05320, 0x03073, 0x0eb08, 0x06b31,
2873 -0x02cf0,
2874 });
2875 try testArgs(@Vector(15, i17), .{
2876 -0x034cb, 0x0ecd5, -0x00dfc, 0x0f1f4,
2877 0x03c82, 0x040c3, 0x01a20, 0x00e95,
2878 0x0d9d7, -0x0ed69, -0x0012d, 0x03906,
2879 0x04d22, 0x0b604, -0x0b30b,
2880 });
2881 try testArgs(@Vector(16, i17), .{
2882 0x064ad, -0x014c9, 0x0f32f, 0x03808,
2883 -0x029e8, 0x0b9bc, -0x04ff1, -0x010fb,
2884 0x05d25, 0x01fac, -0x0e463, 0x02cbf,
2885 -0x015e4, 0x0c69d, -0x0facb, -0x0ba53,
2886 });
2887 try testArgs(@Vector(17, i17), .{
2888 0x0c52e, 0x0fa5d, -0x02799, 0x0c4e2,
2889 -0x046e3, 0x0c498, 0x0b1de, -0x05e9e,
2890 -0x041d2, -0x06633, 0x0dbcb, -0x00636,
2891 0x0a4ec, 0x0dc90, 0x0839f, -0x026d4,
2892 -0x06c4e,
2893 });
2894 try testArgs(@Vector(31, i17), .{
2895 0x03016, -0x0f230, -0x03a13, 0x0e818,
2896 -0x01bb0, 0x070ef, 0x09372, 0x077f0,
2897 0x0e933, 0x0701f, 0x08dcb, -0x0ca62,
2898 -0x09016, 0x05b53, 0x0a2ed, -0x031dd,
2899 0x052d7, -0x034a2, -0x0a200, 0x095fd,
2900 -0x077a7, 0x0388c, 0x0560c, 0x09aab,
2901 0x0b1f1, 0x04a01, -0x0b3a2, 0x091e5,
2902 0x0b34d, 0x043ad, 0x0f724,
2903 });
2904 try testArgs(@Vector(32, i17), .{
2905 0x0728d, 0x0410d, 0x0c361, 0x087b4,
2906 -0x00ccd, 0x0ac76, 0x0fd60, -0x0bc3a,
2907 0x0fa1c, 0x07886, -0x0d023, 0x034fd,
2908 -0x0ad34, 0x00953, 0x02c9f, -0x0423e,
2909 -0x0804c, -0x0c794, -0x0052e, 0x0ed76,
2910 0x087b6, -0x0ad23, -0x018b7, 0x0e471,
2911 -0x03cdd, 0x0b991, -0x00ac2, -0x08600,
2912 -0x0f09b, 0x0d8c6, 0x0c5f6, 0x0909d,
2913 });
2914 try testArgs(@Vector(33, i17), .{
2915 0x0008f, 0x0955f, 0x0468f, 0x0f764,
2916 -0x0c02a, -0x09c51, -0x077b2, 0x04b66,
2917 0x0ff45, 0x04914, 0x06c4e, 0x021fd,
2918 0x09def, 0x0a0ff, 0x0eeb5, 0x08c27,
2919 0x009b7, 0x01e47, -0x07f19, -0x00de1,
2920 -0x03409, -0x093ec, 0x01fc5, 0x0d2ac,
2921 -0x02a02, -0x0e383, -0x0dc33, 0x09c24,
2922 0x0e007, 0x07e4f, -0x0b7b1, -0x0f623,
2923 0x0d21e,
2924 });
2925
2926 try testArgs(@Vector(1, u17), .{
2927 0x11623,
2928 });
2929 try testArgs(@Vector(2, u17), .{
2930 0x15a11, 0x19fd4,
2931 });
2932 try testArgs(@Vector(3, u17), .{
2933 0x1ab5b, 0x0506b, 0x07d78,
2934 });
2935 try testArgs(@Vector(4, u17), .{
2936 0x0768c, 0x08441, 0x1f5a8, 0x09628,
2937 });
2938 try testArgs(@Vector(5, u17), .{
2939 0x1e9cd, 0x02822, 0x1e69a, 0x1a728,
2940 0x14b1d,
2941 });
2942 try testArgs(@Vector(7, u17), .{
2943 0x001b3, 0x06963, 0x012fc, 0x13c02,
2944 0x04f1e, 0x12aa0, 0x11097,
2945 });
2946 try testArgs(@Vector(8, u17), .{
2947 0x1c9e5, 0x1700f, 0x10903, 0x01130,
2948 0x07523, 0x1689c, 0x11a72, 0x00db7,
2949 });
2950 try testArgs(@Vector(9, u17), .{
2951 0x1d512, 0x1fa25, 0x18e17, 0x1e0b9,
2952 0x0e1ca, 0x090a9, 0x19617, 0x08522,
2953 0x1dd51,
2954 });
2955 try testArgs(@Vector(15, u17), .{
2956 0x15869, 0x150c4, 0x1d78b, 0x139c7,
2957 0x0a0d0, 0x1d336, 0x0cda4, 0x0d1f5,
2958 0x07020, 0x0645a, 0x12f59, 0x18ae7,
2959 0x0a2a6, 0x08fde, 0x15b31,
2960 });
2961 try testArgs(@Vector(16, u17), .{
2962 0x13eb8, 0x1a482, 0x17589, 0x0ed6b,
2963 0x11029, 0x02430, 0x1fb7a, 0x0c905,
2964 0x17584, 0x191d1, 0x1ae69, 0x0d313,
2965 0x06b92, 0x08f72, 0x1b00b, 0x08d76,
2966 });
2967 try testArgs(@Vector(17, u17), .{
2968 0x0bde4, 0x08ec6, 0x138dc, 0x14f4d,
2969 0x169aa, 0x12db2, 0x0d0fc, 0x1af45,
2970 0x0a2f9, 0x08f46, 0x1bcb6, 0x1848f,
2971 0x0cffe, 0x0748d, 0x07ca8, 0x15191,
2972 0x0f9f6,
2973 });
2974 try testArgs(@Vector(31, u17), .{
2975 0x07d61, 0x10245, 0x1df09, 0x1aaec,
2976 0x0204d, 0x0a101, 0x131f1, 0x07340,
2977 0x09510, 0x04f60, 0x1946d, 0x1e8c1,
2978 0x06030, 0x1923c, 0x031ed, 0x147e1,
2979 0x1199d, 0x12621, 0x16f85, 0x0b180,
2980 0x0dbd1, 0x10901, 0x1d188, 0x1fa81,
2981 0x0ba30, 0x155dd, 0x01ed4, 0x1b8f9,
2982 0x13bec, 0x13361, 0x06efd,
2983 });
2984 try testArgs(@Vector(32, u17), .{
2985 0x0a881, 0x17906, 0x1bce8, 0x1b384,
2986 0x03462, 0x0cfcb, 0x08246, 0x0f001,
2987 0x0c683, 0x1c0cc, 0x026c9, 0x14306,
2988 0x0cdca, 0x12348, 0x0f246, 0x0a420,
2989 0x1a56a, 0x046ab, 0x004c0, 0x1bc02,
2990 0x14f6f, 0x1a66c, 0x0b6cf, 0x07167,
2991 0x09702, 0x07dab, 0x14667, 0x02ce9,
2992 0x00a03, 0x09aca, 0x11746, 0x125c2,
2993 });
2994 try testArgs(@Vector(33, u17), .{
2995 0x1bde5, 0x1910a, 0x0d78d, 0x177d0,
2996 0x17c40, 0x0123b, 0x12446, 0x1ceca,
2997 0x1e79e, 0x15013, 0x19cf7, 0x15016,
2998 0x17566, 0x1c0e8, 0x12da4, 0x0fb6c,
2999 0x1c442, 0x1e8e9, 0x1aa74, 0x0ba54,
3000 0x14fb7, 0x1aab0, 0x030a5, 0x041ed,
3001 0x05d98, 0x1d1ed, 0x0083d, 0x128f7,
3002 0x1e93a, 0x14a00, 0x0ac7c, 0x1c052,
3003 0x17fd7,
3004 });
3005
3006 try testArgs(@Vector(1, i31), .{
3007 -0x3f5c3228,
3008 });
3009 try testArgs(@Vector(2, i31), .{
3010 -0x307f1325, -0x0e59e507,
3011 });
3012 try testArgs(@Vector(3, i31), .{
3013 0x24544bf1, -0x104aebe0, -0x371b3c03,
3014 });
3015 try testArgs(@Vector(4, i31), .{
3016 -0x3616321a, 0x3b48f54b, -0x2790d613, 0x10122d7e,
3017 });
3018 try testArgs(@Vector(5, i31), .{
3019 0x2bfa57aa, -0x1392b765, -0x05d1942f, 0x3c868ece,
3020 0x32bc4fbc,
3021 });
3022 try testArgs(@Vector(7, i31), .{
3023 0x327ca4d4, -0x262b2dfc, 0x3d97b95c, -0x350d9a5f,
3024 0x0e9f3560, 0x1e7abb41, 0x38f6b827,
3025 });
3026 try testArgs(@Vector(8, i31), .{
3027 -0x3facecea, -0x267ee011, -0x3d4c39b3, -0x3681b9cc,
3028 -0x0cc15566, 0x1ac2d80d, 0x0b73bf53, 0x3ac83f51,
3029 });
3030 try testArgs(@Vector(9, i31), .{
3031 0x140fe5f4, -0x316532d0, 0x3bfa5171, -0x10ec6a3b,
3032 0x24c600b5, -0x1105f5c3, 0x02ede996, -0x10ae24a9,
3033 -0x3cf0b288,
3034 });
3035 try testArgs(@Vector(15, i31), .{
3036 0x39c4bcec, 0x11477e23, 0x1fe75212, -0x338b45ac,
3037 0x3674ff0a, 0x0d6158db, 0x0daeb9cc, 0x28163c31,
3038 -0x246068ac, 0x2759ba5a, -0x0c332dfb, -0x2e940d23,
3039 -0x202082f6, -0x28f86695, -0x138ee60f,
3040 });
3041 try testArgs(@Vector(16, i31), .{
3042 0x299b126f, -0x036abc93, -0x316932c9, -0x000ec330,
3043 0x2b5b55e5, 0x1152d33c, -0x38795956, -0x21775cfb,
3044 0x33b2f235, -0x176a2b8a, -0x35a414c1, -0x05cea30b,
3045 -0x15d3fae1, -0x25099671, -0x2b129fc8, 0x1d85ef27,
3046 });
3047 try testArgs(@Vector(17, i31), .{
3048 -0x223aadf8, 0x33234ff2, -0x1db41796, 0x22e5237c,
3049 -0x1410d17e, -0x1ed10316, 0x30dff9be, 0x074e62a4,
3050 0x2390942e, 0x226001ee, -0x21707fa4, -0x133ec03e,
3051 0x3a1b2d46, -0x008bb082, 0x2a9b9b06, 0x1d9d86d8,
3052 -0x155eec72,
3053 });
3054 try testArgs(@Vector(31, i31), .{
3055 -0x069867e7, 0x3e0186da, 0x051764c2, 0x285c56eb,
3056 0x13ec479a, -0x15186c10, -0x3a8075f2, -0x024b4bfe,
3057 -0x05b08735, 0x09370e80, 0x27d62abd, -0x0b7b1b4a,
3058 -0x150b9bf2, 0x1f605503, 0x1c8775dc, 0x3ff9f92c,
3059 -0x2dd39a05, -0x21cf63bb, 0x3152b0af, 0x32a0bd47,
3060 0x3bc898df, -0x1fbadec1, -0x3d109aa9, 0x396300a9,
3061 -0x3fa15657, 0x385611db, -0x194a13eb, 0x023adda1,
3062 0x051dc63e, 0x35aff5e7, -0x0e90420b,
3063 });
3064 try testArgs(@Vector(32, i31), .{
3065 0x112b30e4, -0x0da9c739, -0x10174644, 0x157e992d,
3066 0x19473df4, 0x3b194945, -0x2e6a085c, 0x2eae0b44,
3067 -0x0258e533, -0x3954621c, -0x3bac17c9, -0x12d5ca74,
3068 0x27f994df, -0x0a1af60a, -0x283eea84, -0x304d9adc,
3069 -0x0dcbf719, -0x26a8ad2a, -0x26da09cc, 0x3e897a4d,
3070 -0x33e8b253, 0x173b1b37, 0x1949b69f, -0x3e40aae4,
3071 0x34b03b07, -0x30c7c779, -0x2817e4d2, -0x13c5b391,
3072 0x314f4544, -0x07966d92, -0x07e94444, 0x3e344c6d,
3073 });
3074 try testArgs(@Vector(33, i31), .{
3075 0x10c8e0c8, -0x08367b53, -0x039c1426, 0x0f5abdc6,
3076 -0x38664c7c, -0x1ffeeff5, 0x0e89e2fa, -0x047559e3,
3077 0x3b1a6467, -0x070764a4, -0x1227de1b, 0x05f20469,
3078 -0x2926e5ee, 0x1a026b3a, 0x1f0122b1, -0x2bc4e9ac,
3079 -0x01173206, 0x2b69af3f, -0x00052dce, 0x2e9332f3,
3080 -0x1ef69302, 0x1f20844a, -0x03cc2644, -0x206d68c4,
3081 -0x15c57bf9, 0x211a14ec, -0x35fe6ae4, -0x0ac708c4,
3082 0x3829ca16, -0x11476434, 0x2402fbb8, 0x0c78da7b,
3083 0x3e40fb9a,
3084 });
3085
3086 try testArgs(@Vector(1, u31), .{
3087 0x2c6b497e,
3088 });
3089 try testArgs(@Vector(2, u31), .{
3090 0x0f9eb70f, 0x688a61f6,
3091 });
3092 try testArgs(@Vector(3, u31), .{
3093 0x05045dcc, 0x5dafb08f, 0x72314cfd,
3094 });
3095 try testArgs(@Vector(4, u31), .{
3096 0x5bdb842a, 0x2cbf89db, 0x01ca9eb3, 0x0c06df26,
3097 });
3098 try testArgs(@Vector(5, u31), .{
3099 0x31a4c3c4, 0x3db09048, 0x0b169f8c, 0x35feaf93,
3100 0x0e3ab88b,
3101 });
3102 try testArgs(@Vector(7, u31), .{
3103 0x1f83eae7, 0x5b49e350, 0x0c324714, 0x46a152c4,
3104 0x5fa04eeb, 0x1339412b, 0x6c8113e9,
3105 });
3106 try testArgs(@Vector(8, u31), .{
3107 0x611bb129, 0x5d2aaa83, 0x33fe2094, 0x4196b6e7,
3108 0x4149fddc, 0x5439adc5, 0x4b88bbfd, 0x1c217427,
3109 });
3110 try testArgs(@Vector(9, u31), .{
3111 0x3aed8e55, 0x24cc6983, 0x202a1a4a, 0x2b2c7a1f,
3112 0x0b356172, 0x6d5d4290, 0x705bab83, 0x231da4ac,
3113 0x3c8da70f,
3114 });
3115 try testArgs(@Vector(15, u31), .{
3116 0x598fde59, 0x7e4123c8, 0x3eff4e38, 0x2278501a,
3117 0x7d0181ac, 0x2fd9cbc9, 0x58e249ee, 0x52ebe5ed,
3118 0x6d26aabf, 0x64e0376b, 0x511f2fc9, 0x5ccbbacd,
3119 0x7218842b, 0x01d2076a, 0x34427409,
3120 });
3121 try testArgs(@Vector(16, u31), .{
3122 0x528a3575, 0x563d5ea6, 0x09958a5c, 0x1b78e232,
3123 0x46df9a07, 0x1e25132f, 0x4cb32673, 0x0e62352e,
3124 0x05cf2d1e, 0x48f3e722, 0x6c8bd3ea, 0x3a3d18c1,
3125 0x11a6c988, 0x0a1d6527, 0x091272d9, 0x4217d85a,
3126 });
3127 try testArgs(@Vector(17, u31), .{
3128 0x46cfe55d, 0x71e0a946, 0x69be47c6, 0x447c001a,
3129 0x4d955f10, 0x3de520fe, 0x71172bfe, 0x3565930f,
3130 0x57a0a6e1, 0x6141f169, 0x05f34daf, 0x08394745,
3131 0x367b0a18, 0x0f03b206, 0x06b738c5, 0x6c99eefc,
3132 0x16080d55,
3133 });
3134 try testArgs(@Vector(31, u31), .{
3135 0x63d9eb09, 0x3471a86f, 0x75c2261b, 0x139932ae,
3136 0x4440b017, 0x37927e7e, 0x066348e7, 0x3539f369,
3137 0x4b68b426, 0x7eeb5e62, 0x102acfd3, 0x19a2be5e,
3138 0x130b4bcd, 0x046017c3, 0x14d105eb, 0x08d03f5c,
3139 0x5f2b7043, 0x5d9947ea, 0x6290f828, 0x22ba5819,
3140 0x348a8398, 0x73cb09bb, 0x2baaeb81, 0x23432105,
3141 0x41a27099, 0x45c95496, 0x450a1390, 0x3ef286c7,
3142 0x1239a9f3, 0x4e02de22, 0x6b026142,
3143 });
3144 try testArgs(@Vector(32, u31), .{
3145 0x16d1447a, 0x512f1aec, 0x7e0b81bc, 0x61e01788,
3146 0x4b04fa9e, 0x5347bc4c, 0x54dfd0ba, 0x5e6f604d,
3147 0x7c030feb, 0x4b752bfc, 0x7a6f0ff8, 0x37ab4908,
3148 0x75a473dc, 0x4f47141b, 0x48273189, 0x6c0dab29,
3149 0x4db28e4d, 0x38499d28, 0x413d5398, 0x6e1a6e2f,
3150 0x6c371778, 0x573122ed, 0x4eca8dec, 0x578b3f3f,
3151 0x44227c9b, 0x3ed38de8, 0x5bda357b, 0x221e6b2d,
3152 0x26adc9a9, 0x03cbf79a, 0x4c1b67ae, 0x23bc3b4f,
3153 });
3154 try testArgs(@Vector(33, u31), .{
3155 0x30658443, 0x6e6b28e0, 0x4ddcf7fa, 0x213d137a,
3156 0x5665eb75, 0x7584b67f, 0x752e0758, 0x2219b79f,
3157 0x63260da1, 0x63eb63c0, 0x5e6379fa, 0x5e6092ba,
3158 0x3b9ef10c, 0x70007fa1, 0x5168d49d, 0x500165f2,
3159 0x3cce8495, 0x2ccc37a0, 0x77355fd8, 0x6db8713a,
3160 0x32be3c7f, 0x6c5d8fd6, 0x0661a0d7, 0x2addb6f5,
3161 0x7f6ffe40, 0x3e044497, 0x31aa9ce7, 0x68f27de6,
3162 0x29ac6c5a, 0x33a9ac02, 0x1cebe9be, 0x008f2d15,
3163 0x114ece53,
3164 });
3165
3166 try testArgs(@Vector(1, i32), .{
3167 -0x57167162,
3168 });
3169 try testArgs(@Vector(2, i32), .{
3170 -0x0afc5ccf, 0x7c289f05,
3171 });
3172 try testArgs(@Vector(3, i32), .{
3173 -0x62b04b64, -0x749219be, -0x5f6f4126,
3174 });
3175 try testArgs(@Vector(4, i32), .{
3176 -0x057cc6de, -0x76130bb3, -0x58686a0f, 0x7c2f79d8,
3177 });
3178 try testArgs(@Vector(5, i32), .{
3179 0x13e42c0c, -0x30bf125a, 0x6cfc00ce, 0x45cd40ec,
3180 0x2b23633c,
3181 });
3182 try testArgs(@Vector(7, i32), .{
3183 -0x05e67091, 0x610956e2, 0x6f3044e4, 0x55f7c13a,
3184 -0x025bd536, 0x7e9b59d9, -0x2643b7f9,
3185 });
3186 try testArgs(@Vector(8, i32), .{
3187 0x02242952, 0x1c9e0018, 0x0202ca9a, 0x613a616e,
3188 0x1a7d609f, 0x08df0618, 0x67d9f0bb, 0x62f5eaa7,
3189 });
3190 try testArgs(@Vector(9, i32), .{
3191 -0x560db429, 0x1b2a7851, -0x08c78275, -0x44062b5d,
3192 0x15a9056e, 0x67387ef1, -0x1a9e2649, -0x2b0a542c,
3193 0x4a753362,
3194 });
3195 try testArgs(@Vector(15, i32), .{
3196 0x65c0a394, -0x5776b4dc, 0x4a04bafd, 0x05cebaa5,
3197 -0x2d850047, -0x54125808, -0x1ad50b8e, -0x18155809,
3198 -0x49d97a00, 0x7b4a7238, -0x14e94ce1, -0x3eb4baec,
3199 -0x31e938da, -0x2478216f, 0x3f44efb9,
3200 });
3201 try testArgs(@Vector(16, i32), .{
3202 0x19eef434, -0x52773350, -0x17d21248, -0x5344d662,
3203 -0x0e9bddfd, 0x336d8629, -0x4923275c, -0x4d2cdcde,
3204 0x265c60b0, -0x1ea18441, -0x60576071, 0x4305bca0,
3205 0x3d91f4a8, 0x5c7c692f, 0x5d9fee97, -0x37b8cee3,
3206 });
3207 try testArgs(@Vector(17, i32), .{
3208 0x4adeebba, -0x4ea233b1, -0x13f148a7, 0x2b84b4ce,
3209 0x6a3696fd, 0x5c8fbdf8, -0x79b39489, 0x6a2e0352,
3210 0x28de7593, 0x36afb0c1, 0x35e7b750, -0x798a2b63,
3211 -0x6dc14668, 0x3bb49d78, 0x12efb113, 0x08d78e70,
3212 0x7e4e6b26,
3213 });
3214 try testArgs(@Vector(31, i32), .{
3215 0x3313989c, -0x6114ea29, 0x24a5413f, 0x5403f71c,
3216 0x6cd915b8, 0x1491266e, -0x33c2d8e9, -0x7758cc5f,
3217 0x53928da8, -0x0e3fa3e8, 0x69f14e4e, -0x0238a052,
3218 0x32c41453, 0x022675a1, -0x345e5943, 0x3cd5446e,
3219 0x5f581036, 0x129b3b3a, -0x4872b525, 0x3d0e213b,
3220 0x5a548a0d, -0x70911c7d, 0x552ffd1a, -0x66dc962a,
3221 -0x0e6ad8fe, 0x759e3543, -0x3b9be89f, -0x49b6d632,
3222 -0x4ce29b04, 0x3faa898d, -0x4f32bd09,
3223 });
3224 try testArgs(@Vector(32, i32), .{
3225 -0x352ba6a8, -0x74bb8a9e, 0x5328eafd, -0x26f782be,
3226 -0x5a68e0ce, 0x0a28563b, -0x1f3389ce, 0x60a45ab6,
3227 0x4b3d4026, 0x3d1fe7fe, -0x7417a38d, -0x1907cd8d,
3228 0x797cc6d0, 0x431a0fe1, 0x5999b33f, 0x3b4692d2,
3229 0x23bf1d7e, 0x39db2e30, 0x4d11c405, 0x322da6ce,
3230 0x1101d6f7, -0x063b8045, -0x56e008cc, -0x109cef25,
3231 -0x11cd8d98, -0x7a6d3339, -0x5b96ffcb, 0x29ffea46,
3232 0x00241d06, -0x6666bd45, -0x0fef4041, 0x51ea50c3,
3233 });
3234 try testArgs(@Vector(33, i32), .{
3235 0x41619032, 0x76143ec6, 0x066d2c66, 0x65a92981,
3236 -0x1f054f6a, 0x1336e00d, 0x06c8d108, -0x792c47c5,
3237 -0x3aa8fce1, 0x571943c1, -0x3a04cfdc, 0x70d9852a,
3238 -0x2a504bb2, -0x6bab1ae8, 0x52df682a, 0x7645a921,
3239 0x21d00f11, 0x2288afe8, 0x3608772c, -0x5dda74e7,
3240 0x26a729b3, 0x62a08b04, -0x48b9799b, 0x764ff513,
3241 -0x5c0d65a9, -0x79476e8c, -0x38f32713, -0x5aa0a813,
3242 0x53c26d99, 0x01b24f7c, -0x6e562527, -0x28dbdacf,
3243 -0x0af1abe6,
3244 });
3245
3246 try testArgs(@Vector(1, u32), .{
3247 0x417af061,
3248 });
3249 try testArgs(@Vector(2, u32), .{
3250 0x67d25405, 0x24530653,
3251 });
3252 try testArgs(@Vector(3, u32), .{
3253 0xea5a8586, 0xa486d5c7, 0x441951fa,
856 });3254 });
857 try testArgs(@Vector(4, i4), .{3255 try testArgs(@Vector(4, u32), .{
858 -0x3, 0x4, 0x2, -0x2,3256 0x1330c66d, 0x190e4b87, 0xc40a763c, 0x1e04942a,
859 });3257 });
860 try testArgs(@Vector(8, i4), .{3258 try testArgs(@Vector(5, u32), .{
861 -0x6, 0x3, 0x4, 0x3, 0x4, -0x8, -0x3, -0x5,3259 0xf2417484, 0x4628508b, 0xe5ce63a1, 0xedff9058,
3260 0x67e5a112,
862 });3261 });
863 try testArgs(@Vector(16, i4), .{3262 try testArgs(@Vector(7, u32), .{
864 -0x3, 0x5, 0x4, -0x1, 0x2, 0x7, 0x1, 0x0, -0x2, 0x6, -0x1, -0x3, 0x5, -0x3, 0x3, -0x7,3263 0x294d002e, 0xb11b9a83, 0xd41dbc28, 0x956abbab,
3264 0x27aa5a4d, 0x236634c4, 0xfcb579e8,
865 });3265 });
866 try testArgs(@Vector(32, i4), .{3266 try testArgs(@Vector(8, u32), .{
867 -0x4, -0x2, 0x6, 0x6, -0x5, -0x8, -0x8, 0x7, -0x5, -0x5, 0x4, 0x5, -0x6, -0x1, 0x2, 0x0, -0x1, 0x3, 0x5, 0x1, -0x4, 0x2, -0x8, -0x6, -0x1, 0x3, 0x1, -0x8, 0x5, -0x6, 0x0, 0x2,3267 0xdaaaf612, 0x3e5ba097, 0xaab27d52, 0xc4057607,
3268 0xc2377f4c, 0xaed82c05, 0x681c6c6e, 0xd33108ab,
868 });3269 });
869 try testArgs(@Vector(64, i4), .{3270 try testArgs(@Vector(9, u32), .{
870 -0x2, 0x6, -0x5, 0x2, 0x6, -0x5, 0x1, -0x6, -0x6, 0x3, -0x5, 0x5, 0x0, 0x3, -0x6, -0x2, 0x0, -0x5, -0x2, -0x7, 0x6, 0x6, -0x6, 0x5, -0x1, 0x1, -0x5, 0x4, -0x1, 0x2, 0x5, 0x0,3271 0xb286c075, 0x95e2365c, 0x7db24272, 0x4d87734d,
871 0x6, -0x1, -0x3, -0x1, 0x0, 0x0, -0x2, -0x5, 0x7, 0x4, -0x7, 0x4, -0x8, 0x2, -0x1, -0x5, 0x4, -0x6, -0x3, 0x6, -0x6, 0x5, 0x0, 0x6, -0x3, 0x3, -0x4, -0x4, 0x3, -0x6, -0x5, -0x3,3272 0x74b07a88, 0xc7f664a7, 0x94b83937, 0x61edd88b,
3273 0xddc2ce66,
872 });3274 });
873 try testArgs(@Vector(128, i4), .{3275 try testArgs(@Vector(15, u32), .{
874 -0x2, 0x7, -0x7, 0x5, 0x4, -0x8, -0x4, 0x2, -0x6, 0x6, 0x3, 0x4, -0x6, -0x3, 0x1, -0x3, 0x4, -0x4, 0x0, -0x5, 0x4, -0x2, 0x4, -0x6, 0x4, 0x7, -0x6, 0x3, -0x6, 0x5, 0x7, -0x7,3276 0x37c1fd6a, 0x72b89c34, 0x9835fc75, 0x232fed02,
875 -0x8, 0x0, 0x2, -0x6, -0x4, 0x5, -0x2, -0x6, 0x2, -0x3, -0x8, -0x3, -0x1, 0x4, 0x7, -0x2, 0x7, -0x3, 0x5, 0x3, -0x6, 0x5, -0x2, -0x5, -0x1, 0x5, -0x6, -0x2, -0x5, -0x4, -0x7, -0x3,3277 0x33cc380a, 0xf8bc2d4f, 0x91944e7a, 0x70825173,
876 -0x4, -0x4, 0x6, -0x8, -0x2, 0x3, 0x1, 0x7, 0x1, -0x2, -0x7, -0x2, -0x8, -0x6, -0x6, 0x0, -0x3, -0x4, 0x3, -0x5, -0x3, -0x5, 0x6, 0x5, -0x7, -0x8, -0x5, -0x6, -0x2, -0x5, 0x5, -0x5,3278 0x78662e47, 0x9c6f9d5e, 0xb60e6b29, 0xabf644ab,
877 0x0, -0x6, -0x3, 0x0, 0x7, 0x6, -0x6, -0x7, -0x4, -0x5, 0x3, 0x2, 0x7, -0x3, -0x2, 0x4, -0x4, -0x5, 0x6, 0x1, 0x7, -0x5, -0x6, 0x0, 0x0, -0x8, 0x4, -0x1, -0x7, 0x0, 0x0, 0x5,3279 0x43f862a8, 0xffab8ea1, 0xf66309e0,
878 });
879 try testArgs(@Vector(256, i4), .{
880 -0x7, 0x4, 0x7, -0x5, 0x6, -0x2, 0x6, -0x5, 0x5, 0x5, 0x3, -0x3, -0x5, 0x0, 0x5, 0x1, 0x4, -0x1, 0x4, -0x8, -0x4, -0x8, 0x2, -0x8, 0x3, 0x1, -0x7, -0x3, -0x1, 0x5, -0x5, -0x8,
881 -0x3, -0x3, -0x5, 0x6, 0x0, 0x4, -0x3, -0x5, 0x0, 0x5, -0x1, -0x3, -0x4, -0x3, 0x6, -0x3, -0x1, 0x5, -0x3, -0x3, 0x0, 0x3, -0x2, -0x1, -0x5, 0x3, 0x2, -0x8, 0x7, -0x8, 0x6, 0x4,
882 -0x5, -0x4, 0x5, 0x5, 0x6, -0x3, 0x2, -0x4, 0x3, 0x7, 0x6, -0x2, -0x8, -0x1, -0x8, 0x2, 0x4, 0x1, 0x2, -0x1, 0x5, 0x1, 0x3, 0x1, 0x3, -0x5, 0x3, -0x5, -0x5, 0x5, -0x6, -0x7,
883 0x0, 0x0, -0x3, 0x6, 0x0, 0x5, 0x3, 0x0, 0x0, -0x1, -0x6, -0x4, 0x5, -0x8, -0x4, -0x3, -0x3, 0x2, -0x5, -0x4, 0x4, 0x5, -0x6, -0x3, 0x2, 0x5, -0x7, -0x6, 0x3, 0x7, -0x2, 0x6,
884 0x2, 0x3, 0x7, 0x3, 0x2, -0x5, 0x4, 0x5, -0x4, -0x7, 0x2, 0x2, -0x5, 0x7, -0x3, -0x8, 0x2, -0x4, 0x2, 0x4, 0x5, -0x7, 0x7, -0x6, 0x4, -0x8, -0x1, 0x7, 0x0, -0x4, 0x6, -0x8,
885 -0x5, 0x4, -0x5, 0x1, 0x6, -0x8, -0x1, -0x3, -0x5, 0x7, 0x1, 0x0, -0x3, 0x4, -0x5, -0x7, -0x5, 0x2, 0x0, -0x1, -0x4, 0x0, 0x5, 0x6, -0x3, -0x4, -0x2, 0x4, -0x1, -0x8, 0x0, 0x6,
886 0x7, 0x1, 0x5, 0x2, -0x4, -0x7, -0x3, -0x3, -0x8, -0x8, -0x3, -0x4, 0x5, -0x5, -0x2, -0x2, 0x1, 0x1, 0x1, -0x8, 0x5, 0x4, 0x5, 0x6, 0x3, 0x0, -0x2, -0x1, 0x4, -0x4, -0x5, 0x0,
887 -0x7, -0x8, -0x2, 0x1, 0x5, 0x4, 0x5, -0x7, 0x3, 0x2, 0x2, 0x5, -0x3, 0x7, -0x4, 0x0, -0x3, -0x2, -0x5, 0x1, 0x1, -0x4, -0x4, 0x1, -0x8, -0x3, 0x6, -0x8, -0x2, 0x5, 0x7, -0x3,
888 });
889
890 try testArgs(@Vector(3, u4), .{ 0, 1, 1 << 3 });
891 try testArgs(@Vector(1, u4), .{
892 0xb,
893 });3280 });
894 try testArgs(@Vector(2, u4), .{3281 try testArgs(@Vector(16, u32), .{
895 0x3, 0x4,3282 0xdaa0372e, 0xfc2bd33b, 0xdc12c2ec, 0xc0965f29,
3283 0xbe7f49dc, 0xf16d3f9e, 0x0afbef72, 0x57683019,
3284 0xd4daf23a, 0x8008f39c, 0xf50ba3e1, 0x5112baa2,
3285 0x28b6f532, 0xd0c76d49, 0x245fa32e, 0xdfdad69f,
896 });3286 });
897 try testArgs(@Vector(4, u4), .{3287 try testArgs(@Vector(17, u32), .{
898 0x9, 0x2, 0xf, 0xe,3288 0xf2c0946e, 0xec9a560f, 0x828cbfe0, 0x59e22a95,
3289 0x3e3d7663, 0x16cee3ce, 0xad45d67b, 0x164c7ce7,
3290 0xf08aa758, 0xc43048e4, 0xbef1aaf1, 0xa933e19a,
3291 0x501a3c3b, 0x664e1fc0, 0xea91d637, 0xcba5ff92,
3292 0x494e8b1d,
899 });3293 });
900 try testArgs(@Vector(8, u4), .{3294 try testArgs(@Vector(31, u32), .{
901 0x8, 0x1, 0xb, 0x1, 0xf, 0x5, 0x9, 0x6,3295 0x5a667dbb, 0x2a1aa819, 0xac4b64b2, 0xfa76177d,
3296 0x900d48f0, 0xe53bd516, 0xea3dcaeb, 0xb1fe1e32,
3297 0x717ac9bf, 0x5c27b4b2, 0x6cb0c361, 0x90110ef8,
3298 0x63d63e78, 0x9bd0bdb4, 0x72e55414, 0x517ce90e,
3299 0x565443d0, 0x37c93db9, 0x193f0667, 0x2a4ecad8,
3300 0x13e08477, 0x2e0d69fd, 0x104dd13a, 0xbec0f4f1,
3301 0x728a93b4, 0x3253cd55, 0x99fa6707, 0x69b406c1,
3302 0x27ff507a, 0x15167dee, 0xb2615448,
902 });3303 });
903 try testArgs(@Vector(16, u4), .{3304 try testArgs(@Vector(32, u32), .{
904 0xb, 0x6, 0x0, 0x7, 0x8, 0x5, 0x6, 0x9, 0xe, 0xb, 0x3, 0xa, 0xb, 0x5, 0x8, 0xc,3305 0xeb065322, 0x3946a581, 0x81c97d07, 0x565e01bb,
3306 0x14949bc8, 0xfddfd79e, 0x349bae23, 0x6d797548,
3307 0xef62d1a6, 0x44192db6, 0x5fcb4512, 0x74a5f104,
3308 0xda03c6e3, 0xbbbedf47, 0x709794a3, 0x77942d36,
3309 0x66a49d4d, 0x0a83e3a5, 0xd3b40484, 0x278ad9de,
3310 0x8f382688, 0x9da30151, 0x1c067c60, 0x94145f5c,
3311 0x45ff36bc, 0xaeef3443, 0x3597cd33, 0x41f8008b,
3312 0xf7c801fa, 0xd3048ea5, 0xbb2c2bbb, 0x84693546,
905 });3313 });
906 try testArgs(@Vector(32, u4), .{3314 try testArgs(@Vector(33, u32), .{
907 0xe, 0x6, 0xe, 0xa, 0xb, 0x4, 0xa, 0xb, 0x1, 0x3, 0xb, 0xc, 0x0, 0xb, 0x9, 0x4, 0xd, 0xa, 0xd, 0xd, 0x4, 0x8, 0x8, 0x6, 0xb, 0xe, 0x9, 0x6, 0xc, 0xd, 0x5, 0xd,3315 0x46f29173, 0xd69fe90c, 0xd7b827e3, 0xb02aa49a,
3316 0x398d3cc7, 0x85d7ff46, 0x9a471601, 0x490652a2,
3317 0xc60d1927, 0x4baf48d1, 0x59272b71, 0x78567058,
3318 0xa9cd7ac3, 0x50fa223c, 0xf9b2caf4, 0xa1b5d026,
3319 0x2083ddb0, 0x5f8b1aac, 0x34b6528a, 0xfe1e2d7c,
3320 0xf93418cb, 0xc873e475, 0xf031b8fa, 0xe5ebe15c,
3321 0x086875a9, 0xf2a6e152, 0xa07bbe62, 0xaace4a7c,
3322 0xc7a88fc2, 0x5ffd5bfd, 0x646bb619, 0xa6425229,
3323 0xe203858f,
908 });3324 });
909 try testArgs(@Vector(64, u4), .{3325
910 0x1, 0xc, 0xe, 0x9, 0x9, 0xf, 0x3, 0xf, 0x9, 0x9, 0x5, 0x3, 0xb, 0xd, 0xd, 0xf, 0x1, 0x2, 0xf, 0x9, 0x4, 0x4, 0x8, 0x9, 0x2, 0x9, 0x8, 0xe, 0x8, 0xa, 0x4, 0x3,3326 try testArgs(@Vector(1, i33), .{
911 0x4, 0xc, 0xb, 0x6, 0x4, 0x0, 0xa, 0x5, 0x1, 0xa, 0x4, 0xe, 0xa, 0x7, 0xd, 0x0, 0x4, 0xe, 0xe, 0x7, 0x7, 0xa, 0x4, 0x5, 0x6, 0xc, 0x6, 0x2, 0x6, 0xa, 0xe, 0xa,3327 -0x06cb7eb3c,
912 });3328 });
913 try testArgs(@Vector(128, u4), .{3329 try testArgs(@Vector(2, i33), .{
914 0xd, 0x5, 0x6, 0xe, 0x3, 0x3, 0x3, 0xe, 0xd, 0xd, 0x9, 0x0, 0x0, 0xe, 0xa, 0x9, 0x8, 0x7, 0xb, 0x5, 0x7, 0xf, 0xb, 0x8, 0x0, 0xf, 0xb, 0x3, 0xa, 0x2, 0xb, 0xc,3330 -0x08e99ce23, -0x04f4fc81d,
915 0x1, 0x1, 0xc, 0x8, 0x8, 0x6, 0x9, 0x1, 0xb, 0x0, 0x2, 0xb, 0x2, 0x2, 0x7, 0x6, 0x1, 0x1, 0xb, 0x4, 0x6, 0x4, 0x7, 0xc, 0xd, 0xc, 0xa, 0x8, 0x1, 0x7, 0x8, 0xa,
916 0x9, 0xa, 0x1, 0x8, 0x1, 0x7, 0x9, 0x4, 0x5, 0x9, 0xd, 0x0, 0xa, 0xf, 0x3, 0x3, 0x9, 0x2, 0xf, 0x5, 0xb, 0x8, 0x6, 0xb, 0xf, 0x5, 0x8, 0x3, 0x9, 0xf, 0x6, 0x8,
917 0xc, 0x8, 0x3, 0x4, 0xa, 0xe, 0xc, 0x1, 0xe, 0x9, 0x1, 0x8, 0xf, 0x6, 0xc, 0xc, 0x6, 0xf, 0x6, 0xd, 0xb, 0x9, 0xc, 0x3, 0xd, 0xa, 0x6, 0x8, 0x4, 0xa, 0x6, 0x9,
918 });3331 });
919 try testArgs(@Vector(256, u4), .{3332 try testArgs(@Vector(3, i33), .{
920 0x6, 0xc, 0xe, 0x3, 0x8, 0x2, 0xb, 0xd, 0x3, 0xa, 0x3, 0x8, 0xb, 0x8, 0x3, 0x0, 0xb, 0x5, 0x1, 0x3, 0x2, 0x2, 0xf, 0xc, 0x5, 0x1, 0x3, 0xb, 0x1, 0xc, 0x2, 0xd,3333 0x04dca5870, -0x057649287,
921 0xa, 0x8, 0x1, 0xc, 0xb, 0xa, 0x3, 0x1, 0xe, 0x4, 0xf, 0xb, 0xd, 0x8, 0xf, 0xa, 0xc, 0xb, 0xb, 0x0, 0xa, 0xc, 0xf, 0xe, 0x8, 0xd, 0x9, 0x3, 0xa, 0xe, 0x8, 0x7,3334 -0x0629b7859,
922 0x5, 0xa, 0x0, 0xe, 0x0, 0xd, 0x2, 0x2, 0x9, 0x4, 0x8, 0x9, 0x0, 0x4, 0x4, 0x8, 0xe, 0x1, 0xf, 0x1, 0x9, 0x3, 0xf, 0xc, 0xa, 0x0, 0x3, 0x2, 0x4, 0x1, 0x2, 0x3,
923 0xf, 0x2, 0x7, 0xb, 0x5, 0x0, 0xd, 0x3, 0x4, 0xf, 0xa, 0x3, 0xc, 0x2, 0x5, 0xe, 0x7, 0x5, 0xd, 0x7, 0x9, 0x0, 0xd, 0x7, 0x9, 0xd, 0x5, 0x7, 0xf, 0xd, 0xb, 0x4,
924 0x9, 0x6, 0xf, 0xb, 0x1, 0xb, 0x6, 0xb, 0xf, 0x7, 0xf, 0x0, 0x4, 0x7, 0x5, 0xa, 0x8, 0x1, 0xf, 0x9, 0x9, 0x0, 0x6, 0xb, 0x1, 0x2, 0x4, 0x3, 0x2, 0x0, 0x7, 0x0,
925 0x6, 0x7, 0xf, 0x1, 0xe, 0xa, 0x8, 0x2, 0x9, 0xc, 0x1, 0x5, 0x7, 0x1, 0xb, 0x0, 0x1, 0x3, 0xd, 0x3, 0x0, 0x1, 0xa, 0x0, 0x3, 0x7, 0x1, 0x2, 0xb, 0xc, 0x2, 0x9,
926 0x8, 0x8, 0x7, 0x0, 0xd, 0x5, 0x1, 0x5, 0x7, 0x7, 0x2, 0x3, 0x8, 0x7, 0xc, 0x8, 0xf, 0xa, 0xf, 0xf, 0x3, 0x2, 0x0, 0x4, 0x7, 0x5, 0x6, 0xd, 0x6, 0x3, 0xa, 0x4,
927 0x1, 0x1, 0x2, 0xc, 0x3, 0xe, 0x2, 0xc, 0x7, 0x6, 0xe, 0xf, 0xb, 0x8, 0x6, 0x6, 0x9, 0x0, 0x4, 0xb, 0xe, 0x4, 0x2, 0x7, 0xf, 0xc, 0x0, 0x6, 0xd, 0xa, 0xe, 0xc,
928 });3335 });
9293336 try testArgs(@Vector(4, i33), .{
930 try testArgs(@Vector(3, i5), .{ -1 << 4, -1, 0 });3337 -0x03ac9fa2d, -0x056448c8c,
931 try testArgs(@Vector(3, u5), .{ 0, 1, 1 << 4 });3338 -0x06327f240, 0x057caa00d,
932
933 try testArgs(@Vector(3, i7), .{ -1 << 6, -1, 0 });
934 try testArgs(@Vector(3, u7), .{ 0, 1, 1 << 6 });
935
936 try testArgs(@Vector(3, i8), .{ -1 << 7, -1, 0 });
937 try testArgs(@Vector(1, i8), .{
938 0x71,
939 });3339 });
940 try testArgs(@Vector(2, i8), .{3340 try testArgs(@Vector(5, i33), .{
941 -0x50, -0x43,3341 -0x0eda7ca37, 0x00c150a49,
3342 0x0961b87fb, -0x0efac7b65,
3343 -0x0abf89ecc,
942 });3344 });
943 try testArgs(@Vector(4, i8), .{3345 try testArgs(@Vector(7, i33), .{
944 -0x09, -0x19, -0x15, -0x5d,3346 0x0174d5a59, -0x09103671b,
3347 -0x0920ebe1b, -0x05f76f77b,
3348 0x02f912948, -0x036177518,
3349 0x0d8c9d0c9,
945 });3350 });
946 try testArgs(@Vector(8, i8), .{3351 try testArgs(@Vector(8, i33), .{
947 -0x4f, -0x55, -0x5b, -0x23, -0x76, 0x36, 0x6f, -0x63,3352 0x01609ce6e, -0x02816dc90,
3353 -0x08be4b46a, 0x032e9d1c6,
3354 0x070c248ab, 0x02700eade,
3355 -0x0d5b561fe, -0x0c5ecfe6b,
948 });3356 });
949 try testArgs(@Vector(16, i8), .{3357 try testArgs(@Vector(9, i33), .{
950 0x24, -0x03, 0x2e, 0x7b, 0x68, 0x29, 0x6c, 0x7f, -0x2f, -0x3b, -0x11, -0x3c, -0x2e, 0x27, -0x45, 0x45,3358 0x0ff839829, 0x0a7311ec7,
3359 -0x0875b2074, 0x04b868bf9,
3360 0x05c7baa1a, -0x096406153,
3361 0x08858ca39, 0x0e3b478b0,
3362 -0x02456564b,
951 });3363 });
952 try testArgs(@Vector(32, i8), .{3364 try testArgs(@Vector(15, i33), .{
953 0x70, 0x33, -0x28, -0x38, -0x3b, 0x44, -0x1d, 0x7d, -0x48, 0x3c, 0x61, -0x09, -0x49, 0x15, 0x0a, -0x5a,3365 0x0358b5e15, -0x02489976c,
954 0x78, 0x11, -0x07, -0x23, 0x4a, -0x72, 0x25, -0x17, -0x51, -0x04, 0x55, 0x20, -0x80, -0x3d, 0x59, -0x39,3366 0x0e710e92f, 0x0cb044409,
3367 0x0bf246fce, -0x081e28596,
3368 0x0b6040038, -0x043f0f0ea,
3369 0x0e4ba67c8, -0x0c22ed81d,
3370 0x0f23c0c0e, 0x06540b535,
3371 -0x067b1d030, 0x09f71bb39,
3372 0x0c23fa3b0,
955 });3373 });
956 try testArgs(@Vector(64, i8), .{3374 try testArgs(@Vector(16, i33), .{
957 0x4f, 0x40, -0x62, -0x4f, 0x37, -0x06, -0x33, 0x4d, -0x10, 0x55, 0x24, -0x76, 0x1d, 0x2b, -0x54, -0x0f,3375 -0x0142ab9ee, 0x0459423ea,
958 0x21, -0x4c, -0x74, -0x07, 0x23, -0x5a, -0x21, -0x4a, -0x7c, -0x16, -0x20, -0x2e, 0x0a, 0x15, 0x03, 0x44,3376 0x0de356963, -0x0332d4d5e,
959 0x19, -0x27, 0x3e, 0x61, 0x6e, -0x76, 0x2a, 0x74, -0x21, 0x34, -0x69, -0x18, -0x21, -0x61, -0x34, -0x02,3377 -0x0e3352b48, 0x0d0f05ada,
960 0x5e, -0x36, -0x79, -0x0f, 0x26, 0x6e, 0x5f, 0x52, -0x0f, -0x64, 0x1a, 0x74, -0x37, 0x00, -0x47, -0x57,3378 0x06684b9de, 0x0f1e76fa6,
3379 -0x0d9f75c96, 0x07e244fb3,
3380 0x08b8cab5a, 0x0debabd35,
3381 0x0f5434271, -0x01bc41173,
3382 0x0a27988f5, 0x0fb4e5cf0,
961 });3383 });
962 try testArgs(@Vector(128, i8), .{3384 try testArgs(@Vector(17, i33), .{
963 -0x38, -0x19, 0x51, 0x09, 0x76, -0x3b, -0x33, 0x39, 0x67, 0x51, 0x10, 0x77, 0x24, 0x21, 0x6f, -0x1a,3385 -0x076e0997e, -0x074090dcb,
964 0x4e, -0x69, 0x2e, -0x78, -0x06, 0x5c, 0x17, 0x2e, -0x0e, -0x2e, 0x09, 0x2a, -0x5f, -0x40, -0x64, 0x3f,3386 -0x05a6ec729, -0x0a5a88f89,
965 0x4a, -0x77, -0x54, 0x38, 0x6b, 0x1f, -0x04, 0x40, 0x27, -0x0c, 0x65, -0x46, 0x49, -0x69, -0x53, 0x64,3387 -0x020066f29, 0x08cb7a55c,
966 0x13, -0x33, 0x3a, -0x10, -0x15, 0x7f, -0x1c, 0x5e, -0x22, 0x2f, -0x75, 0x77, 0x22, 0x6b, -0x32, -0x55,3388 -0x092eb4cf8, 0x06ff474ce,
967 0x18, 0x19, 0x2c, -0x27, -0x03, 0x4f, 0x07, 0x0b, 0x44, -0x21, 0x79, 0x55, -0x65, 0x1d, -0x29, 0x2f,3389 0x023df42a8, 0x0dd1a69fe,
968 0x4a, 0x6f, -0x40, -0x57, -0x2f, 0x42, 0x52, 0x68, -0x2a, -0x6b, 0x6f, -0x49, -0x32, 0x52, 0x1e, -0x60,3390 0x0b9150082, -0x0162fde21,
969 -0x80, 0x53, 0x5e, 0x73, -0x1e, 0x2d, -0x46, -0x27, 0x4b, 0x57, 0x1f, 0x6a, -0x65, 0x5f, -0x2b, -0x03,3391 0x024df7571, 0x0bb74d943,
970 -0x3a, -0x76, -0x51, 0x20, 0x04, -0x0a, 0x2b, -0x04, -0x1e, -0x18, -0x2d, 0x53, -0x58, -0x69, 0x16, 0x19,3392 -0x05de07f92, -0x09f02a5e2,
3393 0x09416d842,
971 });3394 });
9723395
973 try testArgs(@Vector(3, u8), .{ 0, 1, 1 << 7 });3396 try testArgs(@Vector(1, u33), .{
974 try testArgs(@Vector(1, u8), .{3397 0x0ebec10d6,
975 0x33,
976 });3398 });
977 try testArgs(@Vector(2, u8), .{3399 try testArgs(@Vector(2, u33), .{
978 0x66, 0x87,3400 0x1f42bc395, 0x1eb083140,
979 });3401 });
980 try testArgs(@Vector(4, u8), .{3402 try testArgs(@Vector(3, u33), .{
981 0x9d, 0xcb, 0x30, 0x7b,3403 0x0727b446a, 0x1ac44a4b3,
3404 0x0b0730c42,
982 });3405 });
983 try testArgs(@Vector(8, u8), .{3406 try testArgs(@Vector(4, u33), .{
984 0x4b, 0x35, 0x3f, 0x5c, 0xa5, 0x91, 0x23, 0x6d,3407 0x1d821cff0, 0x011b28b87,
3408 0x0739856cb, 0x19ed6a1fa,
985 });3409 });
986 try testArgs(@Vector(16, u8), .{3410 try testArgs(@Vector(5, u33), .{
987 0xb7, 0x57, 0x27, 0x29, 0x58, 0xf8, 0xc9, 0x6c, 0xbe, 0x41, 0xf4, 0xd7, 0x4d, 0x01, 0xf0, 0x37,3411 0x0b2314516, 0x19c0de98e,
3412 0x00eb7fc2e, 0x1987258e6,
3413 0x003e3280e,
988 });3414 });
989 try testArgs(@Vector(32, u8), .{3415 try testArgs(@Vector(7, u33), .{
990 0x5f, 0x61, 0x34, 0xe8, 0x37, 0x12, 0xba, 0x5a, 0x85, 0xf3, 0x3e, 0xa2, 0x0f, 0xd0, 0x65, 0xae,3416 0x156b9af69, 0x16623874a,
991 0xed, 0xf5, 0xe8, 0x65, 0x61, 0x28, 0x4a, 0x27, 0x2e, 0x01, 0x40, 0x8c, 0xe3, 0x36, 0x5d, 0xb6,3417 0x198771fa2, 0x1891367f0,
3418 0x1158cfd5a, 0x1c6a51cab,
3419 0x084f757b5,
992 });3420 });
993 try testArgs(@Vector(64, u8), .{3421 try testArgs(@Vector(8, u33), .{
994 0xb0, 0x19, 0x5c, 0xc2, 0x3b, 0x16, 0x70, 0xad, 0x26, 0x45, 0xf2, 0xe1, 0x4f, 0x0f, 0x01, 0x72,3422 0x1be002f1d, 0x0dd42ad31,
995 0x7f, 0x1f, 0x07, 0x9e, 0xee, 0x9b, 0xb3, 0x38, 0x50, 0xf3, 0x56, 0x73, 0xd0, 0xd1, 0xee, 0xe3,3423 0x04ba63298, 0x1534bd4a1,
996 0xeb, 0xf3, 0x1b, 0xe0, 0x77, 0x78, 0x75, 0xc6, 0x19, 0xe4, 0x69, 0xaa, 0x73, 0x08, 0xcd, 0x0c,3424 0x0a72dfea0, 0x0eae2b4bf,
997 0xf9, 0xed, 0x94, 0xf8, 0x79, 0x86, 0x63, 0x31, 0xbf, 0xd1, 0xe3, 0x17, 0x2b, 0xb9, 0xa1, 0x72,3425 0x1bf962681, 0x0e57f3613,
998 });3426 });
999 try testArgs(@Vector(128, u8), .{3427 try testArgs(@Vector(9, u33), .{
1000 0x2e, 0x93, 0x87, 0x09, 0x4f, 0x68, 0x14, 0xab, 0x3f, 0x04, 0x86, 0xc1, 0x95, 0xe8, 0x74, 0x11,3428 0x11f21a47d, 0x0a8fef8a1,
1001 0x57, 0x25, 0xe1, 0x88, 0xc0, 0x96, 0x33, 0x99, 0x15, 0x86, 0x2c, 0x84, 0x2e, 0xd7, 0x57, 0x21,3429 0x0009fb473, 0x06e94c939,
1002 0xd3, 0x18, 0xd5, 0x0e, 0xb4, 0x60, 0xe2, 0x08, 0xce, 0xbc, 0xd5, 0x4d, 0x8f, 0x59, 0x01, 0x67,3430 0x0a9c9c22e, 0x0bfb8f89e,
1003 0x71, 0x0a, 0x74, 0x48, 0xef, 0x39, 0x49, 0x7e, 0xa8, 0x39, 0x34, 0x75, 0x95, 0x3b, 0x38, 0xea,3431 0x17ade9bf2, 0x11e4bc9e0,
1004 0x60, 0xd7, 0xed, 0x8f, 0xbb, 0xc0, 0x7d, 0xc2, 0x79, 0x2d, 0xbf, 0xa5, 0x64, 0xf4, 0x09, 0x86,3432 0x15968c696,
1005 0xfb, 0x29, 0xfe, 0xc7, 0xff, 0x62, 0x1a, 0x6f, 0xf8, 0xbd, 0xfe, 0xa4, 0xac, 0x24, 0xcf, 0x56,
1006 0x82, 0x69, 0x81, 0x0d, 0xc1, 0x51, 0x8d, 0x85, 0xf4, 0x00, 0xe7, 0x25, 0xab, 0xa5, 0x33, 0x45,
1007 0x66, 0x2e, 0x33, 0xc8, 0xf3, 0x35, 0x16, 0x7d, 0x1f, 0xc9, 0xf7, 0x44, 0xab, 0x66, 0x28, 0x0d,
1008 });3433 });
10093434 try testArgs(@Vector(15, u33), .{
1010 try testArgs(@Vector(3, i9), .{ -1 << 8, -1, 0 });3435 0x02af9eb53, 0x19ac3812b,
1011 try testArgs(@Vector(3, u9), .{ 0, 1, 1 << 8 });3436 0x1632dbb21, 0x023d5a196,
10123437 0x1e154b359, 0x0b371fa45,
1013 try testArgs(@Vector(3, i15), .{ -1 << 14, -1, 0 });3438 0x0e565a06f, 0x1965c7126,
1014 try testArgs(@Vector(3, u15), .{ 0, 1, 1 << 14 });3439 0x018bf92f3, 0x14b48f26e,
10153440 0x10c954288, 0x08c945996,
1016 try testArgs(@Vector(3, i16), .{ -1 << 15, -1, 0 });3441 0x0216073fd, 0x15fa9132e,
1017 try testArgs(@Vector(1, i16), .{3442 0x0b6a428db,
1018 -0x015a,
1019 });3443 });
1020 try testArgs(@Vector(2, i16), .{3444 try testArgs(@Vector(16, u33), .{
1021 -0x1c2f, 0x5ce8,3445 0x0a6a69363, 0x19ea477ba,
3446 0x0493ff35e, 0x1fece1b1d,
3447 0x063eb6012, 0x103c65796,
3448 0x0e98ca7fd, 0x04b972c94,
3449 0x1b0dce10e, 0x088b67474,
3450 0x181322bd9, 0x1f78856bb,
3451 0x0f2f70b1b, 0x15ac608f8,
3452 0x08c9817f4, 0x00bc52fa0,
1022 });3453 });
1023 try testArgs(@Vector(4, i16), .{3454 try testArgs(@Vector(17, u33), .{
1024 0x1212, 0x5bfc, -0x20ea, 0x0993,3455 0x17d631441, 0x17e9ee0b7,
3456 0x08ef8565f, 0x103428ae3,
3457 0x03b039a4b, 0x00e90f659,
3458 0x1c66d2e73, 0x07347d531,
3459 0x1a03c6ad9, 0x0e6cedf41,
3460 0x0b30405ab, 0x0d2520be7,
3461 0x03f97d747, 0x1af71f3e1,
3462 0x01bf05ceb, 0x100526d23,
3463 0x0941ec325,
1025 });3464 });
1026 try testArgs(@Vector(8, i16), .{3465
1027 0x4d55, -0x0dfb, -0x7921, 0x7e20, 0x74a5, -0x7371, -0x08e0, 0x7f23,3466 try testArgs(@Vector(1, i63), .{
3467 0x3751c894e8fbe69b,
1028 });3468 });
1029 try testArgs(@Vector(16, i16), .{3469 try testArgs(@Vector(2, i63), .{
1030 0x2354, -0x048a, -0x3ef9, 0x29d4, 0x4e5e, -0x3da9, -0x0cc4, -0x0377,3470 0x02659637000f4849, -0x1c21ef23a4708c02,
1031 0x4d44, 0x4384, -0x1e46, 0x0bf1, 0x3151, -0x57c6, -0x367e, -0x7ae5,
1032 });3471 });
1033 try testArgs(@Vector(32, i16), .{3472 try testArgs(@Vector(3, i63), .{
1034 0x5b5a, -0x54c4, -0x2089, -0x448d, 0x38e8, -0x36a5, -0x0a8f, 0x06e0,3473 -0x3bd1aa5cccdac018, -0x1a70b3d17b0a767e,
1035 0x09d9, 0x3877, 0x33c8, 0x5d3a, 0x018b, 0x29c9, 0x6f59, -0x4078,3474 -0x3e6cf9c01feced83,
1036 0x6be4, -0x249e, 0x43b3, -0x0389, 0x545e, 0x6ed7, 0x6636, 0x587d,
1037 0x55b0, -0x608b, 0x72e0, 0x4dfd, -0x051d, 0x7433, -0x7fc2, 0x2de3,
1038 });3475 });
1039 try testArgs(@Vector(64, i16), .{3476 try testArgs(@Vector(4, i63), .{
1040 0x7834, -0x43f9, -0x1cb3, -0x05f2, 0x25b5, 0x55f2, 0x4cfb, -0x58bb,3477 -0x21cf08dffb8c4261, -0x02952228a9555748,
1041 0x7292, -0x082e, -0x5a6e, 0x1fc8, -0x1f49, 0x7e3c, 0x4aa5, -0x617e,3478 -0x0d28be6a86a51bbd, -0x048efe42b6a083e6,
1042 0x2fab, -0x2b96, 0x7474, -0x6644, -0x5484, -0x278e, -0x6a0e, -0x5210,
1043 0x1adf, -0x2799, 0x61e0, -0x733c, -0x6bcc, -0x6fe2, -0x4e91, 0x5d01,
1044 0x3745, 0x24eb, 0x6c89, 0x4a94, -0x7339, 0x4907, -0x4f8f, -0x7e39,
1045 0x1a32, 0x65ca, -0x6c27, -0x3269, 0x107b, 0x1c53, -0x5529, 0x5232,
1046 -0x26ec, 0x4442, -0x63f5, -0x174a, 0x3033, -0x7363, 0x58be, 0x239f,
1047 0x7f7b, -0x437d, -0x6df6, 0x0a7b, 0x3faa, -0x1d75, -0x7426, 0x1274,
1048 });3479 });
10493480 try testArgs(@Vector(5, i63), .{
1050 try testArgs(@Vector(3, u16), .{ 0, 1, 1 << 15 });3481 0x191b8bf9c3cb1974, 0x173fcea0524d0dbe,
1051 try testArgs(@Vector(1, u16), .{3482 -0x1d8fb8b6f758c797, -0x3837eb2a2bda5c45,
1052 0x4da6,3483 0x31ad632bd048b341,
1053 });3484 });
1054 try testArgs(@Vector(2, u16), .{3485 try testArgs(@Vector(7, i63), .{
1055 0x04d7, 0x50c6,3486 -0x2d8b6c97799235ea, 0x26d281f112edb009,
3487 0x300456663162abb3, 0x01530ea40f5a18c5,
3488 -0x12da0488be671be3, 0x0ec6f12b30534b7f,
3489 -0x216deec3e431f0bf,
1056 });3490 });
1057 try testArgs(@Vector(4, u16), .{3491 try testArgs(@Vector(8, i63), .{
1058 0x4c06, 0xd71f, 0x4d8f, 0xe0a4,3492 0x245bf28fd8b546ba, -0x2956bf6106b5d362,
3493 -0x319ab740f51b4154, -0x0e2e242a7881fac6,
3494 0x3bfcc5138251883a, -0x1149a93f2eb40973,
3495 0x388be2cc2f89ad62, 0x28e30c5c7552f64a,
1059 });3496 });
1060 try testArgs(@Vector(8, u16), .{3497 try testArgs(@Vector(9, i63), .{
1061 0xee9a, 0x881d, 0x31fb, 0xd3f7, 0x2c74, 0x6949, 0x4e04, 0x53d7,3498 0x01944c5c05ed619c, -0x01e49493b7503176,
3499 0x0629c5be94d83864, -0x0c07c0a839450459,
3500 0x1a0382b2beff495a, -0x2fd440b33af6eefb,
3501 0x00c526ddfbcaacda, 0x326e139a32198f4d,
3502 -0x11b5067f11748882,
1062 });3503 });
1063 try testArgs(@Vector(16, u16), .{3504 try testArgs(@Vector(15, i63), .{
1064 0xeafe, 0x9a7b, 0x0d6f, 0x18cb, 0xaf8f, 0x8ee4, 0xa47e, 0xd39a,3505 -0x22eaa5b856307e6b, 0x06b7518dad66dd8d,
1065 0x6572, 0x9c53, 0xf36e, 0x982e, 0x41c1, 0x8682, 0xf5dc, 0x7e01,3506 -0x1c666681c4ca06f1, -0x34febd64e274f4f3,
3507 0x1305d4b063fbb18c, -0x1df2eaa1ebb176b4,
3508 0x19dd5ae15bb8f765, -0x066c6c1d31def660,
3509 -0x1bf661e9d29b449c, -0x3eaedd122226c2de,
3510 -0x0fb1ba685fdb2b68, -0x32fd1e57bb04eb26,
3511 0x3fd66e9f96aa8df0, -0x3fbe307aa6523b61,
3512 0x1df0e564a0a8e2d7,
1066 });3513 });
1067 try testArgs(@Vector(32, u16), .{3514 try testArgs(@Vector(16, i63), .{
1068 0xdfb3, 0x7de6, 0xd9ed, 0xb42e, 0x95ac, 0x9b5b, 0x0422, 0xdfcd,3515 0x061767e9366a32ac, -0x1c7542a68d5750aa,
1069 0x6196, 0x4dbe, 0x1818, 0x8816, 0x75e7, 0xc9b0, 0x92f7, 0x1f71,3516 -0x174386205ba10e99, 0x1f7ae720e2b8513c,
1070 0xe584, 0x576c, 0x043a, 0x0f31, 0xfc4c, 0x2c87, 0x6b02, 0x0229,3517 -0x286d271f72914c1b, 0x0ba2ccdcdae61287,
1071 0x25b7, 0x53cd, 0x9bab, 0x866b, 0x9008, 0xf0f3, 0xeb21, 0x88e2,3518 -0x294d3c0c5c99c1ad, -0x094390e09b71d711,
3519 0x1ff69b4e11e4577d, 0x38376ee4fd90d9c7,
3520 -0x1fed65c3a90bb2ff, -0x0158ed8a5643f0f2,
3521 0x101e5ce53748f42f, 0x0a29f1e053325ddb,
3522 0x3b5826ebb9380e0f, -0x08593f40b8e95311,
1072 });3523 });
1073 try testArgs(@Vector(64, u16), .{3524 try testArgs(@Vector(17, i63), .{
1074 0x084c, 0x445f, 0xce89, 0xd3ee, 0xb399, 0x315d, 0x8ef8, 0x4f6f,3525 0x267962dbbbc555e2, 0x3acabce21dcfa860,
1075 0xf9af, 0xcbc4, 0x0332, 0xcd55, 0xa4dc, 0xbc38, 0x6e33, 0x8ead,3526 0x3b3bd612d8ac0fe6, 0x164fbaeb4b6ebf96,
1076 0xd15a, 0x5057, 0x58ef, 0x657a, 0xe9f0, 0x1418, 0x2b62, 0x3387,3527 0x0b59a4caca202e9f, -0x1005cf4dd7d841ea,
1077 0x1c15, 0x04e1, 0x0276, 0x3783, 0xad9c, 0xea9a, 0x0e5e, 0xe803,3528 0x04900ca2be0565a9, -0x1c0749e904112370,
1078 0x2ee7, 0x0cf1, 0x30f1, 0xb12a, 0x381b, 0x353d, 0xf637, 0xf853,3529 0x02e4f2e360a13b6c, 0x16baa5d7696d83ec,
1079 0x2ac1, 0x7ce8, 0x6a50, 0xcbb8, 0xc9b8, 0x9b25, 0xd1e9, 0xeff0,3530 0x0c2616a3d3dec6a7, 0x041bea2fa7bac749,
1080 0xc0a2, 0x8e51, 0xde7a, 0x4e58, 0x5685, 0xeb3f, 0xd29b, 0x66ed,3531 -0x2ecc7a999b3da500, -0x0def15b53d6a7490,
1081 0x3dd5, 0xcb59, 0x6003, 0xf710, 0x943a, 0x7276, 0xe547, 0xe48f,3532 -0x2c8d96e583a7dc12, -0x2f75e205478cbd3d,
3533 -0x2746871924743046,
1082 });3534 });
10833535
1084 try testArgs(@Vector(3, i17), .{ -1 << 16, -1, 0 });3536 try testArgs(@Vector(1, u63), .{
1085 try testArgs(@Vector(3, u17), .{ 0, 1, 1 << 16 });3537 0x2177701462817ae8,
1086
1087 try testArgs(@Vector(3, i31), .{ -1 << 30, -1, 0 });
1088 try testArgs(@Vector(3, u31), .{ 0, 1, 1 << 30 });
1089
1090 try testArgs(@Vector(3, i32), .{ -1 << 31, -1, 0 });
1091 try testArgs(@Vector(1, i32), .{
1092 -0x27f49dce,
1093 });
1094 try testArgs(@Vector(2, i32), .{
1095 0x24641ec7, 0x436c5bd2,
1096 });3538 });
1097 try testArgs(@Vector(4, i32), .{3539 try testArgs(@Vector(2, u63), .{
1098 0x59e5eff1, -0x46b5b8db, -0x1029efa7, -0x1937fe73,3540 0x4d8aefa47c681718, 0x3c8bc100dc62a229,
1099 });3541 });
1100 try testArgs(@Vector(8, i32), .{3542 try testArgs(@Vector(3, u63), .{
1101 0x0ca01401, -0x46b2bc0c, 0x51e5dee7, -0x74edfde8,3543 0x51efe053a56e54cc, 0x4813340907e62f02,
1102 -0x0ab09a6a, -0x5a51a88b, 0x18c28bc2, 0x63d79966,3544 0x6cf745dfcfc5a0f8,
1103 });3545 });
1104 try testArgs(@Vector(16, i32), .{3546 try testArgs(@Vector(4, u63), .{
1105 0x3900e6c8, 0x2408c2bb, 0x5e01bc6e, -0x0eb8c400,3547 0x64b75da9ac93ca30, 0x163e34f890f56173,
1106 0x4c0dc6c2, 0x6c75e7f5, -0x66632ca8, 0x0e978daf,3548 0x0a04ca663e580162, 0x14693b19720c5b04,
1107 0x61ffe725, 0x720253e4, -0x6f6c38c1, -0x3302e60a,
1108 0x43f53c92, 0x5a3c1075, 0x7044a110, 0x18e41ad8,
1109 });3549 });
1110 try testArgs(@Vector(32, i32), .{3550 try testArgs(@Vector(5, u63), .{
1111 0x3a5c2b01, 0x2a52d9fa, -0x5843fc47, 0x6c493c7d,3551 0x06bc896f283c63d7, 0x010d4ad73df2c443,
1112 -0x47937cb1, -0x3ad95ec4, 0x71cf5e7b, -0x3b6719c2,3552 0x3322a2732c5175a0, 0x1021e5e040a6c335,
1113 0x06bace17, -0x6ccda5ed, 0x42b9ed04, 0x6be2b287,3553 0x45afd197802c1448,
1114 -0x7cf56523, -0x3c98e2e4, 0x1e7db6c0, -0x7e668ad2,
1115 -0x6c245ecf, -0x09842450, -0x403a4335, -0x7a68e9b7,
1116 0x0036cf57, -0x251edb4e, -0x67ec3abf, -0x183f0333,
1117 -0x4b46723c, -0x1e5383d6, 0x188c1de3, 0x400b3648,
1118 -0x4b21d9d3, 0x61635257, 0x179eb187, 0x31cd8376,
1119 });3554 });
11203555 try testArgs(@Vector(7, u63), .{
1121 try testArgs(@Vector(3, u32), .{ 0, 1, 1 << 31 });3556 0x2efe752b1ee67744, 0x78c4c63665a5b5d2,
1122 try testArgs(@Vector(1, u32), .{3557 0x1f0bfdabc6ef4bf1, 0x2be2324013eaff8a,
1123 0x17e2805c,3558 0x5439d73093cd89d5, 0x61254b8532f1f7bd,
3559 0x6f3523b66691dba5,
1124 });3560 });
1125 try testArgs(@Vector(2, u32), .{3561 try testArgs(@Vector(8, u63), .{
1126 0xdb6aadc5, 0xb1ff3754,3562 0x7221f7d6f82ce4da, 0x591e824f45c20f9d,
3563 0x4e5f3d829a9090a1, 0x4b46fe4492b60c10,
3564 0x792e48d707425d79, 0x12454f364b8a3642,
3565 0x02cd18a19104066a, 0x099e27552e33ea05,
1127 });3566 });
1128 try testArgs(@Vector(4, u32), .{3567 try testArgs(@Vector(9, u63), .{
1129 0xf7897b31, 0x342e1af9, 0x190fd76b, 0x283b5374,3568 0x22f0f07ebf34daab, 0x0e52ab968e844242,
3569 0x1d5979b9177b31d9, 0x59b2d70b05eaca66,
3570 0x7eb234b48319fe7a, 0x2ef2c5db4b85978d,
3571 0x43f1d01e26f2c33f, 0x4eb09118689a5aba,
3572 0x43f205474675dd47,
1130 });3573 });
1131 try testArgs(@Vector(8, u32), .{3574 try testArgs(@Vector(15, u63), .{
1132 0x81a0bd16, 0xc55da94e, 0x910f7e7c, 0x078d5ef7,3575 0x14fa00be6ffab27e, 0x369543c3445d91aa,
1133 0x0bdb1e4a, 0xf1a96e99, 0xcdd729b5, 0xe6966a1c,3576 0x11754739f827f2e7, 0x3ff0ac34ed39c6ec,
3577 0x726b45a4e174a68c, 0x09c2a9b2197f0ade,
3578 0x22edec3dd9ae3783, 0x0611bd9d50406ae7,
3579 0x63b9ade47da2ba37, 0x04bd2c7a867bcba2,
3580 0x0d68a5438ae1d495, 0x70da32c6373f1036,
3581 0x5b85033485c5fe55, 0x43e6169b503ca8de,
3582 0x40cde07fe0470dc6,
1134 });3583 });
1135 try testArgs(@Vector(16, u32), .{3584 try testArgs(@Vector(16, u63), .{
1136 0xfee812db, 0x29eacbed, 0xaed48136, 0x3053de13,3585 0x1c635b835478a911, 0x0995b39ff44566a4,
1137 0xbbda20df, 0x6faa274a, 0xe0b5ec3a, 0x1878b0dc,3586 0x0cc867c3c17916ab, 0x10ed098c1ba3c91c,
1138 0x98204475, 0x810d8d05, 0x1e6996b6, 0xc543826a,3587 0x551afb772998e956, 0x4494d2d8453467de,
1139 0x53b47d8c, 0xc72c3142, 0x12f7e1f9, 0xf6782e54,3588 0x48ae36cf8787812e, 0x163ec6db793793c2,
3589 0x1096a8cc35ad1ce1, 0x4029214025020ed9,
3590 0x4b322be7dd63b2da, 0x08c9e6ae8356922a,
3591 0x06efd2d7fa64419c, 0x5299f1bd4ef1d8af,
3592 0x4685daa8a2a8d7dc, 0x500d31c70e37dfac,
1140 });3593 });
1141 try testArgs(@Vector(32, u32), .{3594 try testArgs(@Vector(17, u63), .{
1142 0xf0cf30d3, 0xe3c587b8, 0xcee44739, 0xe4a0bd72,3595 0x0c9e8888be3a1d7a, 0x3eb6dba412d9e9f8,
1143 0x41d44cce, 0x6d7c4259, 0xd85580a5, 0xec4b02d7,3596 0x4a36342aa344f7ba, 0x6c8baf91ed4085ef,
1144 0xa366483d, 0x2d7b59d4, 0xe9c0ace4, 0x82cb441c,3597 0x343c5eeb15de875b, 0x001082f9c30cb0f0,
1145 0xa23958ba, 0x04a70148, 0x3f0d20a3, 0xf9e21e37,3598 0x3875a1104b976588, 0x737ad1482363b5b0,
1146 0x009fce8b, 0x4a34a229, 0xf09c35cf, 0xc0977d4d,3599 0x47e6be33674ea76f, 0x4d4fad5f4d31c8e6,
1147 0xcc4d4647, 0xa30f1363, 0x27a65b14, 0xe572c785,3600 0x3bde471489363a93, 0x462f3ee217211130,
1148 0x8f42e320, 0x2b2cdeca, 0x11205bd4, 0x739d26aa,3601 0x5139c07adde61547, 0x34f5436cce96302e,
1149 0xcbcc2df0, 0x5f7a3649, 0xbde1b7aa, 0x180a169f,3602 0x47f433875f988720, 0x2d984bcfe65386b6,
3603 0x70fe9dd022a1ace7,
1150 });3604 });
11513605
1152 try testArgs(@Vector(3, i33), .{ -1 << 32, -1, 0 });
1153 try testArgs(@Vector(3, u33), .{ 0, 1, 1 << 32 });
1154
1155 try testArgs(@Vector(3, i63), .{ -1 << 62, -1, 0 });
1156 try testArgs(@Vector(3, u63), .{ 0, 1, 1 << 62 });
1157
1158 try testArgs(@Vector(3, i64), .{ -1 << 63, -1, 0 });
1159 try testArgs(@Vector(1, i64), .{3606 try testArgs(@Vector(1, i64), .{
1160 0x29113011488d8b65,3607 -0x4b7fb0b786be5c3a,
1161 });3608 });
1162 try testArgs(@Vector(2, i64), .{3609 try testArgs(@Vector(2, i64), .{
1163 -0x3f865dcdfd831d03, -0x35512d15095445d6,3610 0x2137d770dcd7210d, 0x57f8f60e1ae33a48,
3611 });
3612 try testArgs(@Vector(3, i64), .{
3613 0x01f4d5911e62a232, -0x6f02ad23979236ad,
3614 0x78b48dc1d900fc75,
1164 });3615 });
1165 try testArgs(@Vector(4, i64), .{3616 try testArgs(@Vector(4, i64), .{
1166 0x6f37a9484440251e, 0x2757e5e2b77e6ef3,3617 -0x7127d14674e525fd, 0x6305c7259a0349c1,
1167 0x4903a91bd2993d0b, 0x162244ba22371f62,3618 0x7692ac00c0ec1cfa, 0x59ea1f91b10d5365,
3619 });
3620 try testArgs(@Vector(5, i64), .{
3621 0x11a559214771da81, -0x09bfa4f3e16f9ac7,
3622 -0x0c6a6d70a5812ecd, 0x3a8731e64f568239,
3623 0x1911ef10b4fba5bc,
3624 });
3625 try testArgs(@Vector(7, i64), .{
3626 0x7afc6a3fda5693f6, 0x3810984cc9a442cf,
3627 -0x57dc022511143fee, 0x1c3104cde6237c23,
3628 -0x547d7db283a6bec4, 0x1c5abae6f7f692eb,
3629 -0x2d1de6d188652687,
1168 });3630 });
1169 try testArgs(@Vector(8, i64), .{3631 try testArgs(@Vector(8, i64), .{
1170 -0x46e2340c765175c1, -0x031ee2297e6cc8b3,3632 -0x77388284294cc650, 0x4eaacacd5f19da71,
1171 -0x2627434d4b4fb796, 0x525e1ef31b6daa46,3633 -0x7a55c43d7f0c2e69, -0x181ffd0b2bba3542,
1172 0x72d8eaaea07fa5ea, 0x2a8c0c36da019448,3634 -0x03c7eed19ea409f0, 0x02d7a2d738ec292c,
1173 -0x5419ebf5cd514cde, -0x618c56a881057ac4,3635 -0x79518d662eb65d07, -0x0554d622b3d8bdc7,
3636 });
3637 try testArgs(@Vector(9, i64), .{
3638 0x089a5a66fa037603, -0x0fad9e9572978fe2,
3639 -0x30e890e380bbbfe0, -0x029960ad7adec445,
3640 0x739971f03b533351, -0x3d7a8714758eddc8,
3641 -0x0e438dca01a4c7f1, -0x498770017bf7829e,
3642 0x3f91d9063f19e5e9,
3643 });
3644 try testArgs(@Vector(15, i64), .{
3645 0x10e7e0bc67dd9007, 0x3f98419baf874724,
3646 0x5734cc0c224c897c, 0x309b977f13650658,
3647 0x69e4368beccb9363, 0x5f59916d2153f2c8,
3648 -0x68baea76bc430b80, 0x64df0fc97c44e6db,
3649 -0x6f653ae097106799, 0x047ea3393d8ea124,
3650 -0x12b554d34241c116, -0x4b129c9655dd20e8,
3651 0x5e1c137e8cf8c657, -0x4de73be2ed085459,
3652 -0x4db87055403fae80,
1174 });3653 });
1175 try testArgs(@Vector(16, i64), .{3654 try testArgs(@Vector(16, i64), .{
1176 0x36b4a703d084c774, 0x07a500f0d603a4d5,3655 0x4a200de54cf8a7d2, 0x7aa8a43d6ce85e1d,
1177 -0x27387989d2450cdd, 0x02073880984d74c8,3656 0x635c52f9d27dc223, -0x4f8273cfef9532a5,
1178 -0x18d1593e36724417, -0x79df283cc6f403d8,3657 0x28e0934381355f7d, -0x1f4c5936fdc08f03,
1179 0x36838a7c54da5f2b, -0x2bf76c1666a1b768,3658 -0x1e48c06274cedf3b, -0x437a90f8ae575a54,
1180 -0x6ace0d64a2757edc, 0x41442e9979a0ab64,3659 -0x47a1285dc3053bfb, -0x2b9f621c5282cf9c,
1181 0x002612bfdf419826, 0x1128ba5648d22fe8,3660 -0x3afbbad2d44d3b2c, 0x093993c1a3e2446c,
1182 0x49b0f67e0abb8f3b, 0x6bf3e9ac37f73cf3,3661 -0x06e64b37f5cbf493, 0x7ef6fa9fdbf10a56,
1183 -0x5c89f516258c7e77, 0x6b345f04e60d2e56,3662 0x584892e663ff7964, -0x39cec290300b6b26,
3663 });
3664 try testArgs(@Vector(17, i64), .{
3665 0x5d63f7f3ea59a706, 0x66479c3ea87e877d,
3666 0x60bbb83aa7074fef, 0x18af9352281786b6,
3667 -0x6585bf8d88ec68b0, 0x4061a05c9d172919,
3668 0x5416c7dbe6504682, 0x7099f1f3b043d901,
3669 0x74d29539167d4ebe, -0x7c0d98061999fa98,
3670 0x650f42990507957f, 0x67a6137616636aa2,
3671 -0x79aab7fb99bca92b, -0x780079d7c8e19ca0,
3672 0x0cd27dfe2c7521a6, 0x765e9335c8148fa2,
3673 0x784d1133125c6938,
1184 });3674 });
11853675
1186 try testArgs(@Vector(3, u64), .{ 0, 1, 1 << 63 });
1187 try testArgs(@Vector(1, u64), .{3676 try testArgs(@Vector(1, u64), .{
1188 0x7d2e439abb0edba7,3677 0x355b7529a18f6e0a,
1189 });3678 });
1190 try testArgs(@Vector(2, u64), .{3679 try testArgs(@Vector(2, u64), .{
1191 0x3749ee5a2d237b9f, 0x6d8f4c3e1378f389,3680 0x93377f019ceeb5f9, 0x990ccc5803cebd4b,
3681 });
3682 try testArgs(@Vector(3, u64), .{
3683 0xdcf28cd5bc1bcd54, 0x3770fa01b4bc08f9,
3684 0x5feeab26a2e0c753,
1192 });3685 });
1193 try testArgs(@Vector(4, u64), .{3686 try testArgs(@Vector(4, u64), .{
1194 0x03c127040e10d52b, 0xa86fe019072e27eb,3687 0xfb61199844333d29, 0xfac4e5a64b92413c,
1195 0x0a554a47b709cdba, 0xf4342cc597e196c3,3688 0x9d6d13d41ef64ba0, 0x632935cc93fd1804,
3689 });
3690 try testArgs(@Vector(5, u64), .{
3691 0x48f503b75b7c871d, 0x0bf3302c1c7311a9,
3692 0xa7c84e61899d845f, 0x26c4a4d696c3a12f,
3693 0x10fe1869c95ddde5,
3694 });
3695 try testArgs(@Vector(7, u64), .{
3696 0xa882300f7b3feb0c, 0x3d006e16890ec7e6,
3697 0x807a2a2da9c68810, 0x3574c34f46fadbb9,
3698 0xfd1ff4b713ff7e75, 0xe7741a11125e5734,
3699 0xa219656fc3e08bc9,
1196 });3700 });
1197 try testArgs(@Vector(8, u64), .{3701 try testArgs(@Vector(8, u64), .{
1198 0xea455c104375a055, 0x5c35d9d945edb2fa,3702 0x794ce49dc61ffe02, 0x26ded6f4ca236f77,
1199 0xc11b73d9d9d546fc, 0x2a9d63aae838dd5b,3703 0x2bb852a1a181e016, 0x9218a461b622abf3,
1200 0xed6603f1f5d574b3, 0x2f37b354c81c1e56,3704 0x250471ad116f28ab, 0x732280396a95f70f,
1201 0xbe7f5e2476bc76bd, 0xb0c88eacfffa9a8f,3705 0x913532dcdb1abe1a, 0x8b550b165f6f3c0d,
3706 });
3707 try testArgs(@Vector(9, u64), .{
3708 0xe0e3bc1116099b0c, 0x0a5dd53ba26770d2,
3709 0x43995c799f295c76, 0x4c169b362ce40ac2,
3710 0xb50ad4961a4c1508, 0xc46d51f361ed7b6a,
3711 0x2d7432e560138aae, 0x88e8d2b4338bfa38,
3712 0xac1cf0c39508b21a,
3713 });
3714 try testArgs(@Vector(15, u64), .{
3715 0xf3da70a7e248f183, 0x85386f2f82fa4906,
3716 0x8ccc8c1328dc408c, 0x563a8a2d52bd286d,
3717 0x87501c5a211a884f, 0xf740939299cc59fc,
3718 0x00c656fb3cf431f2, 0xbd74f9747be208d6,
3719 0x45013667a3ba98cc, 0x2954ea4409a605a3,
3720 0xf9bb98de17f87873, 0x94770fedfd97b1e6,
3721 0xfa90322d59fdb4bb, 0x7242fb5f83e8c199,
3722 0x2340d307e4438482,
1202 });3723 });
1203 try testArgs(@Vector(16, u64), .{3724 try testArgs(@Vector(16, u64), .{
1204 0x2258fc04b31f8dbe, 0x3a2e5483003a10d8,3725 0xd09341c824a83e25, 0x8a30caf3359f3d58,
1205 0xebf24b31c0460510, 0x15d5b4c09b53ffa5,3726 0x46cbadcd68afd397, 0x9f5f3e7ef79d9255,
1206 0x05abf6e744b17cc6, 0x9747b483f2d159fe,3727 0xa247f41fd962e4ae, 0x8437c02fa08497e8,
1207 0x4616d8b2c8673125, 0x8ae3f91d422447eb,3728 0xc375990c3cd82fe9, 0x5168826a7224f73f,
1208 0x18da2f101a9e9776, 0x77a1197fb0441007,3729 0xc99ca45a2b746bb4, 0x42b849004159ce02,
1209 0x4ba480c8ec2dd10b, 0xeb99b9c0a1725278,3730 0x007c450769410f61, 0x8f2f91cf22e178fa,
1210 0xd9d0acc5084ecdf0, 0xa0a23317fff4f515,3731 0x86ee7d1ff41c0f89, 0x079e9ec26a77aa45,
1211 0x0901c59a9a6a408b, 0x7c77ca72e25df033,3732 0x3d2ffdbecf9660b0, 0xbb9ee5348ef39666,
3733 });
3734 try testArgs(@Vector(17, u64), .{
3735 0xcc4ba58941a112da, 0xfbbb48cbf9da0088,
3736 0xd558a4110617b6a2, 0xfe39ed646f5519db,
3737 0x56f3fbd81853b1e0, 0xd895d679446390d4,
3738 0x6eba9cc3f0d682d7, 0x248cbedaa78b144f,
3739 0x6be12ab5dce9a518, 0x7c30ffeefd1a097b,
3740 0x8ff88cf1643c385b, 0x6f6e9f5191889057,
3741 0xc4b4beeb8b531de0, 0x0189188d979da467,
3742 0xab22fceefbdd33d6, 0x1616bbf79271a0f3,
3743 0x52075d69a6cf3450,
3744 });
3745
3746 try testArgs(@Vector(1, i65), .{
3747 -0x04a1a4da1d9da76bf,
3748 });
3749 try testArgs(@Vector(2, i65), .{
3750 0x03c475f6c2f0951e5,
3751 0x0704f02479fb01242,
3752 });
3753 try testArgs(@Vector(3, i65), .{
3754 0x0138ba6e706a5ca65,
3755 -0x06c79c32b5080c6f7,
3756 -0x052327b60748ab35f,
3757 });
3758 try testArgs(@Vector(4, i65), .{
3759 -0x0815fe21ee3c89d70,
3760 -0x07100c511bbecfc96,
3761 0x04c3d645430697de9,
3762 -0x04d3fe6078180a7de,
3763 });
3764 try testArgs(@Vector(5, i65), .{
3765 -0x0c18f313629a95a15,
3766 -0x0ff2287b0afcce461,
3767 0x0f244ae6e9a14a1fe,
3768 -0x04eb5f56df21aeef8,
3769 0x0c84f100c53ecb805,
3770 });
3771 try testArgs(@Vector(7, i65), .{
3772 0x08242f0645e164a6b,
3773 0x0bae1b6147f56fd3b,
3774 -0x00043aa964b5c8834,
3775 0x0e44433985af34829,
3776 -0x01e7806be748ac6e9,
3777 -0x0e539dbff9fc2ed67,
3778 -0x087db7cf263c37dd9,
3779 });
3780 try testArgs(@Vector(8, i65), .{
3781 0x0fc8f809919517224,
3782 -0x0a09049fd34fe9525,
3783 -0x082c50cffe1f00ce6,
3784 0x0a58b97a6a016097f,
3785 -0x0605ab965554e1f64,
3786 0x01786432da6221baf,
3787 0x0cf8d7ffa9bd1a9d1,
3788 0x06a5e63bd10028fd3,
3789 });
3790 try testArgs(@Vector(9, i65), .{
3791 -0x064688784ee533a87,
3792 -0x0e36f7c74d13cb8af,
3793 -0x00fbf8cdce6c2ad1f,
3794 0x083a32da05be62d94,
3795 0x0e8518099bbc20330,
3796 -0x0bdc61a1ab64481f9,
3797 -0x0dcd7b2ac1bbb4f0c,
3798 0x0a085abafc8c3f27b,
3799 0x00fbf0b4bd400496e,
3800 });
3801
3802 try testArgs(@Vector(1, u65), .{
3803 0x0e0e8009c8e1ec0b5,
3804 });
3805 try testArgs(@Vector(2, u65), .{
3806 0x1c117d8ad564625d7,
3807 0x0c3747a5467b37ee5,
3808 });
3809 try testArgs(@Vector(3, u65), .{
3810 0x12b461e9764b53748,
3811 0x003a204e80672e085,
3812 0x014fe8f2e3ec390f2,
3813 });
3814 try testArgs(@Vector(4, u65), .{
3815 0x000e3560e820cbc54,
3816 0x05fb40efe3f1ea8f8,
3817 0x12037f424845e037c,
3818 0x193cc5a0da63d3df1,
3819 });
3820 try testArgs(@Vector(5, u65), .{
3821 0x0590bf116c607ce3e,
3822 0x19a477b6e89225818,
3823 0x0cf6987fe2b219e38,
3824 0x19f9962c1f211ae36,
3825 0x147ee711783a46478,
3826 });
3827 try testArgs(@Vector(7, u65), .{
3828 0x14cac53222c7edefd,
3829 0x1ca73b489f6a2837c,
3830 0x0174a046c14a44609,
3831 0x16ad206733a8d5306,
3832 0x082b7307498cdb16c,
3833 0x103fe2c5bccab3ac9,
3834 0x1980a02379a8ea497,
3835 });
3836 try testArgs(@Vector(8, u65), .{
3837 0x0bb30b196c3ee122c,
3838 0x131a3e0b3aa6d2271,
3839 0x1c350e1290fe9f771,
3840 0x0258f532f8e77bcfd,
3841 0x0de19ad96c7ab9b22,
3842 0x0af82d4983087e3c5,
3843 0x04359e9aec8013c5f,
3844 0x05ef28227ff853f26,
3845 });
3846 try testArgs(@Vector(9, u65), .{
3847 0x1a50f55a41b5bbbb7,
3848 0x1594b5f154f6b9e75,
3849 0x1ce13b94426f2edfa,
3850 0x165ee33c5d7805448,
3851 0x1337ab026ed906b22,
3852 0x1b6d719acce8941ba,
3853 0x0a2e49415413db37a,
3854 0x162394487c383a1f3,
3855 0x1c7c0ab4d0d5aff59,
1212 });3856 });
12133857
1214 try testArgs(@Vector(3, i65), .{ -1 << 64, -1, 0 });3858 try testArgs(@Vector(1, i127), .{
1215 try testArgs(@Vector(3, u65), .{ 0, 1, 1 << 64 });3859 -0x1269fabc2d3ef2a76ffe049437be10dd,
3860 });
3861 try testArgs(@Vector(2, i127), .{
3862 -0x1ea96c9f0850491ef73e8c3d34cfd7d9,
3863 0x39e6865468b439fa018c83f91e5e105a,
3864 });
3865 try testArgs(@Vector(3, i127), .{
3866 -0x0db4b1d90b444db2a143ded070f85b1e,
3867 -0x01b3f62ea0ea5d91e76ed09e4a18956a,
3868 -0x33d5c74e99e40e151f32815402d90a9f,
3869 });
3870 try testArgs(@Vector(4, i127), .{
3871 -0x2ef61a8bfff8747de1ed931e98feac6e,
3872 -0x04ce48788f7f8ae9a4403add50551fa4,
3873 0x16beaff854c2ef6837d7ee0b623ea0a2,
3874 -0x2e4803db1cea5884f8c7e1d1c0fb2870,
3875 });
3876 try testArgs(@Vector(5, i127), .{
3877 -0x3c906f554a2ffe1fe72322b58ea5540f,
3878 0x3075e0a554755389e92bc63618b70034,
3879 0x3bb4ebf828754a38051d2f13dd0bf959,
3880 -0x09dc745d7419586dfd7bf71386027d45,
3881 0x3b142d80ddac6aaa50e61c797d2d931d,
3882 });
3883 try testArgs(@Vector(7, i127), .{
3884 0x1a801572a9f38591e6ec3a23628c4bf0,
3885 -0x129714e4602059eccfecbfca90ca0a49,
3886 -0x0f92f4230c9256fcb8dba6b68744a52b,
3887 -0x0b146fca739b47d0a85bcdbc33c4b16a,
3888 -0x3f6f76d3757db60d9d39200af6b3489c,
3889 -0x02e080402f7ec59fa07192fc395a57d1,
3890 -0x2b4fdb5e3b7bf0f312d82b1c93603580,
3891 });
3892 try testArgs(@Vector(8, i127), .{
3893 -0x2211dd783e1ad24c3d5af011f68354b4,
3894 0x3f005440e5b5c058cdfa285a7880da62,
3895 0x3b30ad071407b244f241aceae163a42d,
3896 -0x23c4fc0e1bf6dfbd3388b644c763d1ca,
3897 0x1186ab95a8b6d3c4e55703615a460fa7,
3898 0x32585f76772b93a3e9afd7e8940be7f6,
3899 -0x2f9f404af316876929a92939993a1681,
3900 -0x0590af0c94d4cfea1cf610aab419adf9,
3901 });
3902 try testArgs(@Vector(9, i127), .{
3903 0x08add0b42220fd2a71f04fe45f14dd2f,
3904 0x251bf6cce8f1d4003e92eb52f2501c74,
3905 -0x17e27992906723b7cd7e831928b02c97,
3906 -0x3d2d8f1d98bf76b2429e2a2a208a6055,
3907 0x2a2f48a325b72b72c4392a131c41ffc5,
3908 -0x0c590b2e084ac595d76a19c894e68859,
3909 0x30ec3b18bbcb33c301cb24a46b3be921,
3910 0x1cc175f62cdc953f5eb16a0a8913093b,
3911 -0x0fc33d8630d2e2ae5a75c4beaf7bd2f4,
3912 });
12163913
1217 try testArgs(@Vector(3, i127), .{ -1 << 126, -1, 0 });3914 try testArgs(@Vector(1, u127), .{
1218 try testArgs(@Vector(3, u127), .{ 0, 1, 1 << 126 });3915 0x7462f202109a0e999de7ab35e87e0325,
3916 });
3917 try testArgs(@Vector(2, u127), .{
3918 0x6f19d7c613d714caab882675ecce9a53,
3919 0x6aa8cab6046949bdeb0edc41c0d42186,
3920 });
3921 try testArgs(@Vector(3, u127), .{
3922 0x5b97d59261ac4dd16f957a0291754717,
3923 0x3e38b6db3f9734f625a892b08e86e214,
3924 0x247d026b349f5a9fd940120c80ad8b52,
3925 });
3926 try testArgs(@Vector(4, u127), .{
3927 0x3717b59f6196b1eea95558d55bd6b96a,
3928 0x1868e935eb0494b7b9b548f049129a47,
3929 0x5fc089af4203a0efab982138893f279c,
3930 0x1b869da17109a01ce820f002a65c26a4,
3931 });
3932 try testArgs(@Vector(5, u127), .{
3933 0x0d89c344326d130d22b8dd899707aa38,
3934 0x5af65ed48bc78475d2ae1d56017daea7,
3935 0x2b67eb9fec417d211336c46fad38aba1,
3936 0x072712b1bf92c551f6d3e1cf71953224,
3937 0x66ed8a0aa3a31a6ed45c24807f0ac25a,
3938 });
3939 try testArgs(@Vector(7, u127), .{
3940 0x133d50c8794c33f96b432a9e84182bbe,
3941 0x43bec0f35bea1a9b6a706f39d4e5c563,
3942 0x3af628ccbc1973aee83a136f73f2f09f,
3943 0x7f80cc2c0b23cb51c10da6f65c95ac0b,
3944 0x08b8e883ac49809c919126bf716ea90d,
3945 0x30285cc5ba8ffecb816c344eea07b1d8,
3946 0x6befbab2ff599032ed04cc1e002d8c34,
3947 });
3948 try testArgs(@Vector(8, u127), .{
3949 0x6c92a56152df1d0bc4003108d2c035e5,
3950 0x1012581d4b7de3403694621515c85ccc,
3951 0x1ca797428f6e4ee601cad585b6c5d098,
3952 0x1b762e4e4606637ad02de1494b2da26a,
3953 0x1dfe3129064ab88a66967141a3109fbc,
3954 0x35a3c0f38ffb5b3701ac383b9499a665,
3955 0x38d199f20d34841d7350a02d83c7e4a7,
3956 0x6a87705d91b3325b7edcb4ed3f9eed30,
3957 });
3958 try testArgs(@Vector(9, u127), .{
3959 0x18a96634c100beb14a9f7255f577244c,
3960 0x21d39a8a3e9af9f883cdc413a4b29f21,
3961 0x5f7e1f12a47d2530ef0bbe01e836e290,
3962 0x244fdb35a6e32c5ab8f8a2ce536b2111,
3963 0x0829eda9af0f9e1b9301de171cae5d79,
3964 0x4a4485619560dca50f7e9ea47e5c4879,
3965 0x70c3f24bdb370119e60db26ff7c8dde0,
3966 0x4dc4da0a82f10073fff7f4c79216dd14,
3967 0x314a855e0ee8f5401006af852258adfc,
3968 });
12193969
1220 try testArgs(@Vector(3, i128), .{ -1 << 127, -1, 0 });
1221 try testArgs(@Vector(1, i128), .{3970 try testArgs(@Vector(1, i128), .{
1222 -0x2b0b1462b44785f39d1b7d763ec7bdb2,3971 0x743d7edc2f7bae65332567ccb7e17140,
1223 });3972 });
1224 try testArgs(@Vector(2, i128), .{3973 try testArgs(@Vector(2, i128), .{
1225 -0x2faebe898a6fe60fbc6aadc3623431b7,3974 0x29cba1f54ca060061ce2a082f24d3cff,
1226 0x5e596259e7b2588860d2b470ba751ace,3975 0x67fe5eecb0e54c0b6680c8723c91ee1f,
3976 });
3977 try testArgs(@Vector(3, i128), .{
3978 0x5d23fbff853640375e4fea765d45096a,
3979 0x0510c243956b80ca93838c661f4c4ce9,
3980 0x7bde7db0cc6a7aaedd636197705b85e2,
1227 });3981 });
1228 try testArgs(@Vector(4, i128), .{3982 try testArgs(@Vector(4, i128), .{
1229 -0x624cb7e74cf789c06121809a3a5b51ba,3983 -0x744c77b7f40ccec86498d4e3ff92260b,
1230 0x23af4553d4d64672795c2b949635426f,3984 -0x2c3f3f0b6a8cd17f73a082846a77dbb7,
1231 -0x0b598b1f94876757fb13f2198e902b13,3985 0x2af1c5e71f3764211e95b37db75008cf,
1232 0x1daf732f50654d8211d464fda4fc030c,3986 -0x082a87b4571760fb876d47e2a13ee6a0,
3987 });
3988 try testArgs(@Vector(5, i128), .{
3989 -0x7a34a250a0d7e02875ea9b589a3f7009,
3990 -0x44ad60deaa4229c0584e61b71e66653c,
3991 0x48b53a60ba3c8961476b7e288b1f1aa8,
3992 0x25f896ea80a5d0f1c051b122ce9f40f3,
3993 -0x2e2b3c3855e8964e4115757517d1f62b,
3994 });
3995 try testArgs(@Vector(7, i128), .{
3996 -0x78e261d24f5803a086cdb650789236dc,
3997 -0x274c41a258e7bec4d5301316859f51fd,
3998 -0x7b53e0d4310a27b1236d267fc9c92bfe,
3999 0x13069a0197a87a6abfa57fd7cf0a0360,
4000 -0x2d7041962c6c6f5d3c344b760803f68b,
4001 -0x715518f77daef65d9cdd4bb3e4ad2b5a,
4002 -0x68e9587c2cee9840d54907b97430ef8e,
1233 });4003 });
1234 try testArgs(@Vector(8, i128), .{4004 try testArgs(@Vector(8, i128), .{
1235 -0x03c7df38daee9bc9a2c659a1a124ef10,4005 -0x7c4635f4573902107d7f9287beed86ad,
1236 0x657a590c91905c4021c28b0d6e42304a,4006 -0x57a0f8b1fc10c247bc362724cb2638d1,
1237 -0x3f5176206dadc974d10e6fcbd67f3d29,4007 0x47a5955f0fee284a2c14ce5f8efaf8f4,
1238 0x066310ace384b1bc3549c71113b96b8a,4008 0x6b3b18486e73a0277abaca37235ae1c2,
1239 -0x6c0201f66583206fcea7b7fe11889644,4009 0x5694cacab37b6a83e9399d4d8bfb0d8c,
1240 -0x5cc4d2a368002b380b25415be83f8218,4010 -0x7ad35792e9e56fbfdf964c31f9dfe641,
1241 0x11156c91b97a6a93427009efebcb2c31,4011 0x5729001f2b5ae188d92aa361d4d3bc6a,
1242 -0x4221b5249ed0686c2ff2d5cab9f1c362,4012 -0x738c6d97d020d94f56b367721cafff40,
4013 });
4014 try testArgs(@Vector(9, i128), .{
4015 0x03c8f6e9a23c18ee51f9e7588582fb4c,
4016 0x789d77f0d91035467aebaa094e43aaf3,
4017 0x2ce9790bf03fee2b9386f3458182b415,
4018 -0x516ab5386fd98498688a2a06b8038c6e,
4019 -0x36ad4507626b6e9b4ca1c846694d0f7e,
4020 0x18193adfda9ada0a449a9e6667350ed3,
4021 -0x0d88d1123261cdc0ff373bafa9c9bfdd,
4022 0x1f529ee80d509d8ae3f0dbf532c127b9,
4023 0x30629d533c1286d30ced4c219cf078ba,
1243 });4024 });
12444025
1245 try testArgs(@Vector(3, u128), .{ 0, 1, 1 << 127 });
1246 try testArgs(@Vector(1, u128), .{4026 try testArgs(@Vector(1, u128), .{
1247 0x809f29e7fbafadc01145e1732590e7d9,4027 0x5566c76797d4523a32920021e51621d5,
1248 });4028 });
1249 try testArgs(@Vector(2, u128), .{4029 try testArgs(@Vector(2, u128), .{
1250 0x5150ac3438aacd0d51132cc2723b2995,4030 0x7e82f7f4dfef8f442243b3b3b355a96e,
1251 0x151be9c47ad29cf719cf8358dd40165c,4031 0xf967bd965d50a70c0d4000d9f7928b83,
4032 });
4033 try testArgs(@Vector(3, u128), .{
4034 0xd2c9228d99fc7a00a9331c6b81545e7c,
4035 0xdb03015497d36dd203b3349722706791,
4036 0xd3fe8ece75a5f18e8e34a257cc2c6c64,
1252 });4037 });
1253 try testArgs(@Vector(4, u128), .{4038 try testArgs(@Vector(4, u128), .{
1254 0x4bae22df929f2f7cb9bd84deaad3e7a8,4039 0xa505ecca2d7b80d447475b9dd1f5e07c,
1255 0x1ed46b2d6e1f3569f56b2ac33d8bc1cb,4040 0xc347f7b77a199786fabb8da91b40925a,
1256 0xae93ea459d2ccfd5fb794e6d5c31aabb,4041 0xbd2f98ea28ad941c21b342cdfbb4d297,
1257 0xb1177136acf099f550b70949ac202ec4,4042 0x2a91d184034d85bcf7bc2501ea07d73b,
4043 });
4044 try testArgs(@Vector(5, u128), .{
4045 0x8b4439cc68b09f984c3ccacee6ab94a8,
4046 0x78894d3a02536275951e9011483eb7d5,
4047 0x1a446bd15eab7cc896d1a9c299285957,
4048 0x1fd269e765c4a36996f1561e0bf50b31,
4049 0xe03c9a87b79c7fa082fc8f65aa50ebdd,
4050 });
4051 try testArgs(@Vector(7, u128), .{
4052 0x5008ab32979156a8acd32a7e32ef7f15,
4053 0x94aeced9de5b111f8003fec9b526f527,
4054 0x92fc060348f1ee6b482bd667aa43ba26,
4055 0xdaf4347b4b58ba2ded70a52cb5b5fbfa,
4056 0xf4e7a373762b18a2ce100f8a34e39444,
4057 0xe2186b935e0099ca342a61c1fb9a8091,
4058 0x4d661e1d2199985909534e9e2abb1c44,
1258 });4059 });
1259 try testArgs(@Vector(8, u128), .{4060 try testArgs(@Vector(8, u128), .{
1260 0x7cd78db6baed6bfdf8c5265136c4e0fd,4061 0x7267d2c9d89152d441e28beac39fa0e5,
1261 0xa41b8984c6bbde84640068194b7eba98,4062 0x92612c4fa59b5584bd5c68a6ef468616,
1262 0xd33102778f2ae1a48d1e9bf8801bbbf0,4063 0xb5c583d6b304b3843951ae367133504c,
1263 0x0d59f6de003513a60055c86cbce2c200,4064 0xf1b17d139b8c683990dcbe42f2ffe671,
1264 0x825579d90012afddfbf04851c0748561,4065 0x71f721519c179ee00f737645f456b65f,
1265 0xc2647c885e9d6f0ee1f5fac5da8ef7f5,4066 0x8ab931bcf9d54fe8f998ea07f7ad8e55,
1266 0xcb4bbc1f81aa8ee68aa4dc140745687b,4067 0xd4b148cd313442ec6445e5c09a3de2ea,
1267 0x4ff10f914f74b46c694407f5bf7c7836,4068 0x5698f95052ae8dffddf09bbc6216d38d,
4069 });
4070 try testArgs(@Vector(9, u128), .{
4071 0x4d322a5f0575a4b6efd05d6f67c6e7cb,
4072 0x6b22b0fd0300add6fc6583cca73324a6,
4073 0x73c79c8c3aba60a9d5b5f2afcc69da22,
4074 0x7d278f7642f544b91fb0967559738ec6,
4075 0xd39b8bd774220a07f81c1655a3ea4b04,
4076 0xf6e6b067fe824d7a88e7de3c9b528e58,
4077 0x369b7db29173bedd0b689ada1ccb3f53,
4078 0x85bfd20640039457bd071af527feb986,
4079 0x77cb6db8dcaaf7c679a3952bdf3b46ed,
1268 });4080 });
12694081
1270 try testArgs(@Vector(3, i129), .{ -1 << 128, -1, 0 });4082 try testArgs(@Vector(1, i129), .{
1271 try testArgs(@Vector(3, u129), .{ 0, 1, 1 << 128 });4083 -0x0f44902992dd90b6b2bdcd3dee26ed81b,
1272
1273 try testArgs(@Vector(3, i191), .{ -1 << 190, -1, 0 });
1274 try testArgs(@Vector(3, u191), .{ 0, 1, 1 << 190 });
1275
1276 try testArgs(@Vector(3, i192), .{ -1 << 191, -1, 0 });
1277 try testArgs(@Vector(1, i192), .{
1278 0x0206223e53631dfaf431066cf5ac30dd203bb8c7baa0cec7,
1279 });4084 });
1280 try testArgs(@Vector(2, i192), .{4085 try testArgs(@Vector(2, i129), .{
1281 0x187a65fa29d1981dacf927e6a8e435481cfdcba6b63b781b,4086 -0x0305d2bf464b50a05766933859bb32851,
1282 -0x0f53cb01d7662de0d19fa0b250e5bbc6edf7d3dd152f0dc3,4087 -0x0db8e49f48667923a7316b6b02c24956c,
1283 });4088 });
1284 try testArgs(@Vector(4, i192), .{4089 try testArgs(@Vector(3, i129), .{
1285 -0x3a456cd0eab663b34d5b6ad15933a31623aacb913adb8e41,4090 -0x0ff7d15e1c921f6c09189f8c22a1eebe5,
1286 -0x03376d57e9c495ac4ea623e1bf427ae22dcef26e4833da33,4091 0x0c6b14a671cd4a0ea34b31dd3762f8e93,
1287 -0x28a90cfee819450e3000f3f2694a7dba2c02311996e01073,4092 0x011c8b2dd5616cd38811691ed41e44a7f,
1288 0x46c6cae4281780acd6a0322c3f4f8b63c3741da31b20a3cd,4093 });
4094 try testArgs(@Vector(4, i129), .{
4095 0x08083e8a84ee72ecb5ec61d6255fbdc6e,
4096 0x0d1d7ddb25c8e41bb05595cddd06f3c51,
4097 0x0b32b29ab5070e4c89a8e318c42b8307c,
4098 0x006bd80101e00f7247f4345e66af09850,
4099 });
4100 try testArgs(@Vector(5, i129), .{
4101 0x0eb5215d4f542021cd904624dc94b4d09,
4102 -0x0077f53ce5c2297e6b6eec1ed435b6edb,
4103 0x0fb0abfc2444105aee10adaefc8574bf6,
4104 -0x0634b1120f0ce9002980ee8ea7df397fb,
4105 -0x0b13ad1cbf50d89b70195e07eaf539cf8,
1289 });4106 });
12904107
1291 try testArgs(@Vector(3, u192), .{ 0, 1, 1 << 191 });4108 try testArgs(@Vector(1, u129), .{
1292 try testArgs(@Vector(1, u192), .{4109 0x04bf162b7335a7ed6595ef439c3bca959,
1293 0xe7baafcb9781626a77571b0539b9471a60c97d6c02106c8b,4110 });
4111 try testArgs(@Vector(2, u129), .{
4112 0x11f0b8a2dd0106c219bb3178e05494541,
4113 0x12860bc7203d4df432a3cf65e162278d9,
4114 });
4115 try testArgs(@Vector(3, u129), .{
4116 0x0e7240ab63132cb5a050a3a37f0aae72f,
4117 0x1761ee40c60d0e3d8d10b9b085401766d,
4118 0x06ab93ee8933a9900386d6161cebbcde6,
1294 });4119 });
1295 try testArgs(@Vector(2, u192), .{4120 try testArgs(@Vector(4, u129), .{
1296 0xbc9510913ed09e2c2aa50ffab9f1bc7b303a87f36e232a83,4121 0x14abbd1dabf3b66dc4834bb6ca71cd663,
1297 0x1f37bee446d7712d1ad457c47a66812cb926198d052aee65,4122 0x0cec8c3f6edf7f1c4041ba3e9290fc368,
4123 0x065f7a02e2c674f50bf17a027dd99b6d6,
4124 0x14fea575487ebbbb907d4ea477bb41f51,
1298 });4125 });
1299 try testArgs(@Vector(4, u192), .{4126 try testArgs(@Vector(5, u129), .{
1300 0xdca6a7cfc19c69efc34022062a8ca36f2569ab3dce001202,4127 0x0c7364e53c0e3d1b7adc4302471e944ce,
1301 0xd25a4529e621c9084181fdb6917c6a32eccc58b63601b35d,4128 0x01b877b126e0cac7eac0d8f1f21c186aa,
1302 0x0a258afd6debbaf8c158f1caa61fed63b31871d13f51b43d,4129 0x0fb4e479178be9a9363dee23c7c772e8b,
1303 0x6b40a178674fcb82c623ac322f851623d5e993dac97a219a,4130 0x0a79c2021801327e5685c8f69afc82c80,
4131 0x0bb084ee07f1f1b0eae7b632b21effb99,
1304 });4132 });
13054133
1306 try testArgs(@Vector(3, i193), .{ -1 << 192, -1, 0 });4134 try testArgs(@Vector(1, i255), .{
1307 try testArgs(@Vector(3, u193), .{ 0, 1, 1 << 192 });4135 0x08ffa1eb6ae037d6fcdc279d548082bfc27c77e30c265e04ff55e4d60fa1a886,
4136 });
4137 try testArgs(@Vector(2, i255), .{
4138 -0x08f3626e9f1b561d3364559676fffe16e809176ec624c1687f318bad67ab2b12,
4139 0x3328c8b59d09073fcb7e54d5632b565322ee296d727dbf93b7863b13a7256f8d,
4140 });
4141 try testArgs(@Vector(3, i255), .{
4142 0x05bd12ab3e8171b1dafc5716ef851a77830f619c1fc233e3175a6e6ebf8237f2,
4143 -0x0c5142c3de521d31e3284000a30fab14cb4c70d447eebfc78e7b7f422a5f2258,
4144 0x3b0e22e5807d7e4704b5db2800cd15ac964c3d9b12a13e6b614620f3507feb7f,
4145 });
4146 try testArgs(@Vector(4, i255), .{
4147 -0x14fb179f14c52dad21b622efe2fcae82f1bf1fce4b49bccdd918b2600168eb19,
4148 0x1432a7fd08acfe8165207e4c96bad7b422f79a492e00412e505d1179187007b5,
4149 0x347734d964e8bc5e6e737fe8486998cccd7a67fca36ea2be9816c5014e9ae93e,
4150 0x1630ffda865d3e2b7c204ecb7534c04397c6c5afc1df36a0febc9cb028629ae2,
4151 });
4152 try testArgs(@Vector(5, i255), .{
4153 -0x0a867735be9212a216e5a0ce6d77f8d787b7f340b0c091ad95939d21b5c02e12,
4154 0x1005df8d3c60aa085ad3302a9d02269cf3505a4ab3ce0b3cbac8328edfcd006c,
4155 0x0261f5d27bd0d6bce9bfc3624eb11dd699a227171729e3f81020014dd12cdcda,
4156 0x203a7c3e34b012a40d49c238c73a499e72ea35e1f73ede7458397780fe7a400e,
4157 0x0810b59e887390b9d1fe864b97722b74382777d2217f7617e6cd30e35df031c9,
4158 });
13084159
1309 try testArgs(@Vector(3, i255), .{ -1 << 254, -1, 0 });4160 try testArgs(@Vector(1, u255), .{
1310 try testArgs(@Vector(3, u255), .{ 0, 1, 1 << 254 });4161 0x68b48f7d3a9b48503994f5f1766ddb8d4ac4475e241c87ddf8da6a76db27d27c,
4162 });
4163 try testArgs(@Vector(2, u255), .{
4164 0x337ec1d10605419d8dd4355be390a4f023499e34db52bf3b0d0a62606e348fdb,
4165 0x77bd83bc7a4710a1d2e1bef57f2106d591d99b56ae7e3607f02f6bb88936c38e,
4166 });
4167 try testArgs(@Vector(3, u255), .{
4168 0x1227d2db3e23ef3f557816e951e4bb10e72ff351ab91b5cacc71bbeca8b0d596,
4169 0x43a799e7b87842c06371083027c79ca49c371476e20ecc2f06eaf90109ab8879,
4170 0x28ee9a513882d1783c349978eb8113872e36db3a9f622865197259c170e6b0c5,
4171 });
4172 try testArgs(@Vector(4, u255), .{
4173 0x29fbe1da4fb030b7a41f4efc39782901e2ed36bb3a2bf6fce3328f1bb35a5d4a,
4174 0x181c6db7ec0704df46fb7ae82dab95b4b0c35e3792749fdd37c82b099def90fb,
4175 0x4f2a40171922d1ac76fb75284c58d5999dc471983dfd18ea9c09e2358b9bd958,
4176 0x73bd72cd5c05d4539e9068bf63f790f57a5209198308e82bbda5d794882e4006,
4177 });
4178 try testArgs(@Vector(5, u255), .{
4179 0x750d690dc749b9915d831d18a10bb93284829479a0995f2faffdbc9c5d688571,
4180 0x20c66f9fa79198e4cde0773e4eff0e99facbbec68e00363cf25ee2a244ff44f5,
4181 0x0af314300283a888b3c8b1d463c24308f459c99cd56f86ad94b9cbfc9b8d892e,
4182 0x3f748216e8320fcbac46856706cba9307cda93b051f96b0dbe6fc7aa2e852d40,
4183 0x230599336b1286dad05f7f7cd278456da672540599e5c582636b06e6bf4e5db6,
4184 });
13114185
1312 try testArgs(@Vector(3, i256), .{ -1 << 255, -1, 0 });
1313 try testArgs(@Vector(1, i256), .{4186 try testArgs(@Vector(1, i256), .{
1314 0x59a12bff854679d9b3c6d1d195333d9f748dd1e2a7ad28f24f611a208bf91ed3,4187 0x11ee16bea436e0ca62a4b2210bf40485200d01cbd7cdf7dffdeaa211341cc1b9,
1315 });4188 });
1316 try testArgs(@Vector(2, i256), .{4189 try testArgs(@Vector(2, i256), .{
1317 0x6b266e98bd5e7e66ba90f2e1cb2ff555ac755efdbe0946313660c58b46c589bb,4190 -0x2d656db593551216afa0151ba461ab2b45065679f5906fcaf982650d1ae08700,
1318 -0x4ab426d26f53253ae3b2fb412d9649fc8071db22605e528f918b9a3ee9d2a832,4191 -0x1a9eca0762dc0aa39484646be3a3d31413399f03b752877ee1895cebacf79bb3,
4192 });
4193 try testArgs(@Vector(3, i256), .{
4194 0x1ce1dbf5cc4de891d8cb2650fd51532656189f6af66531e17e9898421b8eeb70,
4195 0x79693e75be0632e29a7c9d8fc6b8c6d999d99e5729c001c3d8be215166563374,
4196 0x360042a6f7deacda9311f0e6e720e4fcf569c49957872a7e4e2a9f29bff58efd,
1319 });4197 });
1320 try testArgs(@Vector(4, i256), .{4198 try testArgs(@Vector(4, i256), .{
1321 -0x3a64f67fddd0859c0f3b063fc12b13b1865447b87d1740de51358421f50553b5,4199 -0x3afaf6fc3c751086bb171ee26d4fa5d5867401468e860df8622cd70c74ecd286,
1322 -0x7c364fc0218f1cab29425b1a4c9cbdbf0c676375bee8079b135ce40de3557c0b,4200 -0x3286f5d9152243d178e5215e797b3fc6194e0bb3cc7eab1787131b5002bab4b1,
1323 0x368d25dc3eab1b00decd18679b29b7f4d95314161bd3ee687f2896e8cd525311,4201 -0x48c21dad136e077f3160b044d45088d6e38e1f6360810ad1d2e5236cf6291f53,
1324 -0x6d9aacd172a363bf2d53ea497c289fd35e62c2484329c208e10a91b4cea88111,4202 -0x7ffe532698217c24e1aef9da766a880482864bd3edcefa5d691dc3eb987f9eec,
4203 });
4204 try testArgs(@Vector(5, i256), .{
4205 -0x683d8b39ca890a8bb379f971b7ce21ccfb2d02960fbb545f6184ff3b2b1b9e00,
4206 0x5234f0155f933ed2f6142c0482911c3752c18851c5826eab3c7b0367cb0222b0,
4207 -0x106f2a3eb03fedcbd8e09a7e50d4ddb711869d85b0933a1ae4990c60d18b02ee,
4208 0x1841840fa31b745ce19f58a0e26aeaf201ae47b20218ec1ac0f742d0a824fa70,
4209 -0x1beda34721cb08e6d259b090c4b86460113f5d3714e04a9efdbd838230b87e50,
1325 });4210 });
13264211
1327 try testArgs(@Vector(3, u256), .{ 0, 1, 1 << 255 });
1328 try testArgs(@Vector(1, u256), .{4212 try testArgs(@Vector(1, u256), .{
1329 0x230413bb481fa3a997796acf282010c560d1942e7339fd584a0f15a90c83fbda,4213 0xe160c3257eedecf8e4e794287d2bdbe05e0199f9fa377bacaab7150a08218c43,
1330 });4214 });
1331 try testArgs(@Vector(2, u256), .{4215 try testArgs(@Vector(2, u256), .{
1332 0x3ad569f8d91fdbc9da8ec0e933565919f2feb90b996c90c352b461aa0908e62d,4216 0x2a2890961f9c32fd6862a8a789e13ae578b8e97e85df9bfe2cd1c3633f470bb9,
1333 0x0f109696d64647983f1f757042515510729ad1350e862cbf38cb73b5cf99f0f7,4217 0x42ff3305839a8fab4f37fcadfce0280df965a34fe306251ece6160dd39e51628,
4218 });
4219 try testArgs(@Vector(3, u256), .{
4220 0x1662b2361088c58a203bcc4248650c2b0c42cdd1fca6f9e075a1e3723ea39ad2,
4221 0x16fecf186c81ad2d5879a8f8fd32c07ef5d3e6864e0fa9d02e07d73d58eff0a3,
4222 0xa7a55547b67ecde8dd03f7821ca174f0c700ccfa4279be827da689db22a67b73,
1334 });4223 });
1335 try testArgs(@Vector(4, u256), .{4224 try testArgs(@Vector(4, u256), .{
1336 0x1717c6ded4ac6de282d59f75f068da47d5a47a30f2c5053d2d59e715f9d28b97,4225 0x38425be8fb0d50bd71de47f3a43e79f1c5ff4e218c7e819fc99fc575d105fdcf,
1337 0x3087189ce7540e2e0028b80af571ebc6353a00b2917f243a869ed29ecca0adaa,4226 0xb35710b4e5f00e105b10198a43bdc34dbb311580649a5fe6ee95419288002437,
1338 0x1507c6a9d104684bf503cdb08841cf91adab4644306bd67aafff5326604833ce,4227 0x6a0ffbd570da143aa47b79cdcffad77021e01c5089fd3b2ddeaeb0e6a742a0e2,
1339 0x857e134ff9179733c871295b25f824bd3eb562977bad30890964fa0cdc15bb07,4228 0x378da7275797290db1da610eedbd504caa9562d792589c3c5ca63adf44f6ba7e,
4229 });
4230 try testArgs(@Vector(5, u256), .{
4231 0xc1df4ef4fec749a7e71674a74477ef38acffaf9fb9b13bd318134125a64f55a9,
4232 0x0f695983ce7b6efbe77e1d816c19d0d7d2825a0ca48a4ffbf46da056cc28de13,
4233 0xd945eee12e936cf69057cf1c6b13b2bb0b6a04625ac5264e3d98923c08bd5551,
4234 0x675f485918245af4d97fa5ec823f1d8286738757b6927bae35319802a9ac927b,
4235 0x1dafd52324617304934a3334232dbfd80bdda0a45e77071122673ffdfd1e2952,
4236 });
4237
4238 try testArgs(@Vector(1, i257), .{
4239 -0x0a14b20a35b536bd782a57c787dc3794c01134dba9173488fdaf6bca38f249bf0,
4240 });
4241 try testArgs(@Vector(2, i257), .{
4242 0x072d6a41d972033f35915badd23cf7b0e9ff57fa31183a33619b0cad46ccdec82,
4243 0x0380e7167fd18fe02359089fb1da1404d822d65c556e0c50793e57de38a80f974,
4244 });
4245 try testArgs(@Vector(3, i257), .{
4246 -0x04fd7d97aa324f2481852db7186940af86c33a3edf3aaf3ed89ffb1ecb3e051e4,
4247 -0x0e7ec48cdda939b3973b1c275a790f4322e70a0a6c1b6ad76e86ffe32b3ac54d2,
4248 0x0d8dfa23dfc9a6574f1ac8d20a14cd8f3c35186a7b0b0a7c5f66e4a0d4b5d555a,
4249 });
4250
4251 try testArgs(@Vector(1, u257), .{
4252 0x0239060d6fe46f05ff1107848d3f90a6a59bac53dbb5c568ed0fc463553ff9090,
4253 });
4254 try testArgs(@Vector(2, u257), .{
4255 0x1505201ee876be14f9e58adb9c64eab8c3b8df4f511241ba9732bd81a5447d159,
4256 0x0dff5626712281ab4ee02cd6fd76723c4028f99868c216c2f4e3effeb3df5279c,
4257 });
4258 try testArgs(@Vector(3, u257), .{
4259 0x1121004d94622d9cfe548894040386f04b6ebd3045ea9672e9de10a899dc98807,
4260 0x0bc7d4225c4b91e1707b7dd22e3f0c04ca7676be3df0566612f5a151b45a2ab09,
4261 0x179ffd9dee9a9353f35bd1da0d1abfe1d9a24e8e8f69d3a0f8e7a45abfac92f25,
1340 });4262 });
13414263
1342 try testArgs(@Vector(3, i257), .{ -1 << 256, -1, 0 });4264 try testArgs(@Vector(1, i511), .{
1343 try testArgs(@Vector(3, u257), .{ 0, 1, 1 << 256 });4265 -0x24b04efc6e320fc823ddcf4e48f5ec8440a14267a4d972870a8d2883f5163f5037dd5a14ffb0294c4f3ced659380d6684d20234fb901bb34b67e28799f6b9091,
4266 });
4267 try testArgs(@Vector(2, i511), .{
4268 0x2df4135d518b6415b175a27a3e22300e76621372b8d4080170f980a2959e6f908ab64f100f48731d4b918b459521785de090eb686c24e509009086fb637dfed4,
4269 -0x33b264d68a02580d594a601c0cf67b57115e7a7bae762141f8ba392921c708824802fe2198503266dfd39ee7f00167ef2b044e3c83f8354087191a2ea60a0a5a,
4270 });
4271 try testArgs(@Vector(3, i511), .{
4272 0x167a905e5d767a9c721b11961b85bfa375f04f701848f6619347c6c2f88a8934be52aeb57263cb0e874de75a749939aad35c7221a9d47ac11dc6ad77648e66fe,
4273 -0x34ba5e2cfc8cbc6aa5eecd2f07100b38101b964fe007b47b2a36b7ac8a1a68bec4004afdbb05bab85afd7d524f7ca093ba6d3e3d88ee13cd52de40151a02e7b9,
4274 0x1d89093f8c8621d86658bf59b6c14d0653aa0cbc5400a35bd21999151b492e1969f74d62cd661b162affd0a905b9a845bda703b7d5a4fc109c06ebf1d482dfb5,
4275 });
13444276
1345 try testArgs(@Vector(3, i511), .{ -1 << 510, -1, 0 });4277 try testArgs(@Vector(1, u511), .{
1346 try testArgs(@Vector(3, u511), .{ 0, 1, 1 << 510 });4278 0x6804f3f0fc2750d4b8d384d6b09ed3179d41846cc34aee1d5c7c6966262de3e34b69080d1f8f4c5d155801b291485a38568073906c643f95d841a4d7477d9b6e,
4279 });
4280 try testArgs(@Vector(2, u511), .{
4281 0x7af109f0eea82258c259e19cfcf141ab0afd05d435df15f431ed2abff952fb369507ad24402ab17e7f63699944cec282b091478eaeb4788063b22fd1f8ea0b7a,
4282 0x454dcddc7106161cd0d52bdccf6250dee079886424fc4aa8916c2aa7abe94f0d4a2b728d1bf98455183b435f24e8b365de40fcf8b2cf9e94b430e5abb83a3305,
4283 });
4284 try testArgs(@Vector(3, u511), .{
4285 0x185c3fa8e5ec1f6e4290000ba4483a00a90413d81666d011cfa4492615d1e96458ba37084e11dd526f8fb02cf329ac68992c06a1a3e714516712caa64debf8a4,
4286 0x102ced8900b60d10660543aeabca571bdcd1c1fc24fb02e82eddde7c2801d877a96f5290e25eeb6055bb475e432a77fc1ef1940d57a68535016e7ee22d4b750b,
4287 0x3f30eedf6b47b3877012d36088fcc4371d5dfbdf270c7e784528cbe2e6db3506432d085b90be8086368ba8d11fb01c900f4a77037e272730ae9b0a2e93412d99,
4288 });
13474289
1348 try testArgs(@Vector(3, i512), .{ -1 << 511, -1, 0 });
1349 try testArgs(@Vector(1, i512), .{4290 try testArgs(@Vector(1, i512), .{
1350 -0x235b5d838cdf67b9eb6d7eeb518fb63cff402a74c687927feb363b5040556b8d32c55e565cc2fe33cb4dcc37e8fd1c92989522c11b6c186d11400d17e40d35b5,4291 0x7ac92c65ddd5102b216946290a59ebc58643006e65ad6f2b1c05fed84d660f8160c023d37da70d4c48a3a1220d7c897b57126e15e952c887c7f711ecbdb3f68a,
1351 });4292 });
1352 try testArgs(@Vector(2, i512), .{4293 try testArgs(@Vector(2, i512), .{
1353 -0x5f5ff44fec38adc4c9c8bc8de00acf01fcc62bc55d07033f4e788d4f3825382e1e39f6bd69dff328eec9a89486ebaaaffd9ab69d28eb7d952be4ef250cff6de1,4294 -0x5ce5c020744c7861891edc07ce7061c36767d58dcc89e6170895d10aea976b522b07416dc99c1d0df95511ef48ed8228f72cf73d95021f3aeeee36a4b45873c1,
1354 -0x403e0fd866e1598ad928ecd234005debd527483375f5e7e79eee3a129868354acb5b74e42de9f297f81062d04ea41adc158e542ab04770dd039d527cffb81845,4295 -0x7f1a17797bfc2022c64e650d6f347c826bb639503b8a0d08e025e647a823939edce5cb5ed3f4b287a176ec0f12af4e4137022259b5a2eeac3386997fdbe72094,
4296 });
4297 try testArgs(@Vector(3, i512), .{
4298 0x34fa3aeaf7e293ee5ca8c7fec8eb46fc52ebbee34b9e6348353145f11415f6764533ba41b8cab3227592644f7a44031dbf19280a60ea636117ff92c699e877fa,
4299 -0x2584de3309c35198d821a17ae79c48898309ce22980de644914be32bce6a8d885c01d06b197faaa1fd91880be1e67936b6752d3851d7eef913f44e7a59f75ad9,
4300 -0x75da521d275117328d53d7c4c702ded96cc3ac868d4eefb4656822673dcc0811cc0ee3352fc492d3a6ced47d60efac5acddf08aff4b9e27ef6fbb090a6cea9f5,
1355 });4301 });
13564302
1357 try testArgs(@Vector(3, u512), .{ 0, 1, 1 << 511 });
1358 try testArgs(@Vector(1, u512), .{4303 try testArgs(@Vector(1, u512), .{
1359 0xa3ff51a609f1370e5eeb96b05169bf7469e465cf76ac5b4ea8ffd166c1ba3cd94f2dedf0d647a1fe424f3a06e6d7940f03e257f28100970b00bd5528c52b9ae6,4304 0x79a47336a6fba6e6813ccfa098a9dd34c328106806d0df7d76e3f1aa1394487b8defe6edcb48e99375d7b1cbd48ccb1ed0d0944ef63c4a2efea7ba0428ebd763,
1360 });4305 });
1361 try testArgs(@Vector(2, u512), .{4306 try testArgs(@Vector(2, u512), .{
1362 0xc6d43cd46ae31ab71f9468a895c83bf17516c6b2f1c9b04b9aa113bf7fe1b789eb7d95fcf951f12a9a6f2124589551efdd8c00f528b366a7bfb852faf8f3da53,4307 0x422895dc913417a5dd65b107ba3a025e3bf314009be30c819920105e9aa030d188d9a3ba91701d0affa6ed029e47e7f5190ae59f668c2645f31e41f5919dd57c,
1363 0xc9099d2bdf8d1a0d30485ec6db4a24cbc0d89a863de30e18313ee1d66f71dd2d26235caaa703286cf4a2b51e1a12ef96d2d944c66c0bd3f0d72dd4cf0fc8100e,4308 0x4d00d445c33a06ada34d7b6f71c3142c0839640e9431fe1643898885fed7cdebc64b5f696396ce0d761c59207780161d55d4e31d9197e4fdfca3db49de92ebee,
4309 });
4310 try testArgs(@Vector(3, u512), .{
4311 0x8f03cb52100b861f78b20e82a42cc93372d026718dbfe5a6e02eb4dafef402ac01e5c25215f041a8c0141d4b3893a9b00d5831af0ef6a2332ad91530358ac976,
4312 0x87073b8771f973cb4f20c2bb3471baaace1b96257f539b0c95a72e067875bce909658986d93e472283e6f2531139f419161d0d3b06f8e0d54aac251625881dcb,
4313 0x39b9325af9096a3bbd433949373e1fe3bdc4c3b4b815217cc434a619589331793f8464a3d39edf0ce03412571a115b0068b59939254f424cb283292c138d7402,
4314 });
4315
4316 try testArgs(@Vector(1, i513), .{
4317 -0x02fa7925db1974eed505becad489203de3f5b16a24345e5ac2b0aef5760354411707fd7f71a55ba4f5496122b33c09fc22bba6fccb442ad87a33a5702ab2ae80d,
4318 });
4319 try testArgs(@Vector(2, i513), .{
4320 -0x0572883196ec1f59abf0d223a1b267548aab3723a52c42b8dab05a5b55098499eec99d366df601ebf9ca2e4538f09963dbd0a4a757340b241704cdd8525472817,
4321 -0x0e67935e5e7bde4ec95b5a8785a8607cbb19198f6b51eb3767875f11c34df66ca37c29618b3e7cb446b2b5ceef3ecd784d42df002465662e38494f5cce5d04c3e,
4322 });
4323 try testArgs(@Vector(3, i513), .{
4324 0x083c8d7784c3710a10d1522b3317f07e1c837bbdfb283c9a8fd68d9d21d8e458e8a0e2858bfeeea66d5360d0c93fbf1b2d74566f331d7f2b13bd72d5e1ffb1411,
4325 -0x0279620ff484da4f6bc4d3c4001d440fe874a3878dcf108c960eeac423ac294da02e001190755d67017438c84aa64d8268013f4c11f48d66d85cb556114fd4b59,
4326 0x0415824b87729d90e61248d87119f51cf696c77a8a91f3cc16fd71369e9acac27a348efbaed8289ee4d9461cdac60590320c6f0f925c61a92280f182278a04197,
4327 });
4328
4329 try testArgs(@Vector(1, u513), .{
4330 0x0b3f0061e17faf60492be4c606127c198047d8848e60f9bb396b2b211ce905f4cbb0809728578a1b104232caf75ec24dcc6a0ed99c2bfeb78a45ce7c13da6f3e1,
4331 });
4332 try testArgs(@Vector(2, u513), .{
4333 0x17a2be6257dc9ee463ac0bd361f45085318085f00a2612d1394b298155f521d5015997553d82ab09a9e3e091efe6b1bb4abf5f2071b67c409982991c831099201,
4334 0x0719c3a3f236d6efbbe8c195957ed4f7abf32a97d4aa2a2998c0745ac038595a034d5bd4f908a425d7c562ba1e32ecb771028c5d68fb38c0885c0d811858b9592,
4335 });
4336 try testArgs(@Vector(3, u513), .{
4337 0x0125117a5e455d03de6a22e7e32751bedd25a0c3609c1626a2a3c951043e140ee55cae5f5df26b7dd72b24869a22c685c4aa86704bda24ba43018ebd77b4a9989,
4338 0x0aa290b16b679378e0c8698c827337aca4d962c02251a4e33755e2836729a7e0f6e9948e2db432301042099fa52aeaa83179297480be45f6178d6cbdab7010c68,
4339 0x1970f094defc472dfafb94c8bae6fe0e307885be5b59c3d3e861fcfa118565e4b4ad404d1bbe771d445aeaf4efcbb3415a124ad108ac187e4117b25c41dc107b3,
1364 });4340 });
13654341
1366 try testArgs(@Vector(3, i513), .{ -1 << 512, -1, 0 });4342 try testArgs(@Vector(1, i1023), .{
1367 try testArgs(@Vector(3, u513), .{ 0, 1, 1 << 512 });4343 0x3d2da46d447f8bb6cb002f67cad8990a07b561c2967691d608a5f351cc9ace90327f5221e29c60e1a3aef30bfb7caa1ab0feb1b11f933a05b7a3e43d47319e41762d855bddcabc30a1ccc61dc00f5af7fcb2e94e880d74580aff5a82863115779ba6fbb687686b075be218397a4f5a3c457704a5d2da19cb0eea7de769e60c73,
4344 });
4345 try testArgs(@Vector(2, i1023), .{
4346 -0x2a754a676246ef2ee43171d120dcb05e4ad3f66c4783740af3b2ab0cbc825b90db0688e7b68b8fda5acc8b56b373d41071df282935f9e8dfef774bb43d4ed5afd8f3d7808a7cee4f488fd975e4bef3d7a0409bac6cb707ff26c557d7d7af7082ef2ee8e7862c35fb33094b27eea6cddf92978b3939f35d5207dddf60a44de455,
4347 0x161c7a3ea3411359a1938ce40bec3a76a5d8e15522c1be6cfafcfe3b5c58d941430721d4cb8e0efbd247063b1706c2388668e1cb11abbaba4d8a46fff5b0442490be242dd448fc90e7a7c1dfbbdcaf500b294cca878be34cec1407046772577047cfa17db746ee1d97e35670c9ee4ccc58ff4968001dfe6332a50e75eec9b276,
4348 });
4349 try testArgs(@Vector(3, i1023), .{
4350 -0x3fcc7f6eb4824d52d478ab4d1035f48a99001ec13352b1f9f05a90311b1e78429d6486d771ee17793f2966cef28568423f8d71d6feb03d554bb956231e73a17b3acaab219917c726e85dfbfa4262c331e76e5740dc78480fdc0f6d2e5e67ec5b9ae7a574c0e75a2db4cefbe4115ab8b9c2f2b7e16ac808053c7451ce8f298a5b,
4351 -0x1a9bca992bc979547fd708aff54b2b58e1d450cedc583582882bfdb522beaca79cf04cd113575a2790c9eb39462a515c36df90f0d1a690b8b5d1a674026a3ddc35da3780c9b4f63029f7a108f17183dffa9d467e8a2c2586881fe3cba85732e44ccd9c23f89139ea1d63a6628a04a800d878c0931523ef2edf15222f6a900d07,
4352 0x341194925f80b89df2023b8978fe45d12c897966639abb3fb1d49ecf07c7bb1608fbfcccce81802c5f52251cb73cd7c056764e100ebe5bf5c462f77cb9e7b7de1300a5b0c7853ecc93ff29097d8e08eb8407e4dd26f97a08d75543a9303195907301ae8702fc1e2dae527592b54cff4bb04ceeb686e4a7cc8a750866743b63bd,
4353 });
13684354
1369 try testArgs(@Vector(3, i1023), .{ -1 << 1022, -1, 0 });4355 try testArgs(@Vector(1, u1023), .{
1370 try testArgs(@Vector(3, u1023), .{ 0, 1, 1 << 1022 });4356 0x3c5f7f4de2f1d7e49c67d6a3a18c2997cee8494cdcee98bd581be84286828c3e051fec9971701a6477143ab5a08a60992bc7511e88f784f58ec072ba8b37243008c3df6d0e4b146f41c1ef226d1b89132f89108978a0daaa21853e1a571ed882a808b8ae6c28214bb0e0b11e9d94cc2b691d23332a53834e5fbcd8990178442f,
4357 });
4358 try testArgs(@Vector(2, u1023), .{
4359 0x2b8dd03f8be36509fa36620048fc62c2d49d8a5376678fd0dcc5dd25db0d7e3a7978db01be60a5a301923a3797aa59f64ea84dcfb374051c7a7dbbacdda9f143aedbb63ff7395fa36a683d7a8cafa0c1c1b2a1e490e9ffa76d9c8952041253165eb627f51edfb0d95e1a73435d5e5f3e8e0c515360fcd8a9fb12b2889e99fadb,
4360 0x4c2ddc4fca46ac0447e6aa6da47fe92bd282623814bda4b053ef60f9d5fd3c978ef1a77f7738f0c6469fd2580a3f2322080c51ed1b5be87bc12674025df47157854d99be18f5affd10200de2cab1b2753b4414ad28f845d9995f04b0b0f9b705c81b79af74c738ee0c4cf099859d6361f04042ab8e916180039cd17dbc9f27c5,
4361 });
4362 try testArgs(@Vector(3, u1023), .{
4363 0x24ceb8803d48f284d4c0b51a2033fc2fde5794adfe9a0db8bdc812178e8277e9a2b90d07e58addc1cf02e40ce81286ac56db4d93432bba560d184ca319863bcd2c7176952b924388d1571b03356ed48837e278fd0aa16e915fa08bade0171d16b4a0d942c582dfefbfc906bfcbbc1dc260963eb5afcb353feb89d0d414501af2,
4364 0x44e492d7b289c654b650ac836b9635e71a3478d1a9d1518f4be5fb03f994dca3f4eedd30ad37006fc773cd22544ec724575407e04882b45be1c5bd41ca22efcdf89c2d9f298bbfb2dca1be1b1152ba318c59b3bdc61916876b70a83b1a1fc875113147eecd20aa89a1681b3912510ee719f1566593f822ca5eb286feca4f3721,
4365 0x4b812d648fd33de234ce48a62920510b609bce412f66945def4d63dfdf84bbacdbc5b59ed9c1eea8a34b6ddbf9a2d3a585190c7144bc2fde3dc776e89accea0e20c9e53dccd8173a09860fbd65b7d48939d9e38cebe9946f342b922cc314aaae6b238034f5cefa371b2c5736949937a5ad865058caae6c7f6b2522db34ff79e3,
4366 });
13714367
1372 try testArgs(@Vector(3, i1024), .{ -1 << 1023, -1, 0 });
1373 try testArgs(@Vector(1, i1024), .{4368 try testArgs(@Vector(1, i1024), .{
1374 0x10eee350e115375812126750b24255ca76fdee619b64261c354af58bd4a29af6e2448ccda4d84e1b2fbf76d3710cf1b5e62b1360c3b63e104d0755fa264d6c171f8f7a3292d7859b08a5dff60e9ad8ba9dcdd7e6098eb70be7a27a0cbcc6480661330c21299b2960fac954ee4480f3a2cc1ca5a492e1e75084c079ba701cd7ab,4369 0x6b671c8f7bed2bbb3c498c95de279178c68b8ae7d1ebf0551257362b741b6cf4381e4a7df5d7ba4eb9e58d1939214bb11bac2fcc1963680dc4967f44c3cc1a3fe00b6aeb1feb2258859573d7b4b6b12a20f006f6b92d6001244c8aaadb1df4d98c71dff3c87f097dcd43dd81334bed77c31292b6824f7830e029ff6d8bddc289,
4370 });
4371 try testArgs(@Vector(2, i1024), .{
4372 -0x0e21c88d159ed365504f6ea10dc9761424daaccafd3ef26adbafbe7500079237b0f7b73b71e81348d0dd151d4b42a1f49b4851c67a714f282966a5dd3c4b471457e13e954061e3e7c492b814575387ce6e541e86188c4f3cc77a494be7d1dfaa238dfc3a4533553ee20ca474c1e6099ea9f47c6825173f6cbd9683e75df28ae0,
4373 -0x107ef3d7b677ef54de72a85a9b10678737e94bfec2ee6d5aa4721075b71d3fa76be4901bca74776d5beceeef7453f3076242386e6f5904fc7bb278d94d6b94b347726bde745ddad57f6832b30faaea4f8900f2886b1784fa058505c2a85a6adf88ba17abd66345d3921b222610cd2d3d99a2a3c9feb3db8138dc8777c132c7b5,
4374 });
4375 try testArgs(@Vector(3, i1024), .{
4376 -0x02ff499fa41dfaac5c55ccaa6be1329170cacef301eb9fe6c90c313fb0eff4fe6408a9e88c49c124c219dc2acc76547e3b2068529a16df5a3a17618d278971e14fd63657e85adfaca61da450d2317ee221983efb560844bff2dac0b7a0a32eebeb6bf99b90786228d854ae293c42d6c0f8991aef0593ae3a92fbe5f8d8994120,
4377 0x5931557062aa9cb6887b469754dfcac235f1eb6a363735b45eded73cd1b267b1cc7e9cd745aae97fbeec6321ebc316a3bc8cd9001611844582e5d2305e6884b40aeb81f73b6879b3ef5ff559d4e263e3fdbe4d192d6f4c95dca64080d1de222c0d3cefcdfed787e62a878cb6976a567d02aef2a639134691713388ddc04ab964,
4378 0x0af9d629a1875b08ce10d8bd0103f75374d89fe6b9aec783bf4a17ffb6d048db702280ea8059a8e4489e58903d81fa3df53d2f24fa74f90c5b4fd5076fa7c3e22731ca433777d2d1db2052e1f8d2682765cf6d4adacf26321a85144db8b76ad6a0b8028b7dd65f6e4c88b11f7f88bc0e31200a1b931e20d8e17c227bc7fef8f4,
1375 });4379 });
13764380
1377 try testArgs(@Vector(3, u1024), .{ 0, 1, 1 << 1023 });
1378 try testArgs(@Vector(1, u1024), .{4381 try testArgs(@Vector(1, u1024), .{
1379 0xc6cfaa6571139552e1f067402dfc131d9b9a58aafda97198a78764b05138fb68cf26f085b7652f3d5ae0e56aa21732f296a581bb411d4a73795c213de793489fa49b173b9f5c089aa6295ff1fcdc14d491a05035b45d08fc35cd67a83d887a02b8db512f07518132e0ba56533c7d6fbe958255eddf5649bd8aba288c0dd84a25,4382 0x246608fcdc604ae118a4cfb7ec317eeb96ce4b1abc421d3780a9ac94bbfc09f0818daa620c413e93c1daffde3763becf724fbbef43628701d2d335daed8a5248b535e29d907289e3d1478d7299c23d7b15344505870d64e91590b7f896df2e5df3f824310ce626b6326bf8dca77948d198708721db81e8b23cbe0c7cd9288e55,
4383 });
4384 try testArgs(@Vector(2, u1024), .{
4385 0xbfad2b801641bb3668e502bc63577ced965e241e29660b08044658950f1d849d378f0029aede7becef9fac4f63f1f82e581810233ae7708173b318b64220bf7db0bf6cfb4fc2340cb174d3bdf06ed8c08d0d6beb155f54a1878c94edcc0104a340ad16481da6197cf879519414258ff4c7b7f05970c3153937229870677c0dbf,
4386 0x5cbfd667b1cc9363c85b460cf5028ff6f2e3af5e3c7f59799be0d826b500b8dc1e80eae818df0529b478e190eaccfb59c2b33978897c45bc29e1b416f032ab03baf6f14b043aeb9675137f5c2c06eb52f9b4f56e7ab6ccbefcaa67ef5b024d81f6b2b65d6b40153bc7738094d2a3a527377bdd7562d039229d946c6cde2de286,
4387 });
4388 try testArgs(@Vector(3, u1024), .{
4389 0x1001d073a02929017fa89db7fafd02e8ed7ae9e0b4ea1821d60f3edddb621312ae1c8b37b4a509e0aea10398f08f1bbd1d594f7514e4235931efb7161a244d0746796d509b894e4dd27cdd7aa093b3e68d057b6acf6678157a285c740c60b74be183ef1646cc872ff1581d84c2ee4b37d6a4e8e2d9b6906a8c117774bbd152af,
4390 0x39d642282ca74c0f3716f84658e72ba4244a56209f9058a1aff1e30a3b7ae0283a4470e39d025c4c9e822ae921724304cae1a795772609bceb0387bcd6e440d1b2f78fab2dfe1472fa9011bf57d90cfbf3dde03591ecce21edff98996513a0447eb46e4a32121fe2f6da5333a42c740f64822fd9ebe823557c8d2873869a1d1c,
4391 0x63aa1ffdebbe1810ac982923ca104863b3bc1191a0418a25a400ddad005fb959ee42076bbee7e4dedc6a49f426631e0e61a17a624759a145393dadeedcd7b43cd116d4ed16f335b1917a46892383c132639fe834305db2f020afe90bb4397dcd33a75b021cc1cf14cc25b9f070ab49f093904cbf1ed510689c9262c9ee0a4850,
1380 });4392 });
13814393
1382 try testArgs(@Vector(3, i1025), .{ -1 << 1024, -1, 0 });4394 try testArgs(@Vector(1, i1025), .{
1383 try testArgs(@Vector(3, u1025), .{ 0, 1, 1 << 1024 });4395 -0x0c2cc48ef611337f59351a70d7663ff4fc7181b04680d67d9ff73e18fe40fbf4bf12072149c91e056363607f0670f1912daa6d2c25ff23970d79d5cb033c42e1f0a2fe2d498896fa9c064b241c9c8b218fa49dc060e9f0842130925d29e9baf51e789fff2ffb0dae09af96e64e9951747c40d25edf4dfb69d8a69370962361e49,
4396 });
4397 try testArgs(@Vector(2, i1025), .{
4398 -0x00fdcce826852665a7765c534543b9d70416312b53d96270cb588ce17f86f16d48445fd4d79924fa1785fee2968519e4d183fbd31c94a405d467615ad1f015b692916ee99bac4dda4a52fc200a490d8844aa25c58f419d698b91f376bba340af761bd8779e172cca71afbecbaa82f992a43c73f610686c36951e072ebc8f57a1d,
4399 0x0cffea79609ddaae8ef7262ab9cc8cdb3a52564e843b7fee701f5a5a04b8c9709976a00800b79752ba7be72f816c665d12e5ea62637da669b5fb207ae52d6629a6f60235e3d9e10d4afa92405c8db29f6ce9b54d013bb0a95646b17257e6df2eae063e27815f9f08b7be1e089ce734af5128ba0d7a601adff3f02f783cd756b7a,
4400 });
4401 try testArgs(@Vector(3, i1025), .{
4402 0x04461ed6de3fca86c238e890d4a3fc30597b881dfa207400d2b3c042705dd529f7a8f0a9328e94d9804afd014ae72a0d9f301c858a28bf6dcb181868366aa34db89b0ce469936ae69da8fcf82838d41bbb97473318aa9b81350ed69855d8fece3941bf5c1810155f46cea627b0dff0a6102c8b823f2c1a25a52ace05c4436cc99,
4403 -0x04ddaee982bc812cc8bffc99e8e0d5767426748c0875e111ccec02215a454b64e1528c4055e357048c50484c7c9ce1889de5d8bd1ba94b89a11f01bbdf94627e9447c054a144848be9f61db4f07605b9fa72d25084d495c136fba5ff242b9aa08b8a456e6a3e994d3e341ffb675000126b971b3e9379c90c06c7bd99570fcc1c7,
4404 -0x0df9e9416e77e5248dce87efacb4c381e5303d4d7d4b86da7da5effaa16f1ae564339b0bff27fd7a39469ca107d1a995f5b46bb6b9eb1fb7ef2fb1850dae69d32a4dcbd8fd8dcfd740757ab5fc218cf15d3d0460a8ded650e254414ff076df919c0d87453495dc658629301302db07a231b340150b1f910453835a74304c893fd,
4405 });
4406
4407 try testArgs(@Vector(1, u1025), .{
4408 0x1cf0886108e6cf9a178542832e0ecd6e10863173eb13a9340e9b4cb8f9c98e2e0dbf9adacc655f29f39f7aa3be7aae7c7a9e6f295bc7dd82caa8952a34f7e89888023416df303ee75dcfd93dd82a2be14a592eea41c5805806de0af9f587e6c4689acdca6ec5a4ac1b3b25b9316b3b568ea0668fbc915f153478e95f70f9e7e0d,
4409 });
4410 try testArgs(@Vector(2, u1025), .{
4411 0x05d2fd186099cf21acc255b80551d93720cab2db1c405eb550e04108b794dc0381267e189e8f653ef0a2fc23521ddbb79220556af1319cbd72012d133f2b7139b812138a477bddf01c0f2ef0dfd391161931a6660c797d5cd6b816d973262b381ea1c61a15580059a72a48b87d16955b8f41fd1fd5665fbf254e9c568f2f7b7ea,
4412 0x10fd90feb241e00b33a58ba6cd404acc87c73f0d110b33e14495c22d6a9c63ec234f7071831b51e8dc5f050cb4abf597a19f2c2ac611a9305d012d0ca89b7be66de3c08e83f05d792795bba102bfb2e25ebb534b52693005a6075acaf3d6e6a6b7c6adaa083f3003c749c4851cff102d8c007eb1865c27339d442bba8552d8bee,
4413 });
4414 try testArgs(@Vector(3, u1025), .{
4415 0x0d31cc56a6d6165e5814cdb97af9d13c78ab9ccff06dae36a866895d27b3a04981a55c22877e4dff45fe178492ede49dc3501b6c69e83b797632b45f94137b997857cfe8780179ad1c42e15273b33751cf04b96de00a16e564e7d144404f955032b775b90da2526d88f7540ffb5d10e3c171222841b2a1db353cb85fbe483935a,
4416 0x0950f7ce2ee39dfe774b4672fcdcf822303d0f0133e1652352df92f35e8f7e8136e4352b031cc59d7beb7c02997882ae4c2fb1465775c16cc30e4af1652591385a4861f3f347791c1af71c10a32d0282153e51762f62fbb76a44242c7f14e083879040226a74d8e240fa8f69edbe78a774359b2295ed2bb177044906ab3f65248,
4417 0x069f6540fa60e45dffd4a990048e4210a8b1d0a65e9b6ca0bbb3cb88e509fa129d5f91bc7f45ca77e699e01d81ac7686f26ceb67abbee88ac2fab1a529e7290ee7163e40833c806a6e82547a8f0628829d510367e06304c2eed7634da133f19de2a284b7094102374d9b1b779206a8d102d2e4cfd663bb9b06a71ee56b709e058,
4418 });
1384 }4419 }
1385 fn testFloatVectorTypes() !void {4420 fn testFloatVectorTypes() !void {
1386 try testArgs(@Vector(1, f16), undefined);4421 try testArgs(@Vector(1, f16), undefined);
...@@ -1416,141 +4451,354 @@ fn unary(comptime op: anytype, comptime opts: struct {...@@ -1416,141 +4451,354 @@ fn unary(comptime op: anytype, comptime opts: struct {
1416 }4451 }
1417 fn testFloatVectors() !void {4452 fn testFloatVectors() !void {
1418 try testArgs(@Vector(1, f16), .{4453 try testArgs(@Vector(1, f16), .{
1419 -0x1.17cp-12,4454 0x1.7d8p12,
1420 });4455 });
1421 try testArgs(@Vector(2, f16), .{4456 try testArgs(@Vector(2, f16), .{
1422 0x1.47cp9, 0x1.3acp9,4457 -0x0.054p-14, -0x1.c6cp10,
4458 });
4459 try testArgs(@Vector(3, f16), .{
4460 -0x1.39cp-3, -0x1.088p4, -0x0.644p-14,
1423 });4461 });
1424 try testArgs(@Vector(4, f16), .{4462 try testArgs(@Vector(4, f16), .{
1425 0x1.ab4p0, -0x1.7fcp-7, -0x1.1cp0, -0x1.f14p12,4463 -0x1.108p11, 0x1.364p-3, 0x1.8f4p-2, -0x0.8acp-14,
4464 });
4465 try testArgs(@Vector(5, f16), .{
4466 0x1.e1p8, 0x1.ddp11, 0x0.388p-14, 0x1.7p-7, -0x0.a08p-14,
4467 });
4468 try testArgs(@Vector(7, f16), .{
4469 0x1.988p-14, -0x1.f7p-14, 0x1.38cp12, 0x0.0fp-14, -0x1.774p2, -0x1.de4p11, -0x1.9bp-10,
1426 });4470 });
1427 try testArgs(@Vector(8, f16), .{4471 try testArgs(@Vector(8, f16), .{
1428 -0x1.8d8p8, 0x1.83p10, -0x1.5ap-1, -0x1.d78p13, -0x1.608p12, 0x1.e8p-9, -0x1.688p-10, -0x1.738p9,4472 0x1.6ecp12, -0x1.834p9, -0x1.2c8p13, 0x1.e7cp3, -0x1.418p3, 0x1.15cp-1, 0x1.fecp-2, 0x1.1dp-3,
4473 });
4474 try testArgs(@Vector(9, f16), .{
4475 0x1.da8p-1, 0x1.d44p-11, 0x1.884p-10, -0x1.898p1, 0x1.5ccp-5, 0x1.68p0, 0x1.618p14, -0x1.c34p2,
4476 -0x1.318p6,
4477 });
4478 try testArgs(@Vector(15, f16), .{
4479 0x1.41cp11, 0x1.edp-1, 0x1.1c8p-12, -0x0.0ecp-14, -0x1.abp8, 0x1.34p0, -0x1.24cp-4, -0x1.214p1,
4480 -0x1.604p9, -0x1.364p-1, 0x1.adp0, 0x0.63p-14, 0x0.60cp-14, 0x1.6ep-6, 0x0.84cp-14,
1429 });4481 });
1430 try testArgs(@Vector(16, f16), .{4482 try testArgs(@Vector(16, f16), .{
1431 0x1.da8p-1, -0x1.ed4p-10, -0x1.dc8p1, 0x1.b78p-14, nan(f16), 0x1.9d8p8, nan(f16), 0x1.d5p13,4483 0x1.308p6, -0x1.078p-1, 0x0.81p-14, 0x1.1b4p-14, 0x1.4ep-7, 0x1.75p12, 0x1.264p-8, 0x1.a6p2,
1432 -0x1.2dp13, 0x1.6c4p12, 0x1.a9cp-11, -0x1.0ecp8, 0x0.4ccp-14, -0x1.0a8p-6, -0x1.5bcp-14, 0x1.6d8p-9,4484 0x1.9a4p-3, 0x1.e9p4, -0x1.a4p-6, 0x1.6acp-1, 0x1.7e8p-12, -0x1.02cp6, -0x1.0ccp-14, 0x1.edp-12,
4485 });
4486 try testArgs(@Vector(17, f16), .{
4487 0x1.2c4p-1, 0x1.91cp-3, 0x1.bf8p10, -0x0.25p-14, 0x1.45p-9, 0x1.cap-2, 0x1.e9cp8, 0x1.b7p8,
4488 0x1.21cp9, -0x0.ba4p-14, -0x1.ddcp-4, -0x1.bcp9, -0x1.7dcp-3, 0x1.6a4p-12, 0x1.ca8p-8, -0x1.558p11,
4489 0x0.26cp-14,
4490 });
4491 try testArgs(@Vector(31, f16), .{
4492 -0x1.f94p7, 0x1.55cp9, -0x1.f78p11, -0x0.f48p-14, -0x1.b6p-2, 0x1.85cp1, -0x1.114p4, -0x1.97cp-5,
4493 -0x1.6f8p2, 0x1.79cp-3, 0x1.e58p-9, -0x1.f5cp-10, 0x1.a74p5, -0x0.1e8p-14, 0x1.15cp-14, 0x1.814p-7,
4494 -0x0.318p-14, -0x1.b5p-5, -0x1.058p-10, 0x1.124p0, -0x1.20cp-1, 0x1.978p10, -0x1.808p-8, 0x1.528p-6,
4495 -0x1.ba8p9, 0x0.294p-14, 0x1.11cp0, 0x1.e5p5, 0x1.904p-11, 0x1.d78p11, -0x1.c1p5,
1433 });4496 });
1434 try testArgs(@Vector(32, f16), .{4497 try testArgs(@Vector(32, f16), .{
1435 0x1.d5cp-6, -0x1.a98p5, 0x1.49cp5, -0x1.e4p-1, -0x1.21p-13, -0x1.c94p-1, -0x1.adcp-5, -0x1.524p-1,4498 -0x0.11p-14, 0x0.29cp-14, 0x1.7a8p5, 0x1.49cp-11, 0x1.6c4p-3, -0x1.85cp-11, 0x1.ap-8, -0x0.49cp-14,
1436 -0x1.0d8p-3, -0x1.5c4p-2, 0x1.f84p-2, 0x1.664p1, -0x1.f64p13, -0x1.bf4p4, -0x1.4b8p0, -0x0.f64p-14,4499 0x1.dfp2, -0x1.4cp1, 0x1.138p-5, -0x1.45p-9, 0x0.88cp-14, 0x1.6acp10, 0x1.594p3, 0x1.704p6,
1437 -0x1.3f8p1, 0x1.098p2, -0x1.a44p8, 0x1.048p13, 0x1.fd4p-11, 0x1.18p-9, -0x1.504p2, 0x1.d04p7,4500 -0x1.c34p13, 0x1.44cp0, -0x1.cfcp-10, 0x1.5c8p-4, -0x1.b2cp-10, -0x1.178p1, -0x1.b74p7, -0x1.d18p0,
1438 -nan(f16), 0x1.a94p2, 0x0.5e8p-14, -0x1.7acp-7, 0x1.4c8p-3, 0x1.518p-4, nan(f16), 0x1.8f8p10,4501 0x1.0fcp-9, 0x1.b6p-11, -0x1.ff4p-2, -0x0.0b8p-14, 0x1.4dcp-10, -0x1.af4p-5, -0x1.eap2, -0x1.79cp-4,
4502 });
4503 try testArgs(@Vector(33, f16), .{
4504 -0x1.6e8p0, -0x1.304p-12, 0x1.558p11, 0x1.cf4p13, 0x1.cc4p-9, 0x1.d88p-11, 0x1.838p8, -0x1.2ecp-10,
4505 -0x1.65cp-1, -0x1.644p8, -0x1.048p10, 0x0.114p-14, 0x1.8a4p13, 0x1.c9p-3, 0x1.dfp-6, -0x1.774p12,
4506 -0x0.4dp-14, 0x1.2ccp-12, 0x0.98p-14, -0x1.b18p-6, 0x0.1ecp-14, 0x0.86cp-14, 0x0.6e8p-14, -0x1.6dp14,
4507 0x1.9e8p-3, 0x1.1ep10, -0x1.6cp13, -0x1.d44p1, -0x1.f54p-12, -0x1.fe8p-14, 0x1.968p-1, -0x1.ab4p-9,
4508 0x1.f0cp0,
4509 });
4510 try testArgs(@Vector(63, f16), .{
4511 -0x1.3ecp-1, 0x0.04p-14, -0x1.1cp-2, 0x1.0dp10, 0x1.ddcp-12, -0x1.57cp-11, -0x1.84p-9, 0x1.dfp4,
4512 0x1.6e4p-9, 0x0.5d4p-14, -0x0.51cp-14, -0x1.bp2, -0x1.8ecp-14, 0x1.268p-2, -0x0.69p-14, -0x1.b98p7,
4513 -0x0.cb4p-14, -0x1.accp-3, 0x1.cdcp6, -0x1.e6p7, 0x1.4ep-14, 0x1.5fp5, -0x1.95p8, 0x1.044p8,
4514 -0x1.e14p9, 0x1.e84p14, 0x1.ee8p-10, -0x1.0a4p8, 0x1.b14p-8, -0x1.5dp9, 0x0.e68p-14, -0x0.1acp-14,
4515 -0x1.7ccp-11, 0x1.45p-10, 0x0.044p-14, 0x1.078p4, 0x1.c8p-1, -0x1.8fp11, -0x1.cbp0, -0x1.208p-10,
4516 -0x1.a5p-1, -0x1.164p-8, -0x1.304p-3, -0x1.038p-10, -0x1.4dp11, 0x0.248p-14, 0x1.09cp-4, -0x1.a7cp14,
4517 -0x1.a38p-6, -0x1.0bp-9, -0x1.fecp-14, -0x1.c78p-10, -0x1.e38p-11, 0x1.47p-5, -0x1.3bcp5, 0x1.6a4p9,
4518 0x0.728p-14, 0x1.9c8p9, 0x1.88p12, -0x1.e6p0, 0x1.5dcp-2, -0x1.7f4p-4, -0x1.a6p3,
1439 });4519 });
1440 try testArgs(@Vector(64, f16), .{4520 try testArgs(@Vector(64, f16), .{
1441 -0x1.c2p2, 0x0.2fcp-14, 0x1.de8p0, -0x1.714p2, 0x1.f9p-7, -0x1.11cp-13, -0x1.558p10, -0x1.2acp-7,4521 -0x1.67cp-13, 0x1.f2cp-10, 0x1.69cp11, -0x1.0dp-2, 0x1.a8p9, 0x1.7dp-11, 0x1.908p-5, -0x1.37cp0,
1442 0x1.348p14, 0x1.2dcp7, -0x1.8acp-12, -0x1.2cp2, 0x1.868p1, -0x1.1f8p-14, 0x1.638p7, -0x1.734p-5,4522 0x1.8f8p5, 0x1.38p11, 0x1.d2p8, 0x1.b74p-10, -0x1.188p-7, 0x1.578p5, 0x1.68p-11, -0x1.b9cp8,
1443 0x0.b98p-14, -0x1.7f4p-12, -0x1.38cp15, 0x1.50cp15, 0x1.91cp8, 0x1.cb4p-1, 0x1.fc4p-13, 0x1.9a4p0,4523 -0x1.ba4p2, 0x0.b78p-14, 0x1.458p-8, 0x0.054p-14, -0x0.63p-14, 0x1.83p10, 0x1.94cp-2, -0x1.d7p2,
1444 0x1.18p-4, 0x1.60cp10, 0x1.6fp-12, 0x1.b48p6, 0x1.37cp-11, 0x1.424p7, 0x1.44cp13, 0x1.aep5,4524 -0x1.62p4, 0x1.b34p4, -0x1.4cp-11, -0x1.714p9, -0x1.ce4p1, 0x1.75p-3, -0x1.cbp-13, 0x1.714p6,
1445 0x1.968p14, 0x1.e8p13, -0x1.bp2, -0x1.644p5, 0x1.de4p-8, -0x1.5b4p-14, -0x1.4ap1, -0x1.868p9,4525 -0x1.cb8p7, -0x1.b98p-4, 0x1.facp-13, -0x1.1f4p8, -0x1.92p-3, 0x0.144p-14, 0x1.504p-4, 0x1.a9p-10,
1446 -0x1.d14p0, 0x1.d7cp15, 0x1.3c8p14, 0x1.2ccp-14, -0x1.ee4p8, 0x1.49p-3, 0x1.35cp12, 0x1.d34p6,4526 0x1.a94p3, 0x1.708p-2, 0x1.c84p-14, 0x1.77cp9, -0x0.1e4p-14, -0x0.3d8p-14, -0x1.f8p4, -0x1.2bp5,
1447 0x1.7acp3, -0x1.fa4p2, 0x1.7b4p13, -0x1.cf4p-12, -0x1.ebcp-10, -0x1.5p-3, 0x1.4bp-6, 0x1.83p12,4527 0x1.5b8p-14, 0x1.898p14, -0x1.e2p3, -0x1.0e8p-5, 0x1.4dcp-12, 0x1.368p8, 0x1.968p-7, -0x1.98cp-5,
1448 -0x1.f9cp-8, -0x1.43p-8, -0x1.99p-1, -0x1.dacp3, -0x1.728p-4, -0x1.03cp4, 0x1.604p-2, -0x1.0ep13,4528 0x1.39cp-13, 0x1.23p2, 0x1.8e8p6, 0x1.344p7, 0x1.70cp-5, -0x1.f24p11, -0x1.54p-7, -0x1.904p3,
4529 });
4530 try testArgs(@Vector(65, f16), .{
4531 -0x1.d78p-4, 0x1.ea8p-8, -0x1.b4cp6, -0x1.c7cp4, 0x1.dfcp7, 0x1.a8cp6, -0x1.768p11, 0x0.0fp-14,
4532 -0x1.a3p-4, -0x1.868p-9, 0x1.23p-1, -0x1.2e8p3, -0x1.9e8p-12, 0x1.8a8p3, 0x1.168p-5, -0x1.608p8,
4533 -0x1.9d4p-4, -0x1.17cp-1, -0x1.f2p1, -0x1.d38p-11, 0x1.f38p-12, -0x1.92p-11, 0x1.c44p6, 0x1.4fp-3,
4534 0x0.18p-14, 0x1.3dp11, -0x1.ce4p9, -0x1.bf8p-12, 0x0.88cp-14, -0x1.998p-9, 0x1.788p-2, -0x1.5c4p2,
4535 0x0.08cp-14, -0x0.6f8p-14, 0x1.c7cp-10, -0x0.1p-14, -0x1.0fcp-9, -0x1.5a4p6, -0x1.8c8p-12, 0x0.57p-14,
4536 -0x1.96cp-9, 0x1.6ecp10, -0x1.c18p1, -0x1.0ap5, -0x0.768p-14, -0x1.f8cp-6, 0x0.44p-14, -0x1.2b4p-2,
4537 0x1.efcp-13, -0x1.434p-13, 0x1.434p-3, 0x1.a6p-2, 0x1.bc4p7, -0x0.e1p-14, -0x1.d9cp-7, -0x1.f94p-9,
4538 0x1.448p-6, 0x1.0d8p3, -0x0.4a4p-14, -0x1.25cp-10, 0x1.c18p12, 0x0.1ccp-14, -0x1.ep14, -0x1.42cp6,
4539 0x1.14p8,
1449 });4540 });
14504541
1451 try testArgs(@Vector(1, f32), .{4542 try testArgs(@Vector(1, f32), .{
1452 -0x1.17cp-12,4543 0x1.12e082p8,
1453 });4544 });
1454 try testArgs(@Vector(2, f32), .{4545 try testArgs(@Vector(2, f32), .{
1455 -0x1.a3123ap90, -0x1.4a2ec6p-54,4546 -0x1.f04666p17, 0x1.27d624p4,
4547 });
4548 try testArgs(@Vector(3, f32), .{
4549 -0x1.c3168cp-85, -0x1.169cdcp9, -0x1.4bdb2ap13,
1456 });4550 });
1457 try testArgs(@Vector(4, f32), .{4551 try testArgs(@Vector(4, f32), .{
1458 -0x1.8a41p77, -0x1.7c54e2p-61, -0x1.498556p-41, 0x1.d77c22p-20,4552 -0x1.a8b1d6p29, -0x1.b94e32p-76, 0x1.f4d9aap-43, 0x1.e6c654p44,
4553 });
4554 try testArgs(@Vector(5, f32), .{
4555 0x1.37c57ep-53, -0x1.832c84p49, -0x1.04256ep-110, -0x1.de4454p-37,
4556 -0x1.a36832p-34,
4557 });
4558 try testArgs(@Vector(7, f32), .{
4559 -0x1.35df86p87, -0x1.d96a52p62, 0x1.f9d3ecp-12, 0x1.5f4cc6p112,
4560 0x1.176cfap94, 0x1.bb86fcp69, 0x1.015e56p0,
1459 });4561 });
1460 try testArgs(@Vector(8, f32), .{4562 try testArgs(@Vector(8, f32), .{
1461 0x1.943da4p-86, 0x1.528792p95, -0x1.9c9bfap-26, -0x1.8df936p-90,4563 -0x1.9dd6cap3, 0x1.726066p-42, 0x1.5b1f5ep-20, -0x1.347ed6p29,
1462 -0x1.6a70cep56, 0x1.626638p-48, 0x1.7bb2bap-57, -0x1.ac5104p94,4564 0x1.bfb5d4p-126, -0x1.b0e8dp45, 0x1.5577bep45, -0x1.9d1608p2,
4565 });
4566 try testArgs(@Vector(9, f32), .{
4567 -0x1.4159b2p76, 0x1.bea7b8p-107, -0x1.b47036p-82, -0x1.4635ap-26,
4568 -0x1.27bc98p-47, 0x1.1e0ap-116, 0x1.0f628p-118, 0x1.2e63bcp-62,
4569 0x1.d0e45ep-57,
4570 });
4571 try testArgs(@Vector(15, f32), .{
4572 0x1.65e0bcp-12, 0x1.d947c6p-42, -0x1.4596acp64, -0x1.2a897cp75,
4573 0x1.cb074ap-8, 0x1.e44a98p-62, -0x1.3edb2p74, 0x1.07aecep-2,
4574 -0x1.fda1f8p14, 0x1.2f2c7ap-95, 0x1.9814e6p-33, 0x1.6d6a58p3,
4575 0x1.6a1478p-3, -0x1.85886ap64, -0x1.e2b9bcp-114,
1463 });4576 });
1464 try testArgs(@Vector(16, f32), .{4577 try testArgs(@Vector(16, f32), .{
1465 0x1.157044p115, -0x1.416c04p-111, 0x1.a8f164p-104, 0x1.9b6678p84,4578 0x1.348b38p103, 0x1.bbc8e4p8, -0x1.03f48ap-119, -0x1.90f87cp115,
1466 -0x1.9d065cp9, -0x1.e8c4b4p126, -0x1.ddb968p84, -0x1.fec8c8p74,4579 -0x1.88aaaep28, -0x1.21ec4p-94, 0x1.e1f21cp-57, 0x1.0e7dd2p-37,
1467 0x1.64ffb2p59, 0x1.548922p20, 0x1.7270fcp22, -0x1.abac68p33,4580 -0x1.5963a2p-24, 0x1.4c314cp-61, -0x1.753d5ap113, -0x1.65705p-12,
1468 0x1.faabfp33, -0x1.8aee82p55, 0x1.1bf8fp75, 0x1.33c46ap-66,4581 -0x1.e34902p-54, -0x1.ab8022p87, -0x1.5cc252p-99, 0x1.4f4fe6p41,
4582 });
4583 try testArgs(@Vector(17, f32), .{
4584 0x1.6be79ap-19, -0x1.38819p-21, -0x1.8551dp2, -0x1.43155ep-126,
4585 0x1.96e6p108, 0x1.58abaap41, 0x1.145ffcp124, -0x1.8e314ep-41,
4586 -0x1.63151p42, 0x1.9585e8p124, 0x1.4bdd42p-66, 0x1.858674p-45,
4587 -0x1.bccb68p66, -0x1.88e0e8p-14, -0x1.e0461cp-116, 0x1.3c1e2ep120,
4588 -0x1.0076dep14,
4589 });
4590 try testArgs(@Vector(31, f32), .{
4591 0x1.8d5b34p-49, -0x1.bd019cp-83, -0x1.1d06e2p-95, -0x1.d9ac6ap-45,
4592 0x1.f942dap10, -0x1.c23402p121, -0x1.8e5656p-32, 0x1.925222p-53,
4593 -0x1.16440ep-117, 0x1.b146cep107, -0x1.b58cdep-52, 0x1.713f34p8,
4594 0x1.3de424p99, -0x1.3e6d6ep-28, -0x1.8261b4p-69, 0x1.043d66p-91,
4595 -0x1.fbcd6ep113, 0x1.7934dcp-47, 0x1.fa8152p99, 0x1.c29968p-58,
4596 0x1.77f26ap82, 0x1.4602aap-57, -0x1.8a4cb4p8, 0x1.d48cdap113,
4597 0x1.636a7ep29, 0x1.730262p57, 0x1.29e668p7, 0x1.58592cp20,
4598 0x1.d09ebp-107, 0x1.7a85c6p-39, 0x1.38e1d6p44,
1469 });4599 });
1470 try testArgs(@Vector(32, f32), .{4600 try testArgs(@Vector(32, f32), .{
1471 -0x1.039b68p37, -0x1.34de4ap-74, -0x1.05d78ap-76, -0x1.be0f5ap-47,4601 -0x1.95dec4p-65, 0x1.3833cp65, -0x1.0ef5ap-53, 0x1.86e4c8p101,
1472 0x1.032204p-38, 0x1.ef8e2ap-78, -0x1.b013ecp-80, 0x1.71fe4cp99,4602 -0x1.713132p24, -0x1.c6fd0ep123, -0x1.75aadcp88, -0x1.b8f0fp18,
1473 0x1.abdadap-14, 0x1.56a9a8p-48, -0x1.8bbd7ep9, 0x1.edd308p-72,4603 0x1.0f5b8ep-34, -0x1.0d0d66p-15, 0x0.842836p-126, -0x1.157782p22,
1474 -0x1.92fafcp-121, -0x1.50812p19, 0x1.f4ddc4p28, -0x1.6f0b12p-50,4604 -0x1.025e8ap-100, 0x1.be825ep117, 0x1.d3efc6p-45, 0x1.ed8462p-34,
1475 -0x1.12ab02p127, 0x1.24df48p21, -0x1.993c3p-14, -0x1.4cc476p-112,4605 -0x1.b373c8p-118, -0x1.dbfd16p4, 0x1.73ee9p-56, -0x1.cdff48p-69,
1476 0x1.13d9a8p-40, 0x1.a6e652p-9, -0x1.9c730cp-21, -0x1.a75aaap-70,4606 0x1.1b806ep-78, 0x1.65a58ap-4, -0x1.0d851cp77, 0x1.442c12p41,
1477 -0x1.39e632p-111, 0x1.8e8da8p-45, 0x1.b5652cp31, 0x1.258366p44,4607 0x1.215116p47, -0x1.75f266p-48, 0x1.2273d4p89, 0x1.1bab24p-100,
1478 0x1.d473aap92, -0x1.951b64p9, 0x1.542edp15, -0x0.f6222ap-126,4608 -0x1.0300ep-22, 0x1.8c199cp-70, -0x1.70e08cp-66, 0x1.aa6b3ep-24,
4609 });
4610 try testArgs(@Vector(33, f32), .{
4611 -0x1.4eddccp-116, 0x1.724e18p-94, -0x1.9d40bep54, -0x1.0afc5p-14,
4612 0x1.576c2p92, 0x1.cf52b6p110, -0x1.7e67ep117, -0x1.7db66ep90,
4613 0x1.3eac22p-38, 0x1.6ba068p72, -0x1.72dc2cp97, -0x1.4193f4p72,
4614 0x1.aa81f6p86, 0x1.984268p53, -0x1.14ba6ep-45, 0x1.15603ep-122,
4615 0x1.85e75p-56, 0x1.108a82p-121, 0x1.569ecp62, -0x1.7f3268p-68,
4616 -0x1.d0964ep0, 0x0.f7a596p-126, -0x1.367646p-11, 0x1.2065bp-26,
4617 0x1.cc954ap125, -0x1.956e1cp65, 0x1.774dep112, 0x1.69dfcep-16,
4618 -0x1.b0efb2p76, 0x1.14c54p70, -0x1.7c6b08p25, 0x1.ae20b4p31,
4619 -0x1.73c584p-118,
1479 });4620 });
14804621
1481 try testArgs(@Vector(1, f64), .{4622 try testArgs(@Vector(1, f64), .{
1482 -0x1.0114613df6f97p816,4623 0x1.58849bfb1303cp-254,
1483 });4624 });
1484 try testArgs(@Vector(2, f64), .{4625 try testArgs(@Vector(2, f64), .{
1485 -0x1.8404dad72003cp720, -0x1.6b14b40bcf3b7p-176,4626 -0x1.b4a24030f3facp215, -0x1.c1bdddbc41cdep950,
4627 });
4628 try testArgs(@Vector(3, f64), .{
4629 -0x1.7d154dcee386cp-284, -0x1.2fdda9cbabfap-84,
4630 0x1.00c86a9c3de5cp-46,
1486 });4631 });
1487 try testArgs(@Vector(4, f64), .{4632 try testArgs(@Vector(4, f64), .{
1488 -0x1.04e1acbfddd9cp681, -0x1.ed553cc056da7p-749,4633 0x1.70f298f25a9bfp826, 0x1.4b944832c8eecp-319,
1489 0x1.3d3f703a0c893p-905, 0x1.0b35633fa78fp691,4634 -0x1.d801afafdbc01p-708, -0x1.65d0b4b097a57p-872,
4635 });
4636 try testArgs(@Vector(5, f64), .{
4637 -0x1.4796bdf4c112bp938, 0x1.3661030c6a2fp-156,
4638 -0x1.20d194f89bc7fp-9, -0x1.f545d17a1d9e8p604,
4639 0x1.c786013e7205ep-514,
4640 });
4641 try testArgs(@Vector(7, f64), .{
4642 -0x1.8f6d6e549941fp501, -0x1.56374640d779p-762,
4643 -0x1.4ea02d12bd9cfp209, -0x1.ab85b639e78c6p-879,
4644 -0x1.fcd56fe4f85abp47, -0x1.8963745584169p-957,
4645 -0x1.581a8a0033e8p915,
1490 });4646 });
1491 try testArgs(@Vector(8, f64), .{4647 try testArgs(@Vector(8, f64), .{
1492 -0x1.901a2a60f0562p-301, -0x1.2516175ad61ecp-447,4648 -0x1.2a8fb1782b7f2p-126, -0x1.b246d12815c21p606,
1493 0x1.e7b12124846bfp564, 0x1.9291384bd7259p209,4649 0x1.6bc24f2a268b9p837, 0x1.1d550478ebd71p1016,
1494 -0x1.a7bf62f803c98p900, 0x1.4e2e26257bb3p987,4650 0x1.d2ba52815edc2p252, 0x1.a8d87e5eb97ecp-450,
1495 -0x1.413ca9a32d894p811, 0x1.61b1dd9432e95p479,4651 -0x1.c8a3d899aa89p601, -0x1.1fa47083d9a8fp289,
4652 });
4653 try testArgs(@Vector(9, f64), .{
4654 -0x1.312d39a09757p-567, -0x1.4b0ef2ac9424ep-10,
4655 0x1.84302715c6852p930, -0x1.01565f82fd32p761,
4656 -0x1.36ad9c057719ap-351, 0x1.dc4929f2400c8p793,
4657 -0x1.e90f3ae855d3dp-474, 0x1.4e65fb145865ep-834,
4658 0x1.4236a94937ee3p-987,
4659 });
4660 try testArgs(@Vector(15, f64), .{
4661 0x1.df73a72937309p351, -0x1.73506ab182b9p-23,
4662 0x1.b2c954612187p-997, 0x1.7c5ee7c602989p-93,
4663 -0x1.5edba35428d13p762, -0x1.e3bc1f194dc8cp-386,
4664 0x1.ca056fb59bdb9p651, 0x1.e59b99b174a0dp-528,
4665 0x1.7a995c7651aa7p929, -0x1.a25d3d5153405p413,
4666 0x1.e5579317d4b37p-50, 0x1.f9d5578c67f67p-90,
4667 -0x1.5da751d423506p611, 0x1.9a2cba7bf2467p488,
4668 0x1.db3d45f662c4ep-619,
1496 });4669 });
1497 try testArgs(@Vector(16, f64), .{4670 try testArgs(@Vector(16, f64), .{
1498 -0x1.8fc7286d95f54p-235, -0x1.796a7ea8372b6p-837,4671 0x1.fd61de463a33cp898, -0x1.47be52b4f1241p-18,
1499 -0x1.8c0f930539acbp-98, -0x1.ec80dfbf0b931p-430,4672 0x1.729aa777312a3p-930, -0x1.2db258cd9984dp895,
1500 -0x1.e3d80c640652fp-1019, 0x1.8241238fb542fp161,4673 0x1.a1fbc900c10cbp517, -0x1.e93dfa8923807p815,
1501 -0x1.e1f1a79d50263p137, -0x1.9ac5cb2771c28p-791,4674 -0x1.e8f19fc0aa2a8p191, -0x1.1b084206321d5p861,
1502 0x1.4d8f00fe881e7p-401, -0x1.87fbd7bfd99d7p346,4675 -0x1.0be3c6310c58ep457, 0x1.816c3bcf4b9f5p-504,
1503 -0x1.a8a7cc575335ep1017, 0x1.37bb88dc3fd8bp-355,4676 0x1.ec4b026b00c91p-831, 0x1.e42d18f5c7e4bp924,
1504 0x1.9d53d346c0e65p929, -0x1.bbae3d0229c34p289,4677 -0x1.f1483ecd74646p560, -0x1.cc5aea97d2264p447,
1505 -0x1.cb8ef994d5ce5p25, 0x1.ba20af512616ap50,4678 -0x1.a0b1e5b69d166p597, 0x1.e9a109fcf1358p694,
4679 });
4680 try testArgs(@Vector(17, f64), .{
4681 -0x1.cd163cf2878e5p-934, -0x1.ce0ad5b67552p196,
4682 -0x1.da0fd3a62b298p508, 0x1.1981c99b14943p3,
4683 0x1.d2f6461a9d1a9p390, -0x1.e8e877d3b4e96p-539,
4684 -0x1.8ad9d3e185c43p864, 0x1.61786be9783eep-110,
4685 -0x1.1f4be91d90cc3p-500, 0x1.71cacdd984837p956,
4686 0x1.7b6ae301fd95ep-661, 0x1.24571ba56e32p343,
4687 0x1.b1a9454ab9481p648, -0x1.887873f8044fep842,
4688 -0x1.2f4ee57b9de22p-967, -0x1.c931346ced885p-983,
4689 0x1.fe31b9923796bp-772,
1506 });4690 });
15074691
1508 try testArgs(@Vector(1, f80), .{4692 try testArgs(@Vector(1, f80), .{
1509 -0x1.a2e9410a7dfedabp-2324,4693 -0x1.482098130df28b74p12578,
1510 });4694 });
1511 try testArgs(@Vector(2, f80), .{4695 try testArgs(@Vector(2, f80), .{
1512 -0x1.a2e9410a7dfedabp-2324,4696 -0x1.275157565b1eee5ep14003,
1513 0x1.2b17da3b9746885p-8665,4697 0x1.a27b82ef4be6132ap3681,
4698 });
4699 try testArgs(@Vector(3, f80), .{
4700 0x1.9825fbd9b22021fep-10432,
4701 -0x1.b8c8c4e5e3911ca8p13568,
4702 0x1.aa99cc199c8e524p9865,
1514 });4703 });
1515 try testArgs(@Vector(4, f80), .{4704 try testArgs(@Vector(4, f80), .{
1516 -0x1.c488fedb7ab646cep-13007,4705 -0x1.9d8ab0a36953d0f6p-760,
1517 0x1.e914deaccaa50016p2073,4706 0x1.869b464121ce6576p-13660,
1518 -0x1.d1c7ae8ec3c9df86p10642,4707 0x1.a54b1d1e8ae2b62ap12073,
1519 -0x1.2da1658f337fa01p9893,4708 -0x1.2abe41c9a9d89ea4p-13141,
4709 });
4710 try testArgs(@Vector(5, f80), .{
4711 0x1.0fb10e205522f5aep-15041,
4712 -0x1.13e0c338580504dap10809,
4713 0x1.50e7c6666fd851acp-5508,
4714 -0x1.e2231120481fc762p-8351,
4715 0x1.4fae86dc45b06fe2p10741,
4716 });
4717 try testArgs(@Vector(7, f80), .{
4718 -0x1.fe8f8caa4e8697ecp-2992,
4719 0x1.2623c910a340e286p-14518,
4720 0x1.c5524642a438569p-9469,
4721 0x1.3d416ca0a47c73cep2981,
4722 0x1.a3a1eb1243923114p-6689,
4723 -0x1.a55df9ded3010b1cp-5798,
4724 -0x1.3d593df395b03e5ap-14382,
1520 });4725 });
1521 try testArgs(@Vector(8, f80), .{4726 try testArgs(@Vector(8, f80), .{
1522 -0x1.bed8a74c43750656p890,4727 -0x1.9bb73ea024f4167cp3116,
1523 -0x1.7bf57f38004ac976p8481,4728 0x1.adf6241753b29ed2p-4428,
1524 -0x1.9cdc10ac0657d328p7884,4729 -0x1.1494fa8680f9f5f4p2008,
1525 0x1.c86f61883da149fp12293,4730 -0x1.c68a673c59edeb24p2377,
1526 -0x1.528d6957df6bfdd8p14125,4731 0x1.26c7ab4021afb6dcp1376,
1527 -0x1.5ebb4006d0243bfep14530,4732 0x1.c829b0b3935a2ac6p-11758,
1528 -0x1.94b9b18636d12402p-1845,4733 -0x1.11e39b110c2fb122p-3836,
1529 -0x1.25439a6d68add188p5962,4734 -0x1.6db14745e291d466p1604,
4735 });
4736 try testArgs(@Vector(9, f80), .{
4737 0x1.f6e537676c132cc6p-10213,
4738 -0x1.b86eadf24d8c80eep808,
4739 -0x1.54bc27c9a9a2348cp-2369,
4740 -0x1.99453820b245bc5p-840,
4741 -0x1.93c299090fd981e6p-5264,
4742 -0x1.c742059979281ec4p-6347,
4743 -0x1.e3efe7b892591d3p-1877,
4744 -0x1.350c20a2d59c67dap-8972,
4745 -0x1.e3879f20ffc62ff2p-2600,
1530 });4746 });
15314747
1532 try testArgs(@Vector(1, f128), .{4748 try testArgs(@Vector(1, f128), .{
1533 -0x1.d1e6fc3b1e66632e7b79051a47dap14300,4749 -0x1.274ece23c1832bfe66a1bc59cf87p-8354,
1534 });4750 });
1535 try testArgs(@Vector(2, f128), .{4751 try testArgs(@Vector(2, f128), .{
1536 0x1.84b3ac8ffe5893b2c6af8d68de9dp-83,4752 0x1.838a4e7ba1e2191cebe701eac5d4p6581,
1537 -0x1.438ca2c8a0d8e3ee9062d351c46ep-10235,4753 0x1.cdfbda51a2adbce757d7c2e0981bp446,
4754 });
4755 try testArgs(@Vector(3, f128), .{
4756 -0x1.ff45938938f76db417c980c368c6p-7215,
4757 -0x1.277a316793a0172e49c7227952ccp10618,
4758 0x1.d85027eb4f4ed3512c10bff9a199p-8465,
1538 });4759 });
1539 try testArgs(@Vector(4, f128), .{4760 try testArgs(@Vector(4, f128), .{
1540 0x1.04eb03882d4fd1b090e714d3e5ep806,4761 -0x1.43d8ecf283d4ec6fc4993f385386p-12233,
1541 -0x1.4082b29f7c26e701764c915642ffp-6182,4762 -0x1.384424d239aa2ed9719d2c2d1e58p7346,
1542 -0x1.b6f1e8565e5040415110f18b519ap13383,4763 -0x1.d33fd11001f0ab6d0f9a2790b41cp14692,
1543 0x1.1c29f8c162cead9061c5797ea15ap11957,4764 -0x1.40219a635ef4b042cfb9d7bd9781p900,
4765 });
4766 try testArgs(@Vector(5, f128), .{
4767 -0x1.3273c97faf4619baedaebb51148fp9085,
4768 -0x1.f381263ad1033a071dff3a143b14p-13649,
4769 -0x1.24b24810f9a1f9b5d1542e2b5841p1425,
4770 -0x1.df9e062d482c2bbae0b8fcb07efep-5044,
4771 -0x1.15cbca8b8384412d7d09ff76bfe4p-2424,
4772 });
4773 try testArgs(@Vector(7, f128), .{
4774 -0x1.0972e6da79fa8bcd49431d813ea5p12192,
4775 0x1.568e3e61ac4fb17303e4ead041dcp-2542,
4776 0x1.a55c3f0014942187e6d40c72f12p-13437,
4777 -0x1.31fb0ec6dbdf7e4ea8ecc307e6f4p13767,
4778 -0x1.5dcc12514e3e540fea9dbd257935p-8938,
4779 -0x1.32471cd1d5d2a36e9148a8ce879ap-3274,
4780 -0x1.3fd3eb6d86a14567e49f358cf029p-4569,
1544 });4781 });
1545 try testArgs(@Vector(8, f128), .{4782 try testArgs(@Vector(8, f128), .{
1546 -0x1.53d7f00cd204d80e5ff5bb665773p11218,4783 -0x1.05fe5035b415bdc5f8f9ae4c8815p455,
1547 -0x1.4daa1c81cffe28e8fa5cd703c287p2362,4784 -0x1.fafde904d5cad82413daee7b88b8p-244,
1548 -0x1.cc6a71c3ad4560871efdbd025cd7p-8116,4785 0x1.53041230913c654449b12eb4d89bp2214,
1549 -0x1.87f8553cf8772fb6b78e7df3e3bap14523,4786 -0x1.12d9f4b006063e9c0c7bdf19f61ap-2483,
1550 -0x1.14b6880f6678f86dfb543dde1c6ep2105,4787 0x1.aee9d4ba013f668773e4f0fd9002p5461,
1551 0x1.9d2d4398414da9d857e76e8fd7ccp-13668,4788 0x1.a6776670633403e78a3cc6fcf8fdp8324,
1552 0x1.a37f07af240ded458d103c022064p-1158,4789 -0x1.392aa756df3b993ea9db22def53ep15136,
1553 0x1.425d53e6bd6070b847e5da1ed593p1394,4790 0x1.823ef104549bdd4624961a44736cp-1097,
4791 });
4792 try testArgs(@Vector(9, f128), .{
4793 -0x1.bde12739521a2bff70e510a6aca3p12384,
4794 -0x1.0001c77658eb15cd7cb631b4836bp2147,
4795 -0x1.f24c72b8cde26d95bd40f689a2aep-1416,
4796 -0x1.61957e7946030c0432af0381f64ap-9492,
4797 -0x1.631851492fa27fe7adc7441e0d21p16144,
4798 -0x1.9dd39ece97e7a70c6d36e7e3026p-15761,
4799 0x1.b044e441d7377755389d0bab3256p-1181,
4800 0x1.5c11719701b7ff21384fbbf32922p-1671,
4801 -0x1.1a2944a4dff2a4f96732bf03e8f7p-10567,
1554 });4802 });
1555 }4803 }
1556 };4804 };
...@@ -1819,8 +5067,107 @@ test optionalNotEqualNull {...@@ -1819,8 +5067,107 @@ test optionalNotEqualNull {
1819 try test_optional_not_equal_null.testFloats();5067 try test_optional_not_equal_null.testFloats();
1820}5068}
18215069
1822inline fn splat(comptime Type: type, lhs: Type) Type {5070inline fn reduceAnd(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
1823 return @splat(lhs[0]);5071 return @reduce(.And, rhs);
5072}
5073test reduceAnd {
5074 const test_reduce_and = unary(reduceAnd, .{});
5075 try test_reduce_and.testBoolVectors();
5076 try test_reduce_and.testIntVectors();
5077}
5078
5079inline fn reduceOr(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5080 return @reduce(.Or, rhs);
5081}
5082test reduceOr {
5083 const test_reduce_or = unary(reduceOr, .{});
5084 try test_reduce_or.testBoolVectors();
5085 try test_reduce_or.testIntVectors();
5086}
5087
5088inline fn reduceXor(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5089 return @reduce(.Xor, rhs);
5090}
5091test reduceXor {
5092 const test_reduce_xor = unary(reduceXor, .{});
5093 try test_reduce_xor.testBoolVectors();
5094 try test_reduce_xor.testIntVectors();
5095}
5096
5097inline fn reduceMin(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5098 return @reduce(.Min, rhs);
5099}
5100test reduceMin {
5101 const test_reduce_min = unary(reduceMin, .{});
5102 try test_reduce_min.testIntVectors();
5103 try test_reduce_min.testFloatVectors();
5104}
5105
5106inline fn reduceMax(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5107 return @reduce(.Max, rhs);
5108}
5109test reduceMax {
5110 const test_reduce_max = unary(reduceMax, .{});
5111 try test_reduce_max.testIntVectors();
5112 try test_reduce_max.testFloatVectors();
5113}
5114
5115inline fn reduceAdd(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5116 return @reduce(.Add, rhs);
5117}
5118test reduceAdd {
5119 const test_reduce_add = unary(reduceAdd, .{});
5120 try test_reduce_add.testIntVectors();
5121 try test_reduce_add.testFloatVectors();
5122}
5123
5124inline fn reduceMul(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5125 return @reduce(.Mul, rhs);
5126}
5127test reduceMul {
5128 const test_reduce_mul = unary(reduceMul, .{});
5129 try test_reduce_mul.testIntVectors();
5130 try test_reduce_mul.testFloatVectors();
5131}
5132
5133inline fn reduceMinOptimized(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5134 @setFloatMode(.optimized);
5135 return @reduce(.Min, rhs);
5136}
5137test reduceMinOptimized {
5138 const test_reduce_min_optimized = unary(reduceMinOptimized, .{});
5139 try test_reduce_min_optimized.testFloatVectors();
5140}
5141
5142inline fn reduceMaxOptimized(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5143 @setFloatMode(.optimized);
5144 return @reduce(.Max, rhs);
5145}
5146test reduceMaxOptimized {
5147 const test_reduce_max_optimized = unary(reduceMaxOptimized, .{});
5148 try test_reduce_max_optimized.testFloatVectors();
5149}
5150
5151inline fn reduceAddOptimized(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5152 @setFloatMode(.optimized);
5153 return @reduce(.Add, rhs);
5154}
5155test reduceAddOptimized {
5156 const test_reduce_add_optimized = unary(reduceAddOptimized, .{ .compare = .approx });
5157 try test_reduce_add_optimized.testFloatVectors();
5158}
5159
5160inline fn reduceMulOptimized(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
5161 @setFloatMode(.optimized);
5162 return @reduce(.Mul, rhs);
5163}
5164test reduceMulOptimized {
5165 const test_reduce_mul_optimized = unary(reduceMulOptimized, .{ .compare = .approx_or_overflow });
5166 try test_reduce_mul_optimized.testFloatVectors();
5167}
5168
5169inline fn splat(comptime Type: type, rhs: Type) Type {
5170 return @splat(rhs[0]);
1824}5171}
1825test splat {5172test splat {
1826 const test_splat = unary(splat, .{});5173 const test_splat = unary(splat, .{});
test/cases/compile_errors/@import_zon_bad_type.zig+3-3
...@@ -117,9 +117,9 @@ export fn testMutablePointer() void {...@@ -117,9 +117,9 @@ export fn testMutablePointer() void {
117// tmp.zig:37:38: note: imported here117// tmp.zig:37:38: note: imported here
118// neg_inf.zon:1:1: error: expected type '?u8'118// neg_inf.zon:1:1: error: expected type '?u8'
119// tmp.zig:57:28: note: imported here119// tmp.zig:57:28: note: imported here
120// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_501'120// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_518'
121// tmp.zig:62:39: note: imported here121// tmp.zig:62:39: note: imported here
122// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_503'122// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_520'
123// tmp.zig:67:44: note: imported here123// tmp.zig:67:44: note: imported here
124// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_506'124// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_523'
125// tmp.zig:72:50: note: imported here125// 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 {...@@ -15,6 +15,6 @@ pub export fn entry() void {
15// error15// error
16//16//
17// :7:25: error: unable to resolve comptime value17// :7:25: error: unable to resolve comptime value
18// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_475.C' must be comptime-known18// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_492.C' must be comptime-known
19// :4:16: note: struct requires comptime because of this field19// :4:16: note: struct requires comptime because of this field
20// :4:16: note: types are not available at runtime20// :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 {...@@ -16,5 +16,5 @@ pub export fn entry2() void {
16//16//
17// :3:6: error: no field or member function named 'copy' in '[]const u8'17// :3:6: error: no field or member function named 'copy' in '[]const u8'
18// :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})'18// :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_479'19// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_496'
20// :12:6: note: struct declared here20// :12:6: note: struct declared here
test/cases/compile_errors/coerce_anon_struct.zig+1-1
...@@ -6,6 +6,6 @@ export fn foo() void {...@@ -6,6 +6,6 @@ export fn foo() void {
66
7// error7// error
8//8//
9// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_468'9// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_485'
10// :3:16: note: struct declared here10// :3:16: note: struct declared here
11// :1:11: note: struct declared here11// :1:11: note: struct declared here
test/cases/compile_errors/redundant_try.zig+2-2
...@@ -44,9 +44,9 @@ comptime {...@@ -44,9 +44,9 @@ comptime {
44//44//
45// :5:23: error: expected error union type, found 'comptime_int'45// :5:23: error: expected error union type, found 'comptime_int'
46// :10:23: error: expected error union type, found '@TypeOf(.{})'46// :10:23: error: expected error union type, found '@TypeOf(.{})'
47// :15:23: error: expected error union type, found 'tmp.test2__struct_505'47// :15:23: error: expected error union type, found 'tmp.test2__struct_522'
48// :15:23: note: struct declared here48// :15:23: note: struct declared here
49// :20:27: error: expected error union type, found 'tmp.test3__struct_507'49// :20:27: error: expected error union type, found 'tmp.test3__struct_524'
50// :20:27: note: struct declared here50// :20:27: note: struct declared here
51// :25:23: error: expected error union type, found 'struct { comptime *const [5:0]u8 = "hello" }'51// :25:23: error: expected error union type, found 'struct { comptime *const [5:0]u8 = "hello" }'
52// :31:13: error: expected error union type, found 'u32'52// :31:13: error: expected error union type, found 'u32'
test/cases/float_mode_optimized_reduce.zig+2-2
...@@ -8,5 +8,5 @@ pub fn main() void {...@@ -8,5 +8,5 @@ pub fn main() void {
8}8}
99
10// run10// run
11// backend=llvm11// backend=stage2,llvm
12//12// target=x86_64-linux