authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-18 13:12:12-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-05-28 15:10:22-04:00
logd69f4c48fc6694293573aec6e370d429877a4c7d
treebbe286dda007ce43f43f40bb2225e6e5a90cfc3f
parent4f3b59f708058ce4e4b6a1cacd2a3dae6e1c7aae

x86_64: rewrite bitwise `@reduce`


17 files changed, 10309 insertions(+), 1514 deletions(-)

lib/std/crypto/timing_safe.zig-2
......@@ -192,8 +192,6 @@ test eql {
192192}
193193
194194test "eql (vectors)" {
195 if (@import("builtin").zig_backend == .stage2_x86_64) return error.SkipZigTest;
196
197195 const random = std.crypto.random;
198196 const expect = std.testing.expect;
199197 var a: [100]u8 = undefined;
lib/std/zig/Zir.zig+5-1
......@@ -2142,7 +2142,7 @@ pub const Inst = struct {
21422142 ref_start_index = static_len,
21432143 _,
21442144
2145 pub const static_len = 101;
2145 pub const static_len = 105;
21462146
21472147 pub fn toRef(i: Index) Inst.Ref {
21482148 return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i));
......@@ -2190,6 +2190,7 @@ pub const Inst = struct {
21902190 u80_type,
21912191 u128_type,
21922192 i128_type,
2193 u256_type,
21932194 usize_type,
21942195 isize_type,
21952196 c_char_type,
......@@ -2234,6 +2235,7 @@ pub const Inst = struct {
22342235 vector_8_u8_type,
22352236 vector_16_u8_type,
22362237 vector_32_u8_type,
2238 vector_64_u8_type,
22372239 vector_4_i16_type,
22382240 vector_8_i16_type,
22392241 vector_16_i16_type,
......@@ -2248,7 +2250,9 @@ pub const Inst = struct {
22482250 vector_4_i64_type,
22492251 vector_2_u64_type,
22502252 vector_4_u64_type,
2253 vector_1_u128_type,
22512254 vector_2_u128_type,
2255 vector_1_u256_type,
22522256 vector_4_f16_type,
22532257 vector_8_f16_type,
22542258 vector_2_f32_type,
src/Air.zig+4
......@@ -973,6 +973,7 @@ pub const Inst = struct {
973973 u80_type = @intFromEnum(InternPool.Index.u80_type),
974974 u128_type = @intFromEnum(InternPool.Index.u128_type),
975975 i128_type = @intFromEnum(InternPool.Index.i128_type),
976 u256_type = @intFromEnum(InternPool.Index.u256_type),
976977 usize_type = @intFromEnum(InternPool.Index.usize_type),
977978 isize_type = @intFromEnum(InternPool.Index.isize_type),
978979 c_char_type = @intFromEnum(InternPool.Index.c_char_type),
......@@ -1017,6 +1018,7 @@ pub const Inst = struct {
10171018 vector_8_u8_type = @intFromEnum(InternPool.Index.vector_8_u8_type),
10181019 vector_16_u8_type = @intFromEnum(InternPool.Index.vector_16_u8_type),
10191020 vector_32_u8_type = @intFromEnum(InternPool.Index.vector_32_u8_type),
1021 vector_64_u8_type = @intFromEnum(InternPool.Index.vector_64_u8_type),
10201022 vector_4_i16_type = @intFromEnum(InternPool.Index.vector_4_i16_type),
10211023 vector_8_i16_type = @intFromEnum(InternPool.Index.vector_8_i16_type),
10221024 vector_16_i16_type = @intFromEnum(InternPool.Index.vector_16_i16_type),
......@@ -1031,7 +1033,9 @@ pub const Inst = struct {
10311033 vector_4_i64_type = @intFromEnum(InternPool.Index.vector_4_i64_type),
10321034 vector_2_u64_type = @intFromEnum(InternPool.Index.vector_2_u64_type),
10331035 vector_4_u64_type = @intFromEnum(InternPool.Index.vector_4_u64_type),
1036 vector_1_u128_type = @intFromEnum(InternPool.Index.vector_1_u128_type),
10341037 vector_2_u128_type = @intFromEnum(InternPool.Index.vector_2_u128_type),
1038 vector_1_u256_type = @intFromEnum(InternPool.Index.vector_1_u256_type),
10351039 vector_4_f16_type = @intFromEnum(InternPool.Index.vector_4_f16_type),
10361040 vector_8_f16_type = @intFromEnum(InternPool.Index.vector_8_f16_type),
10371041 vector_2_f32_type = @intFromEnum(InternPool.Index.vector_2_f32_type),
src/InternPool.zig+23
......@@ -4548,6 +4548,7 @@ pub const Index = enum(u32) {
45484548 u80_type,
45494549 u128_type,
45504550 i128_type,
4551 u256_type,
45514552 usize_type,
45524553 isize_type,
45534554 c_char_type,
......@@ -4594,6 +4595,7 @@ pub const Index = enum(u32) {
45944595 vector_8_u8_type,
45954596 vector_16_u8_type,
45964597 vector_32_u8_type,
4598 vector_64_u8_type,
45974599 vector_4_i16_type,
45984600 vector_8_i16_type,
45994601 vector_16_i16_type,
......@@ -4608,7 +4610,9 @@ pub const Index = enum(u32) {
46084610 vector_4_i64_type,
46094611 vector_2_u64_type,
46104612 vector_4_u64_type,
4613 vector_1_u128_type,
46114614 vector_2_u128_type,
4615 vector_1_u256_type,
46124616 vector_4_f16_type,
46134617 vector_8_f16_type,
46144618 vector_2_f32_type,
......@@ -5022,6 +5026,11 @@ pub const static_keys = [_]Key{
50225026 .bits = 128,
50235027 } },
50245028
5029 .{ .int_type = .{
5030 .signedness = .unsigned,
5031 .bits = 256,
5032 } },
5033
50255034 .{ .simple_type = .usize },
50265035 .{ .simple_type = .isize },
50275036 .{ .simple_type = .c_char },
......@@ -5125,6 +5134,8 @@ pub const static_keys = [_]Key{
51255134 .{ .vector_type = .{ .len = 16, .child = .u8_type } },
51265135 // @Vector(32, u8)
51275136 .{ .vector_type = .{ .len = 32, .child = .u8_type } },
5137 // @Vector(64, u8)
5138 .{ .vector_type = .{ .len = 64, .child = .u8_type } },
51285139 // @Vector(4, i16)
51295140 .{ .vector_type = .{ .len = 4, .child = .i16_type } },
51305141 // @Vector(8, i16)
......@@ -5153,8 +5164,12 @@ pub const static_keys = [_]Key{
51535164 .{ .vector_type = .{ .len = 2, .child = .u64_type } },
51545165 // @Vector(8, u64)
51555166 .{ .vector_type = .{ .len = 4, .child = .u64_type } },
5167 // @Vector(1, u128)
5168 .{ .vector_type = .{ .len = 1, .child = .u128_type } },
51565169 // @Vector(2, u128)
51575170 .{ .vector_type = .{ .len = 2, .child = .u128_type } },
5171 // @Vector(1, u256)
5172 .{ .vector_type = .{ .len = 1, .child = .u256_type } },
51585173 // @Vector(4, f16)
51595174 .{ .vector_type = .{ .len = 4, .child = .f16_type } },
51605175 // @Vector(8, f16)
......@@ -11767,6 +11782,7 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
1176711782 .u80_type,
1176811783 .u128_type,
1176911784 .i128_type,
11785 .u256_type,
1177011786 .usize_type,
1177111787 .isize_type,
1177211788 .c_char_type,
......@@ -11811,6 +11827,7 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
1181111827 .vector_8_u8_type,
1181211828 .vector_16_u8_type,
1181311829 .vector_32_u8_type,
11830 .vector_64_u8_type,
1181411831 .vector_4_i16_type,
1181511832 .vector_8_i16_type,
1181611833 .vector_16_i16_type,
......@@ -11825,7 +11842,9 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
1182511842 .vector_4_i64_type,
1182611843 .vector_2_u64_type,
1182711844 .vector_4_u64_type,
11845 .vector_1_u128_type,
1182811846 .vector_2_u128_type,
11847 .vector_1_u256_type,
1182911848 .vector_4_f16_type,
1183011849 .vector_8_f16_type,
1183111850 .vector_2_f32_type,
......@@ -12084,6 +12103,7 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
1208412103 .u80_type,
1208512104 .u128_type,
1208612105 .i128_type,
12106 .u256_type,
1208712107 .usize_type,
1208812108 .isize_type,
1208912109 .c_char_type,
......@@ -12135,6 +12155,7 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
1213512155 .vector_8_u8_type,
1213612156 .vector_16_u8_type,
1213712157 .vector_32_u8_type,
12158 .vector_64_u8_type,
1213812159 .vector_4_i16_type,
1213912160 .vector_8_i16_type,
1214012161 .vector_16_i16_type,
......@@ -12149,7 +12170,9 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
1214912170 .vector_4_i64_type,
1215012171 .vector_2_u64_type,
1215112172 .vector_4_u64_type,
12173 .vector_1_u128_type,
1215212174 .vector_2_u128_type,
12175 .vector_1_u256_type,
1215312176 .vector_4_f16_type,
1215412177 .vector_8_f16_type,
1215512178 .vector_2_f32_type,
src/Sema.zig+4
......@@ -36595,6 +36595,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
3659536595 .u80_type,
3659636596 .u128_type,
3659736597 .i128_type,
36598 .u256_type,
3659836599 .usize_type,
3659936600 .isize_type,
3660036601 .c_char_type,
......@@ -36635,6 +36636,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
3663536636 .vector_8_u8_type,
3663636637 .vector_16_u8_type,
3663736638 .vector_32_u8_type,
36639 .vector_64_u8_type,
3663836640 .vector_4_i16_type,
3663936641 .vector_8_i16_type,
3664036642 .vector_16_i16_type,
......@@ -36649,7 +36651,9 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
3664936651 .vector_4_i64_type,
3665036652 .vector_2_u64_type,
3665136653 .vector_4_u64_type,
36654 .vector_1_u128_type,
3665236655 .vector_2_u128_type,
36656 .vector_1_u256_type,
3665336657 .vector_4_f16_type,
3665436658 .vector_8_f16_type,
3665536659 .vector_2_f32_type,
src/Type.zig+5-1
......@@ -994,7 +994,7 @@ pub fn abiAlignmentInner(
994994 .stage2_x86_64 => {
995995 if (vector_type.child == .bool_type) {
996996 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" };
998998 if (vector_type.len > 64) return .{ .scalar = .@"16" };
999999 const bytes = std.math.divCeil(u32, vector_type.len, 8) catch unreachable;
10001000 const alignment = std.math.ceilPowerOfTwoAssert(u32, bytes);
......@@ -4060,6 +4060,7 @@ pub const @"u32": Type = .{ .ip_index = .u32_type };
40604060pub const @"u64": Type = .{ .ip_index = .u64_type };
40614061pub const @"u80": Type = .{ .ip_index = .u80_type };
40624062pub const @"u128": Type = .{ .ip_index = .u128_type };
4063pub const @"u256": Type = .{ .ip_index = .u256_type };
40634064
40644065pub const @"i8": Type = .{ .ip_index = .i8_type };
40654066pub const @"i16": Type = .{ .ip_index = .i16_type };
......@@ -4115,6 +4116,7 @@ pub const vector_4_u8: Type = .{ .ip_index = .vector_4_u8_type };
41154116pub const vector_8_u8: Type = .{ .ip_index = .vector_8_u8_type };
41164117pub const vector_16_u8: Type = .{ .ip_index = .vector_16_u8_type };
41174118pub const vector_32_u8: Type = .{ .ip_index = .vector_32_u8_type };
4119pub const vector_64_u8: Type = .{ .ip_index = .vector_64_u8_type };
41184120pub const vector_4_i16: Type = .{ .ip_index = .vector_4_i16_type };
41194121pub const vector_8_i16: Type = .{ .ip_index = .vector_8_i16_type };
41204122pub const vector_16_i16: Type = .{ .ip_index = .vector_16_i16_type };
......@@ -4129,7 +4131,9 @@ pub const vector_2_i64: Type = .{ .ip_index = .vector_2_i64_type };
41294131pub const vector_4_i64: Type = .{ .ip_index = .vector_4_i64_type };
41304132pub const vector_2_u64: Type = .{ .ip_index = .vector_2_u64_type };
41314133pub const vector_4_u64: Type = .{ .ip_index = .vector_4_u64_type };
4134pub const vector_1_u128: Type = .{ .ip_index = .vector_1_u128_type };
41324135pub const vector_2_u128: Type = .{ .ip_index = .vector_2_u128_type };
4136pub const vector_1_u256: Type = .{ .ip_index = .vector_1_u256_type };
41334137pub const vector_4_f16: Type = .{ .ip_index = .vector_4_f16_type };
41344138pub const vector_8_f16: Type = .{ .ip_index = .vector_8_f16_type };
41354139pub const vector_2_f32: Type = .{ .ip_index = .vector_2_f32_type };
src/arch/x86_64/CodeGen.zig+6709-1120
......@@ -148,8 +148,11 @@ const Owner = union(enum) {
148148 }
149149};
150150
151const MaskKind = enum(u1) { sign, all };
152const MaskInfo = packed struct { kind: MaskKind, inverted: bool = false, scalar: Memory.Size };
151const MaskInfo = packed struct {
152 kind: enum(u1) { sign, all },
153 inverted: bool = false,
154 scalar: Memory.Size,
155};
153156
154157pub const MCValue = union(enum) {
155158 /// 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 {
23862389}
23872390
23882391fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2389 @setEvalBranchQuota(20_200);
2392 @setEvalBranchQuota(22_000);
23902393 const pt = cg.pt;
23912394 const zcu = pt.zcu;
23922395 const ip = &zcu.intern_pool;
......@@ -2424,7 +2427,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24242427 // zig fmt: off
24252428 .select => try cg.airSelect(inst),
24262429 .shuffle => try cg.airShuffle(inst),
2427 .reduce => try cg.airReduce(inst),
24282430 .reduce_optimized => try cg.airReduce(inst),
24292431 // zig fmt: on
24302432
......@@ -63335,20 +63337,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
6333563337 .bitcast => try cg.airBitCast(inst),
6333663338 .block => {
6333763339 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
63338 const extra = cg.air.extraData(Air.Block, ty_pl.payload);
63340 const block = cg.air.extraData(Air.Block, ty_pl.payload);
6333963341 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]));
63342 try cg.lowerBlock(inst, @ptrCast(cg.air.extra[block.end..][0..block.data.body_len]));
6334163343 if (cg.debug_output != .none) try cg.asmPseudo(.pseudo_dbg_leave_block_none);
6334263344 },
6334363345 .loop => if (use_old) try cg.airLoop(inst) else {
6334463346 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
63345 const extra = cg.air.extraData(Air.Block, ty_pl.payload);
63347 const block = cg.air.extraData(Air.Block, ty_pl.payload);
6334663348 try cg.loops.putNoClobber(cg.gpa, inst, .{
6334763349 .state = try cg.saveState(),
6334863350 .target = @intCast(cg.mir_instructions.len),
6334963351 });
6335063352 defer assert(cg.loops.remove(inst));
63351 try cg.genBodyBlock(@ptrCast(cg.air.extra[extra.end..][0..extra.data.body_len]));
63353 try cg.genBodyBlock(@ptrCast(cg.air.extra[block.end..][0..block.data.body_len]));
6335263354 },
6335363355 .repeat => if (use_old) try cg.airRepeat(inst) else {
6335463356 const repeat = air_datas[@intFromEnum(inst)].repeat;
......@@ -77295,15 +77297,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
7729577297 },
7729677298 .cmp_vector, .cmp_vector_optimized => |air_tag| if (use_old) try cg.airCmpVector(inst) else fallback: {
7729777299 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
77298 const extra = cg.air.extraData(Air.VectorCmp, ty_pl.payload).data;
77299 switch (extra.compareOperator()) {
77300 const vector_cmp = cg.air.extraData(Air.VectorCmp, ty_pl.payload).data;
77301 switch (vector_cmp.compareOperator()) {
7730077302 .eq, .neq => {},
77301 .lt, .lte, .gte, .gt => if (cg.floatBits(cg.typeOf(extra.lhs).childType(zcu)) == null)
77303 .lt, .lte, .gte, .gt => if (cg.floatBits(cg.typeOf(vector_cmp.lhs).childType(zcu)) == null)
7730277304 break :fallback try cg.airCmpVector(inst),
7730377305 }
77304 var ops = try cg.tempsFromOperands(inst, .{ extra.lhs, extra.rhs });
77306 var ops = try cg.tempsFromOperands(inst, .{ vector_cmp.lhs, vector_cmp.rhs });
7730577307 var res: [1]Temp = undefined;
77306 (err: switch (extra.compareOperator()) {
77308 (err: switch (vector_cmp.compareOperator()) {
7730777309 .lt, .lte, .gte, .gt => |cmp_op| {
7730877310 switch (cmp_op) {
7730977311 else => unreachable,
......@@ -84350,14 +84352,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
8435084352 }) catch |err| switch (err) {
8435184353 error.SelectFailed => return cg.fail("failed to select {s} {s} {} {} {}", .{
8435284354 @tagName(air_tag),
84353 @tagName(extra.compareOperator()),
84354 cg.typeOf(extra.lhs).fmt(pt),
84355 @tagName(vector_cmp.compareOperator()),
84356 cg.typeOf(vector_cmp.lhs).fmt(pt),
8435584357 ops[0].tracking(cg),
8435684358 ops[1].tracking(cg),
8435784359 }),
8435884360 else => |e| return e,
8435984361 };
84360 try res[0].finish(inst, &.{ extra.lhs, extra.rhs }, &ops, cg);
84362 try res[0].finish(inst, &.{ vector_cmp.lhs, vector_cmp.rhs }, &ops, cg);
8436184363 },
8436284364 .cond_br => try cg.airCondBr(inst),
8436384365 .switch_br => try cg.airSwitchBr(inst),
......@@ -84386,16 +84388,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
8438684388 },
8438784389 .dbg_inline_block => {
8438884390 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
84389 const extra = cg.air.extraData(Air.DbgInlineBlock, ty_pl.payload);
84391 const dbg_inline_block = cg.air.extraData(Air.DbgInlineBlock, ty_pl.payload);
8439084392 const old_inline_func = cg.inline_func;
8439184393 defer cg.inline_func = old_inline_func;
84392 cg.inline_func = extra.data.func;
84394 cg.inline_func = dbg_inline_block.data.func;
8439384395 if (cg.debug_output != .none) _ = try cg.addInst(.{
8439484396 .tag = .pseudo,
8439584397 .ops = .pseudo_dbg_enter_inline_func,
84396 .data = .{ .func = extra.data.func },
84398 .data = .{ .func = dbg_inline_block.data.func },
8439784399 });
84398 try cg.lowerBlock(inst, @ptrCast(cg.air.extra[extra.end..][0..extra.data.body_len]));
84400 try cg.lowerBlock(inst, @ptrCast(cg.air.extra[dbg_inline_block.end..][0..dbg_inline_block.data.body_len]));
8439984401 if (cg.debug_output != .none) _ = try cg.addInst(.{
8440084402 .tag = .pseudo,
8440184403 .ops = .pseudo_dbg_leave_inline_func,
......@@ -97931,14 +97933,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9793197933 },
9793297934 .struct_field_ptr => if (use_old) try cg.airStructFieldPtr(inst) else {
9793397935 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
97934 const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data;
97935 var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand});
97936 const struct_field = cg.air.extraData(Air.StructField, ty_pl.payload).data;
97937 var ops = try cg.tempsFromOperands(inst, .{struct_field.struct_operand});
9793697938 try ops[0].toOffset(cg.fieldOffset(
97937 cg.typeOf(extra.struct_operand),
97939 cg.typeOf(struct_field.struct_operand),
9793897940 ty_pl.ty.toType(),
97939 extra.field_index,
97941 struct_field.field_index,
9794097942 ), cg);
97941 try ops[0].finish(inst, &.{extra.struct_operand}, &ops, cg);
97943 try ops[0].finish(inst, &.{struct_field.struct_operand}, &ops, cg);
9794297944 },
9794397945 .struct_field_ptr_index_0,
9794497946 .struct_field_ptr_index_1,
......@@ -97968,19 +97970,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9796897970 },
9796997971 .struct_field_val => if (use_old) try cg.airStructFieldVal(inst) else fallback: {
9797097972 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
97971 const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data;
97972 const agg_ty = cg.typeOf(extra.struct_operand);
97973 const struct_field = cg.air.extraData(Air.StructField, ty_pl.payload).data;
97974 const agg_ty = cg.typeOf(struct_field.struct_operand);
9797397975 const field_ty = ty_pl.ty.toType();
9797497976 const field_off: u31 = switch (agg_ty.containerLayout(zcu)) {
97975 .auto, .@"extern" => @intCast(agg_ty.structFieldOffset(extra.field_index, zcu)),
97977 .auto, .@"extern" => @intCast(agg_ty.structFieldOffset(struct_field.field_index, zcu)),
9797697978 .@"packed" => break :fallback try cg.airStructFieldVal(inst),
9797797979 };
97978 var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand});
97980 var ops = try cg.tempsFromOperands(inst, .{struct_field.struct_operand});
9797997981 var res = if (!hack_around_sema_opv_bugs or field_ty.hasRuntimeBitsIgnoreComptime(zcu))
9798097982 try ops[0].read(field_ty, .{ .disp = field_off }, cg)
9798197983 else
9798297984 try cg.tempInit(field_ty, .none);
97983 try res.finish(inst, &.{extra.struct_operand}, &ops, cg);
97985 try res.finish(inst, &.{struct_field.struct_operand}, &ops, cg);
9798497986 },
9798597987 .set_union_tag => if (use_old) try cg.airSetUnionTag(inst) else {
9798697988 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
......@@ -116829,1028 +116831,6485 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116829116831 };
116830116832 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
116831116833 },
116832
116833 .splat => |air_tag| if (use_old) try cg.airSplat(inst) else fallback: {
116834 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);
116836 var ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
116834 .reduce => |air_tag| if (use_old) try cg.airReduce(inst) else fallback: {
116835 const reduce = air_datas[@intFromEnum(inst)].reduce;
116836 const ty = cg.typeOfIndex(inst);
116837 switch (reduce.operation) {
116838 .And, .Or, .Xor => {},
116839 .Min, .Max, .Add, .Mul => break :fallback try cg.airReduce(inst),
116840 }
116841 var ops = try cg.tempsFromOperands(inst, .{reduce.operand});
116837116842 var res: [1]Temp = undefined;
116838 cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{
116839 .required_features = .{ .avx2, null, null, null },
116840 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any },
116841 .src_constraints = .{ .{ .int = .byte }, .any, .any },
116842 .patterns = &.{
116843 .{ .src = .{ .mem, .none, .none } },
116844 .{ .src = .{ .to_sse, .none, .none } },
116845 },
116846 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
116847 .each = .{ .once = &.{
116848 .{ ._, .vp_b, .broadcast, .dst0x, .src0b, ._, ._ },
116849 } },
116850 }, .{
116851 .required_features = .{ .avx, null, null, null },
116852 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any },
116853 .src_constraints = .{ .{ .int = .byte }, .any, .any },
116854 .patterns = &.{
116855 .{ .src = .{ .to_sse, .none, .none } },
116856 },
116857 .extra_temps = .{
116858 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
116859 .unused,
116860 .unused,
116861 .unused,
116862 .unused,
116863 .unused,
116864 .unused,
116865 .unused,
116866 .unused,
116867 .unused,
116868 .unused,
116869 },
116870 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
116871 .each = .{ .once = &.{
116872 .{ ._, .vp_, .xor, .tmp0x, .tmp0x, .tmp0x, ._ },
116873 .{ ._, .vp_b, .shuf, .dst0x, .src0x, .tmp0x, ._ },
116874 } },
116875 }, .{
116876 .required_features = .{ .ssse3, null, null, null },
116877 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any },
116878 .src_constraints = .{ .{ .int = .byte }, .any, .any },
116879 .patterns = &.{
116880 .{ .src = .{ .to_mut_sse, .none, .none } },
116881 },
116882 .extra_temps = .{
116883 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
116884 .unused,
116885 .unused,
116886 .unused,
116887 .unused,
116888 .unused,
116889 .unused,
116890 .unused,
116891 .unused,
116892 .unused,
116893 .unused,
116894 },
116895 .dst_temps = .{ .{ .ref = .src0 }, .unused },
116896 .each = .{ .once = &.{
116897 .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ },
116898 .{ ._, .p_b, .shuf, .dst0x, .tmp0x, ._, ._ },
116899 } },
116900 }, .{
116901 .required_features = .{ .sse2, null, null, null },
116902 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any },
116903 .src_constraints = .{ .{ .int = .byte }, .any, .any },
116904 .patterns = &.{
116905 .{ .src = .{ .to_mut_sse, .none, .none } },
116906 },
116907 .dst_temps = .{ .{ .ref = .src0 }, .unused },
116908 .each = .{ .once = &.{
116909 .{ ._, .p_, .unpcklbw, .src0x, .src0x, ._, ._ },
116910 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
116911 .{ ._, .p_d, .shuf, .dst0x, .dst0x, .ui(0b00_00_00_00), ._ },
116912 } },
116913 }, .{
116914 .required_features = .{ .avx2, null, null, null },
116915 .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any },
116916 .src_constraints = .{ .{ .int = .byte }, .any, .any },
116917 .patterns = &.{
116918 .{ .src = .{ .mem, .none, .none } },
116919 .{ .src = .{ .to_sse, .none, .none } },
116920 },
116921 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
116922 .each = .{ .once = &.{
116923 .{ ._, .vp_b, .broadcast, .dst0y, .src0b, ._, ._ },
116924 } },
116925 }, .{
116926 .required_features = .{ .avx2, null, null, null },
116927 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any },
116928 .src_constraints = .{ .{ .int = .byte }, .any, .any },
116929 .patterns = &.{
116930 .{ .src = .{ .mem, .none, .none } },
116931 .{ .src = .{ .to_sse, .none, .none } },
116932 },
116933 .extra_temps = .{
116934 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
116935 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
116936 .unused,
116937 .unused,
116938 .unused,
116939 .unused,
116940 .unused,
116941 .unused,
116942 .unused,
116943 .unused,
116944 .unused,
116945 },
116946 .dst_temps = .{ .mem, .unused },
116947 .each = .{ .once = &.{
116948 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
116949 .{ ._, .vp_b, .broadcast, .tmp1y, .src0b, ._, ._ },
116950 .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
116951 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
116952 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
116953 } },
116954 }, .{
116955 .required_features = .{ .avx, null, null, null },
116956 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any },
116957 .src_constraints = .{ .{ .int = .byte }, .any, .any },
116958 .patterns = &.{
116959 .{ .src = .{ .to_sse, .none, .none } },
116960 },
116961 .extra_temps = .{
116962 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
116963 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
116964 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
116965 .unused,
116966 .unused,
116967 .unused,
116968 .unused,
116969 .unused,
116970 .unused,
116971 .unused,
116972 .unused,
116973 },
116974 .dst_temps = .{ .mem, .unused },
116975 .each = .{ .once = &.{
116976 .{ ._, .vp_, .xor, .tmp0x, .tmp0x, .tmp0x, ._ },
116977 .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_size), ._, ._ },
116978 .{ ._, .vp_b, .shuf, .tmp2x, .src0x, .tmp0x, ._ },
116979 .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp1), .tmp2x, ._, ._ },
116980 .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ },
116981 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
116982 } },
116983 }, .{
116984 .required_features = .{ .ssse3, null, null, null },
116985 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any },
116986 .src_constraints = .{ .{ .int = .byte }, .any, .any },
116987 .patterns = &.{
116988 .{ .src = .{ .to_mut_sse, .none, .none } },
116989 },
116990 .extra_temps = .{
116991 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
116992 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
116993 .unused,
116994 .unused,
116995 .unused,
116996 .unused,
116997 .unused,
116998 .unused,
116999 .unused,
117000 .unused,
117001 .unused,
117002 },
117003 .dst_temps = .{ .mem, .unused },
117004 .each = .{ .once = &.{
117005 .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ },
117006 .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_size), ._, ._ },
117007 .{ ._, .p_b, .shuf, .src0x, .tmp0x, ._, ._ },
117008 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp1), .src0x, ._, ._ },
117009 .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ },
117010 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117011 } },
117012 }, .{
117013 .required_features = .{ .sse2, null, null, null },
117014 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any },
117015 .src_constraints = .{ .{ .int = .byte }, .any, .any },
117016 .patterns = &.{
117017 .{ .src = .{ .to_mut_sse, .none, .none } },
117018 },
117019 .extra_temps = .{
117020 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117021 .unused,
117022 .unused,
117023 .unused,
117024 .unused,
117025 .unused,
117026 .unused,
117027 .unused,
117028 .unused,
117029 .unused,
117030 .unused,
117031 },
117032 .dst_temps = .{ .mem, .unused },
117033 .each = .{ .once = &.{
117034 .{ ._, .p_, .unpcklbw, .src0x, .src0x, ._, ._ },
117035 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117036 .{ ._, .p_w, .shufl, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
117037 .{ ._, .p_d, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
117038 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
117039 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117040 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117041 } },
117042 }, .{
117043 .required_features = .{ .slow_incdec, null, null, null },
117044 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any },
117045 .src_constraints = .{ .{ .int = .byte }, .any, .any },
117046 .patterns = &.{
117047 .{ .src = .{ .to_gpr, .none, .none } },
117048 },
117049 .extra_temps = .{
117050 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117051 .unused,
117052 .unused,
117053 .unused,
117054 .unused,
117055 .unused,
117056 .unused,
117057 .unused,
117058 .unused,
117059 .unused,
117060 .unused,
117061 },
117062 .dst_temps = .{ .mem, .unused },
117063 .each = .{ .once = &.{
117064 .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_size), ._, ._ },
117065 .{ .@"0:", ._, .mov, .memi(.dst0b, .tmp0), .src0b, ._, ._ },
117066 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
117067 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117068 } },
117069 }, .{
117070 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any },
117071 .src_constraints = .{ .{ .int = .byte }, .any, .any },
117072 .patterns = &.{
117073 .{ .src = .{ .to_gpr, .none, .none } },
117074 },
117075 .extra_temps = .{
117076 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117077 .unused,
117078 .unused,
117079 .unused,
117080 .unused,
117081 .unused,
117082 .unused,
117083 .unused,
117084 .unused,
117085 .unused,
117086 .unused,
117087 },
117088 .dst_temps = .{ .mem, .unused },
117089 .each = .{ .once = &.{
117090 .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_size), ._, ._ },
117091 .{ .@"0:", ._, .mov, .memi(.dst0b, .tmp0), .src0b, ._, ._ },
117092 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
117093 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
117094 } },
117095 }, .{
117096 .required_features = .{ .avx2, null, null, null },
117097 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any },
117098 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117099 .patterns = &.{
117100 .{ .src = .{ .mem, .none, .none } },
117101 .{ .src = .{ .to_sse, .none, .none } },
117102 },
117103 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117104 .each = .{ .once = &.{
117105 .{ ._, .vp_w, .broadcast, .dst0x, .src0w, ._, ._ },
117106 } },
117107 }, .{
117108 .required_features = .{ .avx, null, null, null },
117109 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any },
117110 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117111 .patterns = &.{
117112 .{ .src = .{ .to_sse, .none, .none } },
117113 },
117114 .extra_temps = .{
117115 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117116 .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } },
117117 .unused,
117118 .unused,
117119 .unused,
117120 .unused,
117121 .unused,
117122 .unused,
117123 .unused,
117124 .unused,
117125 .unused,
117126 },
117127 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117128 .each = .{ .once = &.{
117129 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117130 .{ ._, .vp_b, .shuf, .dst0x, .src0x, .lea(.tmp0x), ._ },
117131 } },
117132 }, .{
117133 .required_features = .{ .ssse3, null, null, null },
117134 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any },
117135 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117136 .patterns = &.{
117137 .{ .src = .{ .to_mut_sse, .none, .none } },
117138 },
117139 .extra_temps = .{
117140 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117141 .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } },
117142 .unused,
117143 .unused,
117144 .unused,
117145 .unused,
117146 .unused,
117147 .unused,
117148 .unused,
117149 .unused,
117150 .unused,
117151 },
117152 .dst_temps = .{ .{ .ref = .src0 }, .unused },
117153 .each = .{ .once = &.{
117154 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117155 .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ },
117156 } },
117157 }, .{
117158 .required_features = .{ .sse2, null, null, null },
117159 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any },
117160 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117161 .patterns = &.{
117162 .{ .src = .{ .to_sse, .none, .none } },
117163 },
117164 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117165 .each = .{ .once = &.{
117166 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
117167 .{ ._, .p_d, .shuf, .dst0x, .dst0x, .ui(0b00_00_00_00), ._ },
117168 } },
117169 }, .{
117170 .required_features = .{ .avx2, null, null, null },
117171 .dst_constraints = .{ .{ .scalar = .{ .of = .yword, .is = .word } }, .any },
117172 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117173 .patterns = &.{
117174 .{ .src = .{ .mem, .none, .none } },
117175 .{ .src = .{ .to_sse, .none, .none } },
117176 },
117177 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117178 .each = .{ .once = &.{
117179 .{ ._, .vp_w, .broadcast, .dst0y, .src0w, ._, ._ },
117180 } },
117181 }, .{
117182 .required_features = .{ .avx2, null, null, null },
117183 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .word } }, .any },
117184 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117185 .patterns = &.{
117186 .{ .src = .{ .mem, .none, .none } },
117187 .{ .src = .{ .to_sse, .none, .none } },
117188 },
117189 .extra_temps = .{
117190 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117191 .{ .type = .vector_16_u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
117192 .unused,
117193 .unused,
117194 .unused,
117195 .unused,
117196 .unused,
117197 .unused,
117198 .unused,
117199 .unused,
117200 .unused,
117201 },
117202 .dst_temps = .{ .mem, .unused },
117203 .each = .{ .once = &.{
117204 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
117205 .{ ._, .vp_w, .broadcast, .tmp1y, .src0w, ._, ._ },
117206 .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
117207 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
117208 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117209 } },
117210 }, .{
117211 .required_features = .{ .avx, null, null, null },
117212 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any },
117213 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117214 .patterns = &.{
117215 .{ .src = .{ .to_sse, .none, .none } },
117216 },
117217 .extra_temps = .{
117218 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117219 .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } },
117220 .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
117221 .unused,
117222 .unused,
117223 .unused,
117224 .unused,
117225 .unused,
117226 .unused,
117227 .unused,
117228 .unused,
117229 },
117230 .dst_temps = .{ .mem, .unused },
117231 .each = .{ .once = &.{
117232 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117233 .{ ._, .vp_b, .shuf, .tmp2x, .src0x, .lea(.tmp0x), ._ },
117234 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117235 .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp2x, ._, ._ },
117236 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117237 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117238 } },
117239 }, .{
117240 .required_features = .{ .ssse3, null, null, null },
117241 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any },
117242 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117243 .patterns = &.{
117244 .{ .src = .{ .to_mut_sse, .none, .none } },
117245 },
117246 .extra_temps = .{
117247 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117248 .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } },
117249 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
117250 .unused,
117251 .unused,
117252 .unused,
117253 .unused,
117254 .unused,
117255 .unused,
117256 .unused,
117257 .unused,
117258 },
117259 .dst_temps = .{ .mem, .unused },
117260 .each = .{ .once = &.{
117261 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117262 .{ ._, .p_b, .shuf, .src0x, .lea(.tmp0x), ._, ._ },
117263 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117264 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
117265 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117266 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117267 } },
117268 }, .{
117269 .required_features = .{ .sse2, null, null, null },
117270 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any },
117271 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117272 .patterns = &.{
117273 .{ .src = .{ .to_mut_sse, .none, .none } },
117274 },
117275 .extra_temps = .{
117276 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117277 .unused,
117278 .unused,
117279 .unused,
117280 .unused,
117281 .unused,
117282 .unused,
117283 .unused,
117284 .unused,
117285 .unused,
117286 .unused,
117287 },
117288 .dst_temps = .{ .mem, .unused },
117289 .each = .{ .once = &.{
117290 .{ ._, .p_w, .shufl, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
117291 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117292 .{ ._, .p_d, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
117293 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
117294 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117295 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117296 } },
117297 }, .{
117298 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .word, .is = .word } }, .any },
117299 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
117300 .patterns = &.{
117301 .{ .src = .{ .to_gpr, .none, .none } },
117302 },
117303 .extra_temps = .{
117304 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117305 .unused,
117306 .unused,
117307 .unused,
117308 .unused,
117309 .unused,
117310 .unused,
117311 .unused,
117312 .unused,
117313 .unused,
117314 .unused,
117315 },
117316 .dst_temps = .{ .mem, .unused },
117317 .each = .{ .once = &.{
117318 .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_size), ._, ._ },
117319 .{ .@"0:", ._, .mov, .memi(.dst0w, .tmp0), .src0w, ._, ._ },
117320 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
117321 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117322 } },
117323 }, .{
117324 .required_features = .{ .avx2, null, null, null },
117325 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any },
117326 .src_constraints = .{ .{ .int = .dword }, .any, .any },
117327 .patterns = &.{
117328 .{ .src = .{ .mem, .none, .none } },
117329 .{ .src = .{ .to_sse, .none, .none } },
117330 },
117331 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117332 .each = .{ .once = &.{
117333 .{ ._, .vp_d, .broadcast, .dst0x, .src0d, ._, ._ },
117334 } },
117335 }, .{
117336 .required_features = .{ .avx2, null, null, null },
117337 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any },
117338 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117339 .patterns = &.{
117340 .{ .src = .{ .mem, .none, .none } },
117341 .{ .src = .{ .to_sse, .none, .none } },
117342 },
117343 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117344 .each = .{ .once = &.{
117345 .{ ._, .v_ss, .broadcast, .dst0x, .src0d, ._, ._ },
117346 } },
117347 }, .{
117348 .required_features = .{ .avx, null, null, null },
117349 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .dword } }, .any },
117350 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
117351 .patterns = &.{
117352 .{ .src = .{ .mem, .none, .none } },
117353 },
117354 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117355 .each = .{ .once = &.{
117356 .{ ._, .v_ss, .broadcast, .dst0x, .src0d, ._, ._ },
117357 } },
117358 }, .{
117359 .required_features = .{ .avx, null, null, null },
117360 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any },
117361 .src_constraints = .{ .{ .int = .dword }, .any, .any },
117362 .patterns = &.{
117363 .{ .src = .{ .to_sse, .none, .none } },
117364 },
117365 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117366 .each = .{ .once = &.{
117367 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
117368 } },
117369 }, .{
117370 .required_features = .{ .avx, null, null, null },
117371 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any },
117372 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117373 .patterns = &.{
117374 .{ .src = .{ .to_sse, .none, .none } },
117375 },
117376 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117377 .each = .{ .once = &.{
117378 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b00_00_00_00) },
117379 } },
117380 }, .{
117381 .required_features = .{ .sse2, null, null, null },
117382 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any },
117383 .src_constraints = .{ .{ .int = .dword }, .any, .any },
117384 .patterns = &.{
117385 .{ .src = .{ .to_sse, .none, .none } },
117386 },
117387 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117388 .each = .{ .once = &.{
117389 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
117390 } },
117391 }, .{
117392 .required_features = .{ .sse, null, null, null },
117393 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any },
117394 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117395 .patterns = &.{
117396 .{ .src = .{ .mut_sse, .none, .none } },
117397 },
117398 .dst_temps = .{ .{ .ref = .src0 }, .unused },
117399 .each = .{ .once = &.{
117400 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
117401 } },
117402 }, .{
117403 .required_features = .{ .sse2, null, null, null },
117404 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any },
117405 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117406 .patterns = &.{
117407 .{ .src = .{ .sse, .none, .none } },
117408 },
117409 .dst_temps = .{ .{ .rc = .sse }, .unused },
117410 .each = .{ .once = &.{
117411 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
117412 } },
117413 }, .{
117414 .required_features = .{ .sse, null, null, null },
117415 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .dword } }, .any },
117416 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
117417 .patterns = &.{
117418 .{ .src = .{ .to_mut_sse, .none, .none } },
117419 },
117420 .dst_temps = .{ .{ .ref = .src0 }, .unused },
117421 .each = .{ .once = &.{
117422 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
117423 } },
117424 }, .{
117425 .required_features = .{ .avx2, null, null, null },
117426 .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any },
117427 .src_constraints = .{ .{ .int = .dword }, .any, .any },
117428 .patterns = &.{
117429 .{ .src = .{ .mem, .none, .none } },
117430 .{ .src = .{ .to_sse, .none, .none } },
117431 },
117432 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117433 .each = .{ .once = &.{
117434 .{ ._, .vp_d, .broadcast, .dst0y, .src0d, ._, ._ },
117435 } },
117436 }, .{
117437 .required_features = .{ .avx2, null, null, null },
117438 .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any },
117439 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117440 .patterns = &.{
117441 .{ .src = .{ .mem, .none, .none } },
117442 .{ .src = .{ .to_sse, .none, .none } },
117443 },
117444 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117445 .each = .{ .once = &.{
117446 .{ ._, .v_ss, .broadcast, .dst0y, .src0d, ._, ._ },
117447 } },
117448 }, .{
117449 .required_features = .{ .avx2, null, null, null },
117450 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any },
117451 .src_constraints = .{ .{ .int = .dword }, .any, .any },
117452 .patterns = &.{
117453 .{ .src = .{ .mem, .none, .none } },
117454 .{ .src = .{ .to_sse, .none, .none } },
117455 },
117456 .extra_temps = .{
117457 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117458 .{ .type = .vector_8_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
117459 .unused,
117460 .unused,
117461 .unused,
117462 .unused,
117463 .unused,
117464 .unused,
117465 .unused,
117466 .unused,
117467 .unused,
117468 },
117469 .dst_temps = .{ .mem, .unused },
117470 .each = .{ .once = &.{
117471 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
117472 .{ ._, .vp_d, .broadcast, .tmp1y, .src0d, ._, ._ },
117473 .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
117474 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
117475 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117476 } },
117477 }, .{
117478 .required_features = .{ .avx2, null, null, null },
117479 .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any },
117480 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117481 .patterns = &.{
117482 .{ .src = .{ .mem, .none, .none } },
117483 .{ .src = .{ .to_sse, .none, .none } },
117484 },
117485 .extra_temps = .{
117486 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117487 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
117488 .unused,
117489 .unused,
117490 .unused,
117491 .unused,
117492 .unused,
117493 .unused,
117494 .unused,
117495 .unused,
117496 .unused,
117497 },
117498 .dst_temps = .{ .mem, .unused },
117499 .each = .{ .once = &.{
117500 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
117501 .{ ._, .v_ss, .broadcast, .tmp1y, .src0d, ._, ._ },
117502 .{ .@"0:", .v_ps, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
117503 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
117504 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117505 } },
117506 }, .{
117507 .required_features = .{ .avx, null, null, null },
117508 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .dword } }, .any },
117509 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
117510 .patterns = &.{
117511 .{ .src = .{ .mem, .none, .none } },
117512 },
117513 .extra_temps = .{
117514 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117515 .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
117516 .unused,
117517 .unused,
117518 .unused,
117519 .unused,
117520 .unused,
117521 .unused,
117522 .unused,
117523 .unused,
117524 .unused,
117525 },
117526 .dst_temps = .{ .mem, .unused },
117527 .each = .{ .once = &.{
117528 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117529 .{ ._, .v_ss, .broadcast, .tmp1x, .src0d, ._, ._ },
117530 .{ .@"0:", .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
117531 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117532 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117533 } },
117534 }, .{
117535 .required_features = .{ .avx, null, null, null },
117536 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any },
117537 .src_constraints = .{ .{ .int = .dword }, .any, .any },
117538 .patterns = &.{
117539 .{ .src = .{ .to_sse, .none, .none } },
117540 },
117541 .extra_temps = .{
117542 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117543 .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
117544 .unused,
117545 .unused,
117546 .unused,
117547 .unused,
117548 .unused,
117549 .unused,
117550 .unused,
117551 .unused,
117552 .unused,
117553 },
117554 .dst_temps = .{ .mem, .unused },
117555 .each = .{ .once = &.{
117556 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117557 .{ ._, .vp_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ },
117558 .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
117559 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117560 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117561 } },
117562 }, .{
117563 .required_features = .{ .avx, null, null, null },
117564 .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any },
117565 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117566 .patterns = &.{
117567 .{ .src = .{ .to_sse, .none, .none } },
117568 },
117569 .extra_temps = .{
117570 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117571 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
117572 .unused,
117573 .unused,
117574 .unused,
117575 .unused,
117576 .unused,
117577 .unused,
117578 .unused,
117579 .unused,
117580 .unused,
117581 },
117582 .dst_temps = .{ .mem, .unused },
117583 .each = .{ .once = &.{
117584 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117585 .{ ._, .v_ps, .shuf, .tmp1x, .tmp1x, .src0x, .ui(0b00_00_00_00) },
117586 .{ .@"0:", .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
117587 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117588 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117589 } },
117590 }, .{
117591 .required_features = .{ .sse2, null, null, null },
117592 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any },
117593 .src_constraints = .{ .{ .int = .dword }, .any, .any },
117594 .patterns = &.{
117595 .{ .src = .{ .to_sse, .none, .none } },
117596 },
117597 .extra_temps = .{
117598 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117599 .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
117600 .unused,
117601 .unused,
117602 .unused,
117603 .unused,
117604 .unused,
117605 .unused,
117606 .unused,
117607 .unused,
117608 .unused,
117609 },
117610 .dst_temps = .{ .mem, .unused },
117611 .each = .{ .once = &.{
117612 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117613 .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ },
117614 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
117615 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117616 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117617 } },
117618 }, .{
117619 .required_features = .{ .sse, null, null, null },
117620 .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any },
117621 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117622 .patterns = &.{
117623 .{ .src = .{ .mut_sse, .none, .none } },
117624 },
117625 .extra_temps = .{
117626 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117627 .unused,
117628 .unused,
117629 .unused,
117630 .unused,
117631 .unused,
117632 .unused,
117633 .unused,
117634 .unused,
117635 .unused,
117636 .unused,
117637 },
117638 .dst_temps = .{ .mem, .unused },
117639 .each = .{ .once = &.{
117640 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117641 .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
117642 .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
117643 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117644 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117645 } },
117646 }, .{
117647 .required_features = .{ .sse2, null, null, null },
117648 .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any },
117649 .src_constraints = .{ .{ .float = .dword }, .any, .any },
117650 .patterns = &.{
117651 .{ .src = .{ .sse, .none, .none } },
117652 },
117653 .extra_temps = .{
117654 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117655 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
117656 .unused,
117657 .unused,
117658 .unused,
117659 .unused,
117660 .unused,
117661 .unused,
117662 .unused,
117663 .unused,
117664 .unused,
117665 },
117666 .dst_temps = .{ .mem, .unused },
117667 .each = .{ .once = &.{
117668 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117669 .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ },
117670 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
117671 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117672 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117673 } },
117674 }, .{
117675 .required_features = .{ .sse, null, null, null },
117676 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .dword } }, .any },
117677 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
117678 .patterns = &.{
117679 .{ .src = .{ .to_mut_sse, .none, .none } },
117680 },
117681 .extra_temps = .{
117682 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117683 .unused,
117684 .unused,
117685 .unused,
117686 .unused,
117687 .unused,
117688 .unused,
117689 .unused,
117690 .unused,
117691 .unused,
117692 .unused,
117693 },
117694 .dst_temps = .{ .mem, .unused },
117695 .each = .{ .once = &.{
117696 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
117697 .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
117698 .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
117699 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
117700 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117701 } },
117702 }, .{
117703 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .dword, .is = .dword } }, .any },
117704 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
117705 .patterns = &.{
117706 .{ .src = .{ .to_gpr, .none, .none } },
117707 },
117708 .extra_temps = .{
117709 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117710 .unused,
117711 .unused,
117712 .unused,
117713 .unused,
117714 .unused,
117715 .unused,
117716 .unused,
117717 .unused,
117718 .unused,
117719 .unused,
117720 },
117721 .dst_temps = .{ .mem, .unused },
117722 .each = .{ .once = &.{
117723 .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ },
117724 .{ .@"0:", ._, .mov, .memi(.dst0d, .tmp0), .src0d, ._, ._ },
117725 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
117726 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
117727 } },
117728 }, .{
117729 .required_features = .{ .avx2, null, null, null },
117730 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any },
117731 .src_constraints = .{ .{ .int = .qword }, .any, .any },
117732 .patterns = &.{
117733 .{ .src = .{ .mem, .none, .none } },
117734 .{ .src = .{ .to_sse, .none, .none } },
117735 },
117736 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117737 .each = .{ .once = &.{
117738 .{ ._, .vp_q, .broadcast, .dst0x, .src0q, ._, ._ },
117739 } },
117740 }, .{
117741 .required_features = .{ .avx2, null, null, null },
117742 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any },
117743 .src_constraints = .{ .{ .float = .qword }, .any, .any },
117744 .patterns = &.{
117745 .{ .src = .{ .mem, .none, .none } },
117746 .{ .src = .{ .to_sse, .none, .none } },
117747 },
117748 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117749 .each = .{ .once = &.{
117750 .{ ._, .v_, .movddup, .dst0x, .src0q, ._, ._ },
117751 } },
117752 }, .{
117753 .required_features = .{ .avx, null, null, null },
117754 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any },
117755 .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any },
117756 .patterns = &.{
117757 .{ .src = .{ .mem, .none, .none } },
117758 .{ .src = .{ .to_sse, .none, .none } },
117759 },
117760 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117761 .each = .{ .once = &.{
117762 .{ ._, .v_, .movddup, .dst0x, .src0q, ._, ._ },
117763 } },
117764 }, .{
117765 .required_features = .{ .sse3, null, null, null },
117766 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any },
117767 .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any },
117768 .patterns = &.{
117769 .{ .src = .{ .mem, .none, .none } },
117770 .{ .src = .{ .to_sse, .none, .none } },
117771 },
117772 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117773 .each = .{ .once = &.{
117774 .{ ._, ._, .movddup, .dst0x, .src0q, ._, ._ },
117775 } },
117776 }, .{
117777 .required_features = .{ .sse2, null, null, null },
117778 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any },
117779 .src_constraints = .{ .{ .int = .qword }, .any, .any },
117780 .patterns = &.{
117781 .{ .src = .{ .to_sse, .none, .none } },
117782 },
117783 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117784 .each = .{ .once = &.{
117785 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ },
117786 } },
117787 }, .{
117788 .required_features = .{ .sse2, null, null, null },
117789 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any },
117790 .src_constraints = .{ .{ .float = .qword }, .any, .any },
117791 .patterns = &.{
117792 .{ .src = .{ .mut_sse, .none, .none } },
117793 },
117794 .dst_temps = .{ .{ .ref = .src0 }, .unused },
117795 .each = .{ .once = &.{
117796 .{ ._, ._pd, .shuf, .dst0x, .src0x, .ui(0b0_0), ._ },
117797 } },
117798 }, .{
117799 .required_features = .{ .sse2, null, null, null },
117800 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any },
117801 .src_constraints = .{ .{ .float = .qword }, .any, .any },
117802 .patterns = &.{
117803 .{ .src = .{ .sse, .none, .none } },
117804 },
117805 .dst_temps = .{ .{ .rc = .sse }, .unused },
117806 .each = .{ .once = &.{
117807 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ },
117808 } },
117809 }, .{
117810 .required_features = .{ .sse2, null, null, null },
117811 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any },
117812 .src_constraints = .{ .{ .float = .qword }, .any, .any },
117813 .patterns = &.{
117814 .{ .src = .{ .to_mut_sse, .none, .none } },
117815 },
117816 .dst_temps = .{ .{ .ref = .src0 }, .unused },
117817 .each = .{ .once = &.{
117818 .{ ._, ._pd, .shuf, .dst0x, .src0x, .ui(0b0_0), ._ },
117819 } },
117820 }, .{
117821 .required_features = .{ .sse, null, null, null },
117822 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any },
117823 .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any },
117824 .patterns = &.{
117825 .{ .src = .{ .to_mut_sse, .none, .none } },
117826 },
117827 .dst_temps = .{ .{ .ref = .src0 }, .unused },
117828 .each = .{ .once = &.{
117829 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ },
117830 } },
117831 }, .{
117832 .required_features = .{ .avx2, null, null, null },
117833 .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any },
117834 .src_constraints = .{ .{ .int = .qword }, .any, .any },
117835 .patterns = &.{
117836 .{ .src = .{ .mem, .none, .none } },
117837 .{ .src = .{ .to_sse, .none, .none } },
117838 },
117839 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117840 .each = .{ .once = &.{
117841 .{ ._, .vp_q, .broadcast, .dst0y, .src0q, ._, ._ },
117842 } },
117843 }, .{
117844 .required_features = .{ .avx2, null, null, null },
117845 .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any },
117846 .src_constraints = .{ .{ .float = .qword }, .any, .any },
117847 .patterns = &.{
117848 .{ .src = .{ .mem, .none, .none } },
117849 .{ .src = .{ .to_sse, .none, .none } },
117850 },
117851 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
117852 .each = .{ .once = &.{
117853 .{ ._, .v_sd, .broadcast, .dst0y, .src0q, ._, ._ },
116843 cg.select(&res, &.{ty}, &ops, switch (reduce.operation) {
116844 .And, .Or, .Xor => switch (@as(Mir.Inst.Tag, switch (reduce.operation) {
116845 else => unreachable,
116846 .And => .@"and",
116847 .Or => .@"or",
116848 .Xor => .xor,
116849 })) {
116850 else => unreachable,
116851 inline .@"and", .@"or", .xor => |mir_tag| comptime &switch (mir_tag) {
116852 else => unreachable,
116853 .@"and" => [_]Select.Case{ .{
116854 .required_features = .{ .avx, null, null, null },
116855 .dst_constraints = .{ .bool, .any },
116856 .src_constraints = .{ .any_bool_vec, .any, .any },
116857 .patterns = &.{
116858 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword, .is = .inverted } }, .none, .none } },
116859 },
116860 .dst_temps = .{ .{ .cc = .z }, .unused },
116861 .clobbers = .{ .eflags = true },
116862 .each = .{ .once = &.{
116863 .{ ._, .vp_, .@"test", .src0x, .src0x, ._, ._ },
116864 } },
116865 }, .{
116866 .required_features = .{ .sse4_1, null, null, null },
116867 .dst_constraints = .{ .bool, .any },
116868 .src_constraints = .{ .any_bool_vec, .any, .any },
116869 .patterns = &.{
116870 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword, .is = .inverted } }, .none, .none } },
116871 },
116872 .dst_temps = .{ .{ .cc = .z }, .unused },
116873 .clobbers = .{ .eflags = true },
116874 .each = .{ .once = &.{
116875 .{ ._, .p_, .@"test", .src0x, .src0x, ._, ._ },
116876 } },
116877 }, .{
116878 .required_features = .{ .avx, null, null, null },
116879 .dst_constraints = .{ .bool, .any },
116880 .src_constraints = .{ .any_bool_vec, .any, .any },
116881 .patterns = &.{
116882 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword } }, .none, .none } },
116883 },
116884 .extra_temps = .{
116885 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
116886 .unused,
116887 .unused,
116888 .unused,
116889 .unused,
116890 .unused,
116891 .unused,
116892 .unused,
116893 .unused,
116894 .unused,
116895 .unused,
116896 },
116897 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
116898 .clobbers = .{ .eflags = true },
116899 .each = .{ .once = &.{
116900 .{ ._, .vp_b, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
116901 .{ ._, .vp_, .@"test", .src0x, .tmp0x, ._, ._ },
116902 } },
116903 }, .{
116904 .required_features = .{ .sse4_1, null, null, null },
116905 .dst_constraints = .{ .bool, .any },
116906 .src_constraints = .{ .any_bool_vec, .any, .any },
116907 .patterns = &.{
116908 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword } }, .none, .none } },
116909 },
116910 .extra_temps = .{
116911 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
116912 .unused,
116913 .unused,
116914 .unused,
116915 .unused,
116916 .unused,
116917 .unused,
116918 .unused,
116919 .unused,
116920 .unused,
116921 .unused,
116922 },
116923 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
116924 .clobbers = .{ .eflags = true },
116925 .each = .{ .once = &.{
116926 .{ ._, .p_b, .cmpeq, .tmp0x, .tmp0x, ._, ._ },
116927 .{ ._, .p_, .@"test", .src0x, .tmp0x, ._, ._ },
116928 } },
116929 }, .{
116930 .required_features = .{ .avx, null, null, null },
116931 .dst_constraints = .{ .bool, .any },
116932 .src_constraints = .{ .any_bool_vec, .any, .any },
116933 .patterns = &.{
116934 .{ .src = .{ .{ .reg_mask = .{ .size = .xword } }, .none, .none } },
116935 },
116936 .extra_temps = .{
116937 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
116938 .{ .type = .vector_16_u8, .kind = .{ .ptest_mask_mem = .src0 } },
116939 .unused,
116940 .unused,
116941 .unused,
116942 .unused,
116943 .unused,
116944 .unused,
116945 .unused,
116946 .unused,
116947 .unused,
116948 },
116949 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
116950 .clobbers = .{ .eflags = true },
116951 .each = .{ .once = &.{
116952 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
116953 .{ ._, .vp_, .@"test", .src0x, .lea(.tmp0x), ._, ._ },
116954 } },
116955 }, .{
116956 .required_features = .{ .sse4_1, null, null, null },
116957 .dst_constraints = .{ .bool, .any },
116958 .src_constraints = .{ .any_bool_vec, .any, .any },
116959 .patterns = &.{
116960 .{ .src = .{ .{ .reg_mask = .{ .size = .xword } }, .none, .none } },
116961 },
116962 .extra_temps = .{
116963 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
116964 .{ .type = .vector_16_u8, .kind = .{ .ptest_mask_mem = .src0 } },
116965 .unused,
116966 .unused,
116967 .unused,
116968 .unused,
116969 .unused,
116970 .unused,
116971 .unused,
116972 .unused,
116973 .unused,
116974 },
116975 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
116976 .clobbers = .{ .eflags = true },
116977 .each = .{ .once = &.{
116978 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
116979 .{ ._, .p_, .@"test", .src0x, .lea(.tmp0x), ._, ._ },
116980 } },
116981 }, .{
116982 .required_features = .{ .avx2, null, null, null },
116983 .dst_constraints = .{ .bool, .any },
116984 .src_constraints = .{ .any_bool_vec, .any, .any },
116985 .patterns = &.{
116986 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword, .is = .inverted } }, .none, .none } },
116987 },
116988 .dst_temps = .{ .{ .cc = .z }, .unused },
116989 .clobbers = .{ .eflags = true },
116990 .each = .{ .once = &.{
116991 .{ ._, .vp_, .@"test", .src0y, .src0y, ._, ._ },
116992 } },
116993 }, .{
116994 .required_features = .{ .avx, null, null, null },
116995 .dst_constraints = .{ .bool, .any },
116996 .src_constraints = .{ .any_bool_vec, .any, .any },
116997 .patterns = &.{
116998 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword, .is = .inverted } }, .none, .none } },
116999 },
117000 .dst_temps = .{ .{ .cc = .z }, .unused },
117001 .clobbers = .{ .eflags = true },
117002 .each = .{ .once = &.{
117003 .{ ._, .v_ps, .@"test", .src0y, .src0y, ._, ._ },
117004 } },
117005 }, .{
117006 .required_features = .{ .avx2, null, null, null },
117007 .dst_constraints = .{ .bool, .any },
117008 .src_constraints = .{ .any_bool_vec, .any, .any },
117009 .patterns = &.{
117010 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword } }, .none, .none } },
117011 },
117012 .extra_temps = .{
117013 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
117014 .unused,
117015 .unused,
117016 .unused,
117017 .unused,
117018 .unused,
117019 .unused,
117020 .unused,
117021 .unused,
117022 .unused,
117023 .unused,
117024 },
117025 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117026 .clobbers = .{ .eflags = true },
117027 .each = .{ .once = &.{
117028 .{ ._, .vp_b, .cmpeq, .tmp0y, .tmp0y, .tmp0y, ._ },
117029 .{ ._, .vp_, .@"test", .src0y, .tmp0y, ._, ._ },
117030 } },
117031 }, .{
117032 .required_features = .{ .avx, null, null, null },
117033 .dst_constraints = .{ .bool, .any },
117034 .src_constraints = .{ .any_bool_vec, .any, .any },
117035 .patterns = &.{
117036 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword } }, .none, .none } },
117037 },
117038 .extra_temps = .{
117039 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
117040 .unused,
117041 .unused,
117042 .unused,
117043 .unused,
117044 .unused,
117045 .unused,
117046 .unused,
117047 .unused,
117048 .unused,
117049 .unused,
117050 },
117051 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117052 .clobbers = .{ .eflags = true },
117053 .each = .{ .once = &.{
117054 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.true) },
117055 .{ ._, .v_ps, .@"test", .src0y, .tmp0y, ._, ._ },
117056 } },
117057 }, .{
117058 .required_features = .{ .avx, null, null, null },
117059 .dst_constraints = .{ .bool, .any },
117060 .src_constraints = .{ .any_bool_vec, .any, .any },
117061 .patterns = &.{
117062 .{ .src = .{ .{ .reg_mask = .{ .size = .yword } }, .none, .none } },
117063 },
117064 .extra_temps = .{
117065 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117066 .{ .type = .vector_32_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117067 .unused,
117068 .unused,
117069 .unused,
117070 .unused,
117071 .unused,
117072 .unused,
117073 .unused,
117074 .unused,
117075 .unused,
117076 },
117077 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .all = 1 } }, .unused },
117078 .clobbers = .{ .eflags = true },
117079 .each = .{ .once = &.{
117080 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117081 .{ ._, .vp_, .@"test", .src0y, .lea(.tmp0y), ._, ._ },
117082 } },
117083 }, .{
117084 .dst_constraints = .{ .bool, .any },
117085 .src_constraints = .{ .{ .exact_bool_vec = 8 }, .any, .any },
117086 .patterns = &.{
117087 .{ .src = .{ .mem, .none, .none } },
117088 .{ .src = .{ .to_gpr, .none, .none } },
117089 },
117090 .dst_temps = .{ .{ .cc = .e }, .unused },
117091 .clobbers = .{ .eflags = true },
117092 .each = .{ .once = &.{
117093 .{ ._, ._, .cmp, .src0b, .si(-1), ._, ._ },
117094 } },
117095 }, .{
117096 .dst_constraints = .{ .bool, .any },
117097 .src_constraints = .{ .{ .bool_vec = .byte }, .any, .any },
117098 .patterns = &.{
117099 .{ .src = .{ .to_mut_gpr, .none, .none } },
117100 },
117101 .dst_temps = .{ .{ .cc = .z }, .unused },
117102 .clobbers = .{ .eflags = true },
117103 .each = .{ .once = &.{
117104 .{ ._, ._, .not, .src0b, ._, ._, ._ },
117105 .{ ._, ._, .@"test", .src0b, .ua(.src0, .add_umax), ._, ._ },
117106 } },
117107 }, .{
117108 .dst_constraints = .{ .bool, .any },
117109 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
117110 .patterns = &.{
117111 .{ .src = .{ .mem, .none, .none } },
117112 .{ .src = .{ .to_gpr, .none, .none } },
117113 },
117114 .dst_temps = .{ .{ .cc = .e }, .unused },
117115 .clobbers = .{ .eflags = true },
117116 .each = .{ .once = &.{
117117 .{ ._, ._, .cmp, .src0w, .si(-1), ._, ._ },
117118 } },
117119 }, .{
117120 .dst_constraints = .{ .bool, .any },
117121 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
117122 .patterns = &.{
117123 .{ .src = .{ .to_mut_gpr, .none, .none } },
117124 },
117125 .dst_temps = .{ .{ .cc = .z }, .unused },
117126 .clobbers = .{ .eflags = true },
117127 .each = .{ .once = &.{
117128 .{ ._, ._, .not, .src0d, ._, ._, ._ },
117129 .{ ._, ._, .@"test", .src0d, .ua(.src0, .add_umax), ._, ._ },
117130 } },
117131 }, .{
117132 .dst_constraints = .{ .bool, .any },
117133 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
117134 .patterns = &.{
117135 .{ .src = .{ .mem, .none, .none } },
117136 .{ .src = .{ .to_gpr, .none, .none } },
117137 },
117138 .dst_temps = .{ .{ .cc = .e }, .unused },
117139 .clobbers = .{ .eflags = true },
117140 .each = .{ .once = &.{
117141 .{ ._, ._, .cmp, .src0d, .si(-1), ._, ._ },
117142 } },
117143 }, .{
117144 .dst_constraints = .{ .bool, .any },
117145 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
117146 .patterns = &.{
117147 .{ .src = .{ .to_mut_gpr, .none, .none } },
117148 },
117149 .dst_temps = .{ .{ .cc = .z }, .unused },
117150 .clobbers = .{ .eflags = true },
117151 .each = .{ .once = &.{
117152 .{ ._, ._, .not, .src0d, ._, ._, ._ },
117153 .{ ._, ._, .@"test", .src0d, .ua(.src0, .add_umax), ._, ._ },
117154 } },
117155 }, .{
117156 .required_features = .{ .@"64bit", null, null, null },
117157 .dst_constraints = .{ .bool, .any },
117158 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
117159 .patterns = &.{
117160 .{ .src = .{ .mem, .none, .none } },
117161 .{ .src = .{ .to_gpr, .none, .none } },
117162 },
117163 .dst_temps = .{ .{ .cc = .e }, .unused },
117164 .clobbers = .{ .eflags = true },
117165 .each = .{ .once = &.{
117166 .{ ._, ._, .cmp, .src0q, .si(-1), ._, ._ },
117167 } },
117168 }, .{
117169 .required_features = .{ .@"64bit", null, null, null },
117170 .dst_constraints = .{ .bool, .any },
117171 .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any },
117172 .patterns = &.{
117173 .{ .src = .{ .to_mut_gpr, .none, .none } },
117174 },
117175 .extra_temps = .{
117176 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117177 .unused,
117178 .unused,
117179 .unused,
117180 .unused,
117181 .unused,
117182 .unused,
117183 .unused,
117184 .unused,
117185 .unused,
117186 .unused,
117187 },
117188 .dst_temps = .{ .{ .cc = .z }, .unused },
117189 .clobbers = .{ .eflags = true },
117190 .each = .{ .once = &.{
117191 .{ ._, ._, .not, .src0q, ._, ._, ._ },
117192 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
117193 .{ ._, ._, .@"test", .src0q, .tmp0q, ._, ._ },
117194 } },
117195 }, .{
117196 .required_features = .{ .@"64bit", null, null, null },
117197 .dst_constraints = .{ .bool, .any },
117198 .src_constraints = .{ .{ .exact_remainder_bool_vec = .{ .of = .qword, .is = 64 } }, .any, .any },
117199 .patterns = &.{
117200 .{ .src = .{ .to_mem, .none, .none } },
117201 },
117202 .extra_temps = .{
117203 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117204 .unused,
117205 .unused,
117206 .unused,
117207 .unused,
117208 .unused,
117209 .unused,
117210 .unused,
117211 .unused,
117212 .unused,
117213 .unused,
117214 },
117215 .dst_temps = .{ .{ .cc = .nc }, .unused },
117216 .clobbers = .{ .eflags = true },
117217 .each = .{ .once = &.{
117218 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8), ._, ._ },
117219 .{ .@"1:", ._, .cmp, .memi(.src0q, .tmp0), .si(-1), ._, ._ },
117220 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
117221 .{ ._, ._, .add, .tmp0d, .si(-8), ._, ._ },
117222 .{ ._, ._b, .j, .@"1b", ._, ._, ._ },
117223 } },
117224 }, .{
117225 .required_features = .{ .@"64bit", null, null, null },
117226 .dst_constraints = .{ .bool, .any },
117227 .src_constraints = .{ .{ .remainder_bool_vec = .{ .of = .qword, .is = .qword } }, .any, .any },
117228 .patterns = &.{
117229 .{ .src = .{ .to_mem, .none, .none } },
117230 },
117231 .extra_temps = .{
117232 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117233 .unused,
117234 .unused,
117235 .unused,
117236 .unused,
117237 .unused,
117238 .unused,
117239 .unused,
117240 .unused,
117241 .unused,
117242 .unused,
117243 },
117244 .dst_temps = .{ .{ .cc = .nc }, .unused },
117245 .clobbers = .{ .eflags = true },
117246 .each = .{ .once = &.{
117247 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_2_smin), ._, ._ },
117248 .{ ._, ._, .@"or", .tmp0q, .mema(.src0q, .add_bit_size_div_8_down_8), ._, ._ },
117249 .{ ._, ._, .cmp, .tmp0q, .si(-1), ._, ._ },
117250 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
117251 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8_down_8), ._, ._ },
117252 .{ .@"1:", ._, .cmp, .memi(.src0q, .tmp0), .si(-1), ._, ._ },
117253 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
117254 .{ ._, ._, .add, .tmp0d, .si(-8), ._, ._ },
117255 .{ ._, ._b, .j, .@"1b", ._, ._, ._ },
117256 } },
117257 } },
117258 .@"or" => [_]Select.Case{ .{
117259 .required_features = .{ .avx, null, null, null },
117260 .dst_constraints = .{ .bool, .any },
117261 .src_constraints = .{ .any_bool_vec, .any, .any },
117262 .patterns = &.{
117263 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword, .is = .uninverted } }, .none, .none } },
117264 },
117265 .dst_temps = .{ .{ .cc = .nz }, .unused },
117266 .clobbers = .{ .eflags = true },
117267 .each = .{ .once = &.{
117268 .{ ._, .vp_, .@"test", .src0x, .src0x, ._, ._ },
117269 } },
117270 }, .{
117271 .required_features = .{ .sse4_1, null, null, null },
117272 .dst_constraints = .{ .bool, .any },
117273 .src_constraints = .{ .any_bool_vec, .any, .any },
117274 .patterns = &.{
117275 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword, .is = .uninverted } }, .none, .none } },
117276 },
117277 .dst_temps = .{ .{ .cc = .nz }, .unused },
117278 .clobbers = .{ .eflags = true },
117279 .each = .{ .once = &.{
117280 .{ ._, .p_, .@"test", .src0x, .src0x, ._, ._ },
117281 } },
117282 }, .{
117283 .required_features = .{ .avx, null, null, null },
117284 .dst_constraints = .{ .bool, .any },
117285 .src_constraints = .{ .any_bool_vec, .any, .any },
117286 .patterns = &.{
117287 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword } }, .none, .none } },
117288 },
117289 .extra_temps = .{
117290 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
117291 .unused,
117292 .unused,
117293 .unused,
117294 .unused,
117295 .unused,
117296 .unused,
117297 .unused,
117298 .unused,
117299 .unused,
117300 .unused,
117301 },
117302 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117303 .clobbers = .{ .eflags = true },
117304 .each = .{ .once = &.{
117305 .{ ._, .vp_b, .cmpeq, .tmp0x, .tmp0x, .tmp0x, ._ },
117306 .{ ._, .vp_, .@"test", .src0x, .tmp0x, ._, ._ },
117307 } },
117308 }, .{
117309 .required_features = .{ .sse4_1, null, null, null },
117310 .dst_constraints = .{ .bool, .any },
117311 .src_constraints = .{ .any_bool_vec, .any, .any },
117312 .patterns = &.{
117313 .{ .src = .{ .{ .all_reg_mask = .{ .size = .xword } }, .none, .none } },
117314 },
117315 .extra_temps = .{
117316 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
117317 .unused,
117318 .unused,
117319 .unused,
117320 .unused,
117321 .unused,
117322 .unused,
117323 .unused,
117324 .unused,
117325 .unused,
117326 .unused,
117327 },
117328 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117329 .clobbers = .{ .eflags = true },
117330 .each = .{ .once = &.{
117331 .{ ._, .p_b, .cmpeq, .tmp0x, .tmp0x, ._, ._ },
117332 .{ ._, .p_, .@"test", .src0x, .tmp0x, ._, ._ },
117333 } },
117334 }, .{
117335 .required_features = .{ .avx, null, null, null },
117336 .dst_constraints = .{ .bool, .any },
117337 .src_constraints = .{ .any_bool_vec, .any, .any },
117338 .patterns = &.{
117339 .{ .src = .{ .{ .reg_mask = .{ .size = .xword } }, .none, .none } },
117340 },
117341 .extra_temps = .{
117342 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117343 .{ .type = .vector_16_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117344 .unused,
117345 .unused,
117346 .unused,
117347 .unused,
117348 .unused,
117349 .unused,
117350 .unused,
117351 .unused,
117352 .unused,
117353 },
117354 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117355 .clobbers = .{ .eflags = true },
117356 .each = .{ .once = &.{
117357 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117358 .{ ._, .vp_, .@"test", .src0x, .lea(.tmp0x), ._, ._ },
117359 } },
117360 }, .{
117361 .required_features = .{ .sse4_1, null, null, null },
117362 .dst_constraints = .{ .bool, .any },
117363 .src_constraints = .{ .any_bool_vec, .any, .any },
117364 .patterns = &.{
117365 .{ .src = .{ .{ .reg_mask = .{ .size = .xword } }, .none, .none } },
117366 },
117367 .extra_temps = .{
117368 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117369 .{ .type = .vector_16_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117370 .unused,
117371 .unused,
117372 .unused,
117373 .unused,
117374 .unused,
117375 .unused,
117376 .unused,
117377 .unused,
117378 .unused,
117379 },
117380 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117381 .clobbers = .{ .eflags = true },
117382 .each = .{ .once = &.{
117383 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117384 .{ ._, .p_, .@"test", .src0x, .lea(.tmp0x), ._, ._ },
117385 } },
117386 }, .{
117387 .required_features = .{ .avx2, null, null, null },
117388 .dst_constraints = .{ .bool, .any },
117389 .src_constraints = .{ .any_bool_vec, .any, .any },
117390 .patterns = &.{
117391 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword, .is = .uninverted } }, .none, .none } },
117392 },
117393 .dst_temps = .{ .{ .cc = .nz }, .unused },
117394 .clobbers = .{ .eflags = true },
117395 .each = .{ .once = &.{
117396 .{ ._, .vp_, .@"test", .src0y, .src0y, ._, ._ },
117397 } },
117398 }, .{
117399 .required_features = .{ .avx, null, null, null },
117400 .dst_constraints = .{ .bool, .any },
117401 .src_constraints = .{ .any_bool_vec, .any, .any },
117402 .patterns = &.{
117403 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword, .is = .uninverted } }, .none, .none } },
117404 },
117405 .dst_temps = .{ .{ .cc = .nz }, .unused },
117406 .clobbers = .{ .eflags = true },
117407 .each = .{ .once = &.{
117408 .{ ._, .v_ps, .@"test", .src0y, .src0y, ._, ._ },
117409 } },
117410 }, .{
117411 .required_features = .{ .avx2, null, null, null },
117412 .dst_constraints = .{ .bool, .any },
117413 .src_constraints = .{ .any_bool_vec, .any, .any },
117414 .patterns = &.{
117415 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword } }, .none, .none } },
117416 },
117417 .extra_temps = .{
117418 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
117419 .unused,
117420 .unused,
117421 .unused,
117422 .unused,
117423 .unused,
117424 .unused,
117425 .unused,
117426 .unused,
117427 .unused,
117428 .unused,
117429 },
117430 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117431 .clobbers = .{ .eflags = true },
117432 .each = .{ .once = &.{
117433 .{ ._, .vp_b, .cmpeq, .tmp0y, .tmp0y, .tmp0y, ._ },
117434 .{ ._, .vp_, .@"test", .src0y, .tmp0y, ._, ._ },
117435 } },
117436 }, .{
117437 .required_features = .{ .avx, null, null, null },
117438 .dst_constraints = .{ .bool, .any },
117439 .src_constraints = .{ .any_bool_vec, .any, .any },
117440 .patterns = &.{
117441 .{ .src = .{ .{ .all_reg_mask = .{ .size = .yword } }, .none, .none } },
117442 },
117443 .extra_temps = .{
117444 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
117445 .unused,
117446 .unused,
117447 .unused,
117448 .unused,
117449 .unused,
117450 .unused,
117451 .unused,
117452 .unused,
117453 .unused,
117454 .unused,
117455 },
117456 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117457 .clobbers = .{ .eflags = true },
117458 .each = .{ .once = &.{
117459 .{ ._, .v_ps, .cmp, .tmp0y, .tmp0y, .tmp0y, .vp(.true) },
117460 .{ ._, .v_ps, .@"test", .src0y, .tmp0y, ._, ._ },
117461 } },
117462 }, .{
117463 .required_features = .{ .avx, null, null, null },
117464 .dst_constraints = .{ .bool, .any },
117465 .src_constraints = .{ .any_bool_vec, .any, .any },
117466 .patterns = &.{
117467 .{ .src = .{ .{ .reg_mask = .{ .size = .yword } }, .none, .none } },
117468 },
117469 .extra_temps = .{
117470 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
117471 .{ .type = .vector_32_u8, .kind = .{ .ptest_mask_mem = .src0 } },
117472 .unused,
117473 .unused,
117474 .unused,
117475 .unused,
117476 .unused,
117477 .unused,
117478 .unused,
117479 .unused,
117480 .unused,
117481 },
117482 .dst_temps = .{ .{ .ptest_cc = .{ .ref = .src0, .not = true, .all = 0 } }, .unused },
117483 .clobbers = .{ .eflags = true },
117484 .each = .{ .once = &.{
117485 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
117486 .{ ._, .vp_, .@"test", .src0y, .lea(.tmp0y), ._, ._ },
117487 } },
117488 }, .{
117489 .dst_constraints = .{ .bool, .any },
117490 .src_constraints = .{ .{ .exact_bool_vec = 8 }, .any, .any },
117491 .patterns = &.{
117492 .{ .src = .{ .mem, .none, .none } },
117493 },
117494 .dst_temps = .{ .{ .cc = .ne }, .unused },
117495 .clobbers = .{ .eflags = true },
117496 .each = .{ .once = &.{
117497 .{ ._, ._, .cmp, .src0b, .si(0), ._, ._ },
117498 } },
117499 }, .{
117500 .dst_constraints = .{ .bool, .any },
117501 .src_constraints = .{ .{ .exact_bool_vec = 8 }, .any, .any },
117502 .patterns = &.{
117503 .{ .src = .{ .to_gpr, .none, .none } },
117504 },
117505 .dst_temps = .{ .{ .cc = .nz }, .unused },
117506 .clobbers = .{ .eflags = true },
117507 .each = .{ .once = &.{
117508 .{ ._, ._, .@"test", .src0b, .src0b, ._, ._ },
117509 } },
117510 }, .{
117511 .dst_constraints = .{ .bool, .any },
117512 .src_constraints = .{ .{ .bool_vec = .byte }, .any, .any },
117513 .patterns = &.{
117514 .{ .src = .{ .mem, .none, .none } },
117515 .{ .src = .{ .to_gpr, .none, .none } },
117516 },
117517 .dst_temps = .{ .{ .cc = .nz }, .unused },
117518 .clobbers = .{ .eflags = true },
117519 .each = .{ .once = &.{
117520 .{ ._, ._, .@"test", .src0b, .ua(.src0, .add_umax), ._, ._ },
117521 } },
117522 }, .{
117523 .dst_constraints = .{ .bool, .any },
117524 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
117525 .patterns = &.{
117526 .{ .src = .{ .mem, .none, .none } },
117527 },
117528 .dst_temps = .{ .{ .cc = .ne }, .unused },
117529 .clobbers = .{ .eflags = true },
117530 .each = .{ .once = &.{
117531 .{ ._, ._, .cmp, .src0w, .si(0), ._, ._ },
117532 } },
117533 }, .{
117534 .dst_constraints = .{ .bool, .any },
117535 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
117536 .patterns = &.{
117537 .{ .src = .{ .to_gpr, .none, .none } },
117538 },
117539 .dst_temps = .{ .{ .cc = .nz }, .unused },
117540 .clobbers = .{ .eflags = true },
117541 .each = .{ .once = &.{
117542 .{ ._, ._, .@"test", .src0w, .src0w, ._, ._ },
117543 } },
117544 }, .{
117545 .dst_constraints = .{ .bool, .any },
117546 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
117547 .patterns = &.{
117548 .{ .src = .{ .mem, .none, .none } },
117549 .{ .src = .{ .to_gpr, .none, .none } },
117550 },
117551 .dst_temps = .{ .{ .cc = .nz }, .unused },
117552 .clobbers = .{ .eflags = true },
117553 .each = .{ .once = &.{
117554 .{ ._, ._, .@"test", .src0w, .ua(.src0, .add_umax), ._, ._ },
117555 } },
117556 }, .{
117557 .dst_constraints = .{ .bool, .any },
117558 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
117559 .patterns = &.{
117560 .{ .src = .{ .mem, .none, .none } },
117561 },
117562 .dst_temps = .{ .{ .cc = .ne }, .unused },
117563 .clobbers = .{ .eflags = true },
117564 .each = .{ .once = &.{
117565 .{ ._, ._, .cmp, .src0d, .si(0), ._, ._ },
117566 } },
117567 }, .{
117568 .dst_constraints = .{ .bool, .any },
117569 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
117570 .patterns = &.{
117571 .{ .src = .{ .to_gpr, .none, .none } },
117572 },
117573 .dst_temps = .{ .{ .cc = .nz }, .unused },
117574 .clobbers = .{ .eflags = true },
117575 .each = .{ .once = &.{
117576 .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ },
117577 } },
117578 }, .{
117579 .dst_constraints = .{ .bool, .any },
117580 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
117581 .patterns = &.{
117582 .{ .src = .{ .mem, .none, .none } },
117583 .{ .src = .{ .to_gpr, .none, .none } },
117584 },
117585 .dst_temps = .{ .{ .cc = .nz }, .unused },
117586 .clobbers = .{ .eflags = true },
117587 .each = .{ .once = &.{
117588 .{ ._, ._, .@"test", .src0d, .ua(.src0, .add_umax), ._, ._ },
117589 } },
117590 }, .{
117591 .required_features = .{ .@"64bit", null, null, null },
117592 .dst_constraints = .{ .bool, .any },
117593 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
117594 .patterns = &.{
117595 .{ .src = .{ .mem, .none, .none } },
117596 },
117597 .dst_temps = .{ .{ .cc = .ne }, .unused },
117598 .clobbers = .{ .eflags = true },
117599 .each = .{ .once = &.{
117600 .{ ._, ._, .cmp, .src0q, .si(0), ._, ._ },
117601 } },
117602 }, .{
117603 .required_features = .{ .@"64bit", null, null, null },
117604 .dst_constraints = .{ .bool, .any },
117605 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
117606 .patterns = &.{
117607 .{ .src = .{ .to_gpr, .none, .none } },
117608 },
117609 .dst_temps = .{ .{ .cc = .nz }, .unused },
117610 .clobbers = .{ .eflags = true },
117611 .each = .{ .once = &.{
117612 .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ },
117613 } },
117614 }, .{
117615 .required_features = .{ .@"64bit", null, null, null },
117616 .dst_constraints = .{ .bool, .any },
117617 .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any },
117618 .patterns = &.{
117619 .{ .src = .{ .mem, .none, .none } },
117620 .{ .src = .{ .to_gpr, .none, .none } },
117621 },
117622 .extra_temps = .{
117623 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117624 .unused,
117625 .unused,
117626 .unused,
117627 .unused,
117628 .unused,
117629 .unused,
117630 .unused,
117631 .unused,
117632 .unused,
117633 .unused,
117634 },
117635 .dst_temps = .{ .{ .cc = .nz }, .unused },
117636 .clobbers = .{ .eflags = true },
117637 .each = .{ .once = &.{
117638 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
117639 .{ ._, ._, .@"test", .src0q, .tmp0q, ._, ._ },
117640 } },
117641 }, .{
117642 .required_features = .{ .@"64bit", null, null, null },
117643 .dst_constraints = .{ .bool, .any },
117644 .src_constraints = .{ .{ .exact_remainder_bool_vec = .{ .of = .qword, .is = 64 } }, .any, .any },
117645 .patterns = &.{
117646 .{ .src = .{ .to_mem, .none, .none } },
117647 },
117648 .extra_temps = .{
117649 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117650 .unused,
117651 .unused,
117652 .unused,
117653 .unused,
117654 .unused,
117655 .unused,
117656 .unused,
117657 .unused,
117658 .unused,
117659 .unused,
117660 },
117661 .dst_temps = .{ .{ .cc = .nc }, .unused },
117662 .clobbers = .{ .eflags = true },
117663 .each = .{ .once = &.{
117664 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8), ._, ._ },
117665 .{ .@"1:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ },
117666 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
117667 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
117668 .{ ._, ._nb, .j, .@"1b", ._, ._, ._ },
117669 } },
117670 }, .{
117671 .required_features = .{ .@"64bit", null, null, null },
117672 .dst_constraints = .{ .bool, .any },
117673 .src_constraints = .{ .{ .remainder_bool_vec = .{ .of = .qword, .is = .qword } }, .any, .any },
117674 .patterns = &.{
117675 .{ .src = .{ .to_mem, .none, .none } },
117676 },
117677 .extra_temps = .{
117678 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
117679 .unused,
117680 .unused,
117681 .unused,
117682 .unused,
117683 .unused,
117684 .unused,
117685 .unused,
117686 .unused,
117687 .unused,
117688 .unused,
117689 },
117690 .dst_temps = .{ .{ .cc = .nc }, .unused },
117691 .clobbers = .{ .eflags = true },
117692 .each = .{ .once = &.{
117693 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
117694 .{ ._, ._, .@"test", .mema(.src0q, .add_bit_size_div_8_down_8), .tmp0q, ._, ._ },
117695 .{ ._, ._nz, .j, .@"0f", ._, ._, ._ },
117696 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8_down_8), ._, ._ },
117697 .{ .@"1:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ },
117698 .{ ._, ._ne, .j, .@"0f", ._, ._, ._ },
117699 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
117700 .{ ._, ._nb, .j, .@"1b", ._, ._, ._ },
117701 } },
117702 } },
117703 .xor => [_]Select.Case{ .{
117704 .dst_constraints = .{ .bool, .any },
117705 .src_constraints = .{ .{ .bool_vec = .byte }, .any, .any },
117706 .patterns = &.{
117707 .{ .src = .{ .mem, .none, .none } },
117708 },
117709 .dst_temps = .{ .{ .cc = .po }, .unused },
117710 .clobbers = .{ .eflags = true },
117711 .each = .{ .once = &.{
117712 .{ ._, ._, .@"test", .src0b, .ua(.src0, .add_umax), ._, ._ },
117713 } },
117714 }, .{
117715 .dst_constraints = .{ .bool, .any },
117716 .src_constraints = .{ .{ .exact_bool_vec = 8 }, .any, .any },
117717 .patterns = &.{
117718 .{ .src = .{ .to_gpr, .none, .none } },
117719 },
117720 .dst_temps = .{ .{ .cc = .po }, .unused },
117721 .clobbers = .{ .eflags = true },
117722 .each = .{ .once = &.{
117723 .{ ._, ._, .@"test", .src0b, .src0b, ._, ._ },
117724 } },
117725 }, .{
117726 .dst_constraints = .{ .bool, .any },
117727 .src_constraints = .{ .{ .bool_vec = .byte }, .any, .any },
117728 .patterns = &.{
117729 .{ .src = .{ .to_gpr, .none, .none } },
117730 },
117731 .dst_temps = .{ .{ .cc = .po }, .unused },
117732 .clobbers = .{ .eflags = true },
117733 .each = .{ .once = &.{
117734 .{ ._, ._, .@"test", .src0b, .ua(.src0, .add_umax), ._, ._ },
117735 } },
117736 }, .{
117737 .required_features = .{ .popcnt, null, null, null },
117738 .dst_constraints = .{ .bool, .any },
117739 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
117740 .patterns = &.{
117741 .{ .src = .{ .mem, .none, .none } },
117742 },
117743 .extra_temps = .{
117744 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
117745 .unused,
117746 .unused,
117747 .unused,
117748 .unused,
117749 .unused,
117750 .unused,
117751 .unused,
117752 .unused,
117753 .unused,
117754 .unused,
117755 },
117756 .dst_temps = .{ .{ .cc = .nz }, .unused },
117757 .clobbers = .{ .eflags = true },
117758 .each = .{ .once = &.{
117759 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
117760 .{ ._, ._, .popcnt, .tmp0w, .src0w, ._, ._ },
117761 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
117762 } },
117763 }, .{
117764 .required_features = .{ .popcnt, null, null, null },
117765 .dst_constraints = .{ .bool, .any },
117766 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
117767 .patterns = &.{
117768 .{ .src = .{ .to_mut_gpr, .none, .none } },
117769 },
117770 .dst_temps = .{ .{ .cc = .nz }, .unused },
117771 .clobbers = .{ .eflags = true },
117772 .each = .{ .once = &.{
117773 .{ ._, ._, .popcnt, .src0w, .src0w, ._, ._ },
117774 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
117775 } },
117776 }, .{
117777 .dst_constraints = .{ .bool, .any },
117778 .src_constraints = .{ .{ .exact_bool_vec = 16 }, .any, .any },
117779 .patterns = &.{
117780 .{ .src = .{ .to_gpr, .none, .none } },
117781 },
117782 .extra_temps = .{
117783 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
117784 .unused,
117785 .unused,
117786 .unused,
117787 .unused,
117788 .unused,
117789 .unused,
117790 .unused,
117791 .unused,
117792 .unused,
117793 .unused,
117794 },
117795 .dst_temps = .{ .{ .cc = .po }, .unused },
117796 .clobbers = .{ .eflags = true },
117797 .each = .{ .once = &.{
117798 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
117799 .{ ._, ._r, .sh, .tmp0d, .ui(8), ._, ._ },
117800 .{ ._, ._, .xor, .tmp0b, .src0b, ._, ._ },
117801 } },
117802 }, .{
117803 .required_features = .{ .popcnt, .fast_imm16, null, null },
117804 .dst_constraints = .{ .bool, .any },
117805 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
117806 .patterns = &.{
117807 .{ .src = .{ .to_mut_gpr, .none, .none } },
117808 },
117809 .dst_temps = .{ .{ .cc = .nz }, .unused },
117810 .clobbers = .{ .eflags = true },
117811 .each = .{ .once = &.{
117812 .{ ._, ._, .@"and", .src0w, .ua(.src0, .add_umax), ._, ._ },
117813 .{ ._, ._, .popcnt, .src0w, .src0w, ._, ._ },
117814 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
117815 } },
117816 }, .{
117817 .required_features = .{ .popcnt, null, null, null },
117818 .dst_constraints = .{ .bool, .any },
117819 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
117820 .patterns = &.{
117821 .{ .src = .{ .to_mut_gpr, .none, .none } },
117822 },
117823 .dst_temps = .{ .{ .cc = .nz }, .unused },
117824 .clobbers = .{ .eflags = true },
117825 .each = .{ .once = &.{
117826 .{ ._, ._, .@"and", .src0d, .ua(.src0, .add_umax), ._, ._ },
117827 .{ ._, ._, .popcnt, .src0d, .src0d, ._, ._ },
117828 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
117829 } },
117830 }, .{
117831 .dst_constraints = .{ .bool, .any },
117832 .src_constraints = .{ .{ .bool_vec = .word }, .any, .any },
117833 .patterns = &.{
117834 .{ .src = .{ .to_gpr, .none, .none } },
117835 },
117836 .extra_temps = .{
117837 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
117838 .unused,
117839 .unused,
117840 .unused,
117841 .unused,
117842 .unused,
117843 .unused,
117844 .unused,
117845 .unused,
117846 .unused,
117847 .unused,
117848 },
117849 .dst_temps = .{ .{ .cc = .po }, .unused },
117850 .clobbers = .{ .eflags = true },
117851 .each = .{ .once = &.{
117852 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
117853 .{ ._, ._r, .sh, .tmp0d, .ui(8), ._, ._ },
117854 .{ ._, ._, .@"and", .tmp0b, .ua(.src0b, .add_umax), ._, ._ },
117855 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
117856 } },
117857 }, .{
117858 .required_features = .{ .popcnt, .false_deps_popcnt, null, null },
117859 .dst_constraints = .{ .bool, .any },
117860 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
117861 .patterns = &.{
117862 .{ .src = .{ .mem, .none, .none } },
117863 },
117864 .extra_temps = .{
117865 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
117866 .unused,
117867 .unused,
117868 .unused,
117869 .unused,
117870 .unused,
117871 .unused,
117872 .unused,
117873 .unused,
117874 .unused,
117875 .unused,
117876 },
117877 .dst_temps = .{ .{ .cc = .nz }, .unused },
117878 .clobbers = .{ .eflags = true },
117879 .each = .{ .once = &.{
117880 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
117881 .{ ._, ._, .popcnt, .tmp0d, .src0d, ._, ._ },
117882 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
117883 } },
117884 }, .{
117885 .required_features = .{ .popcnt, .false_deps_popcnt, null, null },
117886 .dst_constraints = .{ .bool, .any },
117887 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
117888 .patterns = &.{
117889 .{ .src = .{ .to_mut_gpr, .none, .none } },
117890 },
117891 .dst_temps = .{ .{ .cc = .nz }, .unused },
117892 .clobbers = .{ .eflags = true },
117893 .each = .{ .once = &.{
117894 .{ ._, ._, .popcnt, .src0d, .src0d, ._, ._ },
117895 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
117896 } },
117897 }, .{
117898 .required_features = .{ .popcnt, null, null, null },
117899 .dst_constraints = .{ .bool, .any },
117900 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
117901 .patterns = &.{
117902 .{ .src = .{ .mem, .none, .none } },
117903 .{ .src = .{ .to_gpr, .none, .none } },
117904 },
117905 .extra_temps = .{
117906 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
117907 .unused,
117908 .unused,
117909 .unused,
117910 .unused,
117911 .unused,
117912 .unused,
117913 .unused,
117914 .unused,
117915 .unused,
117916 .unused,
117917 },
117918 .dst_temps = .{ .{ .cc = .nz }, .unused },
117919 .clobbers = .{ .eflags = true },
117920 .each = .{ .once = &.{
117921 .{ ._, ._, .popcnt, .tmp0d, .src0d, ._, ._ },
117922 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
117923 } },
117924 }, .{
117925 .dst_constraints = .{ .bool, .any },
117926 .src_constraints = .{ .{ .exact_bool_vec = 32 }, .any, .any },
117927 .patterns = &.{
117928 .{ .src = .{ .to_gpr, .none, .none } },
117929 },
117930 .extra_temps = .{
117931 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117932 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
117933 .unused,
117934 .unused,
117935 .unused,
117936 .unused,
117937 .unused,
117938 .unused,
117939 .unused,
117940 .unused,
117941 .unused,
117942 },
117943 .dst_temps = .{ .{ .cc = .po }, .unused },
117944 .clobbers = .{ .eflags = true },
117945 .each = .{ .once = &.{
117946 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
117947 .{ ._, ._r, .sh, .tmp0d, .ui(16), ._, ._ },
117948 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
117949 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
117950 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
117951 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
117952 } },
117953 }, .{
117954 .required_features = .{ .popcnt, null, null, null },
117955 .dst_constraints = .{ .bool, .any },
117956 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
117957 .patterns = &.{
117958 .{ .src = .{ .to_mut_gpr, .none, .none } },
117959 },
117960 .dst_temps = .{ .{ .cc = .nz }, .unused },
117961 .clobbers = .{ .eflags = true },
117962 .each = .{ .once = &.{
117963 .{ ._, ._, .@"and", .src0d, .ua(.src0, .add_umax), ._, ._ },
117964 .{ ._, ._, .popcnt, .src0d, .src0d, ._, ._ },
117965 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
117966 } },
117967 }, .{
117968 .required_features = .{ .fast_imm16, null, null, null },
117969 .dst_constraints = .{ .bool, .any },
117970 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
117971 .patterns = &.{
117972 .{ .src = .{ .to_gpr, .none, .none } },
117973 },
117974 .extra_temps = .{
117975 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
117976 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
117977 .unused,
117978 .unused,
117979 .unused,
117980 .unused,
117981 .unused,
117982 .unused,
117983 .unused,
117984 .unused,
117985 .unused,
117986 },
117987 .dst_temps = .{ .{ .cc = .po }, .unused },
117988 .clobbers = .{ .eflags = true },
117989 .each = .{ .once = &.{
117990 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
117991 .{ ._, ._r, .sh, .tmp0d, .ui(16), ._, ._ },
117992 .{ ._, ._, .@"and", .tmp0d, .ua(.src0w, .add_umax), ._, ._ },
117993 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
117994 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
117995 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
117996 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
117997 } },
117998 }, .{
117999 .dst_constraints = .{ .bool, .any },
118000 .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any },
118001 .patterns = &.{
118002 .{ .src = .{ .to_gpr, .none, .none } },
118003 },
118004 .extra_temps = .{
118005 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118006 .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118007 .unused,
118008 .unused,
118009 .unused,
118010 .unused,
118011 .unused,
118012 .unused,
118013 .unused,
118014 .unused,
118015 .unused,
118016 },
118017 .dst_temps = .{ .{ .cc = .po }, .unused },
118018 .clobbers = .{ .eflags = true },
118019 .each = .{ .once = &.{
118020 .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ },
118021 .{ ._, ._r, .sh, .tmp0d, .ui(16), ._, ._ },
118022 .{ ._, ._, .@"and", .tmp0d, .ua(.src0w, .add_umax), ._, ._ },
118023 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118024 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118025 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118026 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118027 } },
118028 }, .{
118029 .required_features = .{ .@"64bit", .popcnt, .false_deps_popcnt, null },
118030 .dst_constraints = .{ .bool, .any },
118031 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118032 .patterns = &.{
118033 .{ .src = .{ .mem, .none, .none } },
118034 },
118035 .extra_temps = .{
118036 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118037 .unused,
118038 .unused,
118039 .unused,
118040 .unused,
118041 .unused,
118042 .unused,
118043 .unused,
118044 .unused,
118045 .unused,
118046 .unused,
118047 },
118048 .dst_temps = .{ .{ .cc = .nz }, .unused },
118049 .clobbers = .{ .eflags = true },
118050 .each = .{ .once = &.{
118051 .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ },
118052 .{ ._, ._, .popcnt, .tmp0q, .src0q, ._, ._ },
118053 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118054 } },
118055 }, .{
118056 .required_features = .{ .@"64bit", .popcnt, .false_deps_popcnt, null },
118057 .dst_constraints = .{ .bool, .any },
118058 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118059 .patterns = &.{
118060 .{ .src = .{ .to_mut_gpr, .none, .none } },
118061 },
118062 .dst_temps = .{ .{ .cc = .nz }, .unused },
118063 .clobbers = .{ .eflags = true },
118064 .each = .{ .once = &.{
118065 .{ ._, ._, .popcnt, .src0q, .src0q, ._, ._ },
118066 .{ ._, ._, .@"and", .src0b, .ui(1), ._, ._ },
118067 } },
118068 }, .{
118069 .required_features = .{ .@"64bit", .popcnt, null, null },
118070 .dst_constraints = .{ .bool, .any },
118071 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118072 .patterns = &.{
118073 .{ .src = .{ .mem, .none, .none } },
118074 .{ .src = .{ .to_gpr, .none, .none } },
118075 },
118076 .extra_temps = .{
118077 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118078 .unused,
118079 .unused,
118080 .unused,
118081 .unused,
118082 .unused,
118083 .unused,
118084 .unused,
118085 .unused,
118086 .unused,
118087 .unused,
118088 },
118089 .dst_temps = .{ .{ .cc = .nz }, .unused },
118090 .clobbers = .{ .eflags = true },
118091 .each = .{ .once = &.{
118092 .{ ._, ._, .popcnt, .tmp0q, .src0q, ._, ._ },
118093 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118094 } },
118095 }, .{
118096 .dst_constraints = .{ .bool, .any },
118097 .src_constraints = .{ .{ .exact_bool_vec = 64 }, .any, .any },
118098 .patterns = &.{
118099 .{ .src = .{ .to_gpr, .none, .none } },
118100 },
118101 .extra_temps = .{
118102 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118103 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118104 .unused,
118105 .unused,
118106 .unused,
118107 .unused,
118108 .unused,
118109 .unused,
118110 .unused,
118111 .unused,
118112 .unused,
118113 },
118114 .dst_temps = .{ .{ .cc = .po }, .unused },
118115 .clobbers = .{ .eflags = true },
118116 .each = .{ .once = &.{
118117 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
118118 .{ ._, ._r, .sh, .tmp0q, .ui(32), ._, ._ },
118119 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118120 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118121 .{ ._, ._r, .sh, .tmp1d, .ui(16), ._, ._ },
118122 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118123 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118124 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118125 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118126 } },
118127 }, .{
118128 .required_features = .{ .@"64bit", .popcnt, null, null },
118129 .dst_constraints = .{ .bool, .any },
118130 .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any },
118131 .patterns = &.{
118132 .{ .src = .{ .mem, .none, .none } },
118133 .{ .src = .{ .to_gpr, .none, .none } },
118134 },
118135 .extra_temps = .{
118136 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118137 .unused,
118138 .unused,
118139 .unused,
118140 .unused,
118141 .unused,
118142 .unused,
118143 .unused,
118144 .unused,
118145 .unused,
118146 .unused,
118147 },
118148 .dst_temps = .{ .{ .cc = .nz }, .unused },
118149 .clobbers = .{ .eflags = true },
118150 .each = .{ .once = &.{
118151 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
118152 .{ ._, ._, .@"and", .tmp0q, .src0q, ._, ._ },
118153 .{ ._, ._, .popcnt, .tmp0q, .tmp0q, ._, ._ },
118154 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118155 } },
118156 }, .{
118157 .dst_constraints = .{ .bool, .any },
118158 .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any },
118159 .patterns = &.{
118160 .{ .src = .{ .to_gpr, .none, .none } },
118161 },
118162 .extra_temps = .{
118163 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118164 .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } },
118165 .unused,
118166 .unused,
118167 .unused,
118168 .unused,
118169 .unused,
118170 .unused,
118171 .unused,
118172 .unused,
118173 .unused,
118174 },
118175 .dst_temps = .{ .{ .cc = .po }, .unused },
118176 .clobbers = .{ .eflags = true },
118177 .each = .{ .once = &.{
118178 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
118179 .{ ._, ._r, .sh, .tmp0q, .ui(32), ._, ._ },
118180 .{ ._, ._, .@"and", .tmp0d, .ua(.src0d, .add_umax), ._, ._ },
118181 .{ ._, ._, .xor, .tmp0d, .src0d, ._, ._ },
118182 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118183 .{ ._, ._r, .sh, .tmp1d, .ui(16), ._, ._ },
118184 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118185 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118186 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118187 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118188 } },
118189 }, .{
118190 .required_features = .{ .@"64bit", .popcnt, null, null },
118191 .dst_constraints = .{ .bool, .any },
118192 .src_constraints = .{ .{ .exact_remainder_bool_vec = .{ .of = .qword, .is = 64 } }, .any, .any },
118193 .patterns = &.{
118194 .{ .src = .{ .to_mem, .none, .none } },
118195 },
118196 .extra_temps = .{
118197 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118198 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118199 .unused,
118200 .unused,
118201 .unused,
118202 .unused,
118203 .unused,
118204 .unused,
118205 .unused,
118206 .unused,
118207 .unused,
118208 },
118209 .dst_temps = .{ .{ .cc = .nz }, .unused },
118210 .clobbers = .{ .eflags = true },
118211 .each = .{ .once = &.{
118212 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8), ._, ._ },
118213 .{ ._, ._, .xor, .tmp1q, .tmp1q, ._, ._ },
118214 .{ .@"0:", ._, .xor, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
118215 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
118216 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
118217 .{ ._, ._, .popcnt, .tmp1q, .tmp1q, ._, ._ },
118218 .{ ._, ._, .@"and", .tmp1b, .ui(1), ._, ._ },
118219 } },
118220 }, .{
118221 .required_features = .{ .@"64bit", null, null, null },
118222 .dst_constraints = .{ .bool, .any },
118223 .src_constraints = .{ .{ .exact_remainder_bool_vec = .{ .of = .qword, .is = 64 } }, .any, .any },
118224 .patterns = &.{
118225 .{ .src = .{ .to_mem, .none, .none } },
118226 },
118227 .extra_temps = .{
118228 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118229 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118230 .unused,
118231 .unused,
118232 .unused,
118233 .unused,
118234 .unused,
118235 .unused,
118236 .unused,
118237 .unused,
118238 .unused,
118239 },
118240 .dst_temps = .{ .{ .cc = .po }, .unused },
118241 .clobbers = .{ .eflags = true },
118242 .each = .{ .once = &.{
118243 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_bit_size_div_8), ._, ._ },
118244 .{ ._, ._, .xor, .tmp1q, .tmp1q, ._, ._ },
118245 .{ .@"0:", ._, .xor, .tmp1q, .memi(.src0q, .tmp0), ._, ._ },
118246 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
118247 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
118248 .{ ._, ._, .mov, .tmp0d, .tmp1d, ._, ._ },
118249 .{ ._, ._r, .sh, .tmp1q, .ui(32), ._, ._ },
118250 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118251 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118252 .{ ._, ._r, .sh, .tmp1d, .ui(16), ._, ._ },
118253 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118254 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118255 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118256 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118257 } },
118258 }, .{
118259 .required_features = .{ .@"64bit", .popcnt, null, null },
118260 .dst_constraints = .{ .bool, .any },
118261 .src_constraints = .{ .{ .remainder_bool_vec = .{ .of = .qword, .is = .qword } }, .any, .any },
118262 .patterns = &.{
118263 .{ .src = .{ .to_mem, .none, .none } },
118264 },
118265 .extra_temps = .{
118266 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118267 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118268 .unused,
118269 .unused,
118270 .unused,
118271 .unused,
118272 .unused,
118273 .unused,
118274 .unused,
118275 .unused,
118276 .unused,
118277 },
118278 .dst_temps = .{ .{ .cc = .nz }, .unused },
118279 .clobbers = .{ .eflags = true },
118280 .each = .{ .once = &.{
118281 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
118282 .{ ._, ._, .mov, .tmp1d, .sia(-8, .src0, .add_bit_size_div_8_down_8), ._, ._ },
118283 .{ ._, ._, .@"and", .tmp0q, .mema(.src0q, .add_bit_size_div_8_down_8), ._, ._ },
118284 .{ .@"0:", ._, .xor, .tmp0q, .memi(.src0q, .tmp1), ._, ._ },
118285 .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ },
118286 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
118287 .{ ._, ._, .popcnt, .tmp0q, .tmp0q, ._, ._ },
118288 .{ ._, ._, .@"and", .tmp0b, .ui(1), ._, ._ },
118289 } },
118290 }, .{
118291 .required_features = .{ .@"64bit", null, null, null },
118292 .dst_constraints = .{ .bool, .any },
118293 .src_constraints = .{ .{ .remainder_bool_vec = .{ .of = .qword, .is = .qword } }, .any, .any },
118294 .patterns = &.{
118295 .{ .src = .{ .to_mem, .none, .none } },
118296 },
118297 .extra_temps = .{
118298 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
118299 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
118300 .unused,
118301 .unused,
118302 .unused,
118303 .unused,
118304 .unused,
118305 .unused,
118306 .unused,
118307 .unused,
118308 .unused,
118309 },
118310 .dst_temps = .{ .{ .cc = .po }, .unused },
118311 .clobbers = .{ .eflags = true },
118312 .each = .{ .once = &.{
118313 .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ },
118314 .{ ._, ._, .mov, .tmp1d, .sia(-8, .src0, .add_bit_size_div_8_down_8), ._, ._ },
118315 .{ ._, ._, .@"and", .tmp0q, .mema(.src0q, .add_bit_size_div_8_down_8), ._, ._ },
118316 .{ .@"0:", ._, .xor, .tmp0q, .memi(.src0q, .tmp1), ._, ._ },
118317 .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ },
118318 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
118319 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118320 .{ ._, ._r, .sh, .tmp0q, .ui(32), ._, ._ },
118321 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118322 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118323 .{ ._, ._r, .sh, .tmp1d, .ui(16), ._, ._ },
118324 .{ ._, ._, .xor, .tmp0d, .tmp1d, ._, ._ },
118325 .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ },
118326 .{ ._, ._r, .sh, .tmp1d, .ui(8), ._, ._ },
118327 .{ ._, ._, .xor, .tmp0b, .tmp1b, ._, ._ },
118328 } },
118329 } },
118330 } ++ [_]Select.Case{ .{
118331 .required_features = .{ .sse, null, null, null },
118332 .dst_constraints = .{ .{ .int = .byte }, .any },
118333 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
118334 .patterns = &.{
118335 .{ .src = .{ .mut_mem, .none, .none } },
118336 .{ .src = .{ .mut_gpr, .none, .none } },
118337 .{ .src = .{ .to_mut_sse, .none, .none } },
118338 },
118339 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118340 .each = .{ .once = &.{} },
118341 }, .{
118342 .dst_constraints = .{ .{ .int = .byte }, .any },
118343 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
118344 .patterns = &.{
118345 .{ .src = .{ .mut_mem, .none, .none } },
118346 .{ .src = .{ .to_mut_gpr, .none, .none } },
118347 },
118348 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118349 .each = .{ .once = &.{} },
118350 }, .{
118351 .required_features = .{ .avx, null, null, null },
118352 .dst_constraints = .{ .{ .int = .byte }, .any },
118353 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
118354 .patterns = &.{
118355 .{ .src = .{ .to_sse, .none, .none } },
118356 },
118357 .extra_temps = .{
118358 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118359 .unused,
118360 .unused,
118361 .unused,
118362 .unused,
118363 .unused,
118364 .unused,
118365 .unused,
118366 .unused,
118367 .unused,
118368 .unused,
118369 },
118370 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118371 .each = .{ .once = &.{
118372 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
118373 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
118374 } },
118375 }, .{
118376 .required_features = .{ .sse2, null, null, null },
118377 .dst_constraints = .{ .{ .int = .byte }, .any },
118378 .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any },
118379 .patterns = &.{
118380 .{ .src = .{ .to_mut_sse, .none, .none } },
118381 },
118382 .extra_temps = .{
118383 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118384 .unused,
118385 .unused,
118386 .unused,
118387 .unused,
118388 .unused,
118389 .unused,
118390 .unused,
118391 .unused,
118392 .unused,
118393 .unused,
118394 },
118395 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118396 .each = .{ .once = &.{
118397 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
118398 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
118399 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118400 } },
118401 }, .{
118402 .required_features = .{ .avx, null, null, null },
118403 .dst_constraints = .{ .{ .int = .byte }, .any },
118404 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
118405 .patterns = &.{
118406 .{ .src = .{ .to_sse, .none, .none } },
118407 },
118408 .extra_temps = .{
118409 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118410 .unused,
118411 .unused,
118412 .unused,
118413 .unused,
118414 .unused,
118415 .unused,
118416 .unused,
118417 .unused,
118418 .unused,
118419 .unused,
118420 },
118421 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118422 .each = .{ .once = &.{
118423 .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
118424 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
118425 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
118426 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118427 } },
118428 }, .{
118429 .required_features = .{ .sse2, null, null, null },
118430 .dst_constraints = .{ .{ .int = .byte }, .any },
118431 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
118432 .patterns = &.{
118433 .{ .src = .{ .to_mut_sse, .none, .none } },
118434 },
118435 .extra_temps = .{
118436 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118437 .unused,
118438 .unused,
118439 .unused,
118440 .unused,
118441 .unused,
118442 .unused,
118443 .unused,
118444 .unused,
118445 .unused,
118446 .unused,
118447 },
118448 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118449 .each = .{ .once = &.{
118450 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
118451 .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
118452 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118453 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
118454 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
118455 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118456 } },
118457 }, .{
118458 .required_features = .{ .avx, null, null, null },
118459 .dst_constraints = .{ .{ .int = .byte }, .any },
118460 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
118461 .patterns = &.{
118462 .{ .src = .{ .to_sse, .none, .none } },
118463 },
118464 .extra_temps = .{
118465 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118466 .unused,
118467 .unused,
118468 .unused,
118469 .unused,
118470 .unused,
118471 .unused,
118472 .unused,
118473 .unused,
118474 .unused,
118475 .unused,
118476 },
118477 .dst_temps = .{ .{ .rc = .sse }, .unused },
118478 .each = .{ .once = &.{
118479 .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
118480 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
118481 .{ ._, .vp_w, .srl, .tmp0x, .src0x, .ui(8), ._ },
118482 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118483 } },
118484 }, .{
118485 .required_features = .{ .sse2, null, null, null },
118486 .dst_constraints = .{ .{ .int = .byte }, .any },
118487 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any },
118488 .patterns = &.{
118489 .{ .src = .{ .to_mut_sse, .none, .none } },
118490 },
118491 .extra_temps = .{
118492 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118493 .unused,
118494 .unused,
118495 .unused,
118496 .unused,
118497 .unused,
118498 .unused,
118499 .unused,
118500 .unused,
118501 .unused,
118502 .unused,
118503 },
118504 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118505 .each = .{ .once = &.{
118506 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
118507 .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
118508 .{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
118509 .{ ._, .p_w, .srl, .dst0x, .ui(8), ._, ._ },
118510 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118511 } },
118512 }, .{
118513 .required_features = .{ .avx, null, null, null },
118514 .dst_constraints = .{ .{ .int = .byte }, .any },
118515 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
118516 .patterns = &.{
118517 .{ .src = .{ .to_sse, .none, .none } },
118518 },
118519 .extra_temps = .{
118520 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118521 .unused,
118522 .unused,
118523 .unused,
118524 .unused,
118525 .unused,
118526 .unused,
118527 .unused,
118528 .unused,
118529 .unused,
118530 .unused,
118531 },
118532 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118533 .each = .{ .once = &.{
118534 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
118535 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
118536 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
118537 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118538 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
118539 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118540 } },
118541 }, .{
118542 .required_features = .{ .sse2, null, null, null },
118543 .dst_constraints = .{ .{ .int = .byte }, .any },
118544 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
118545 .patterns = &.{
118546 .{ .src = .{ .to_mut_sse, .none, .none } },
118547 },
118548 .extra_temps = .{
118549 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118550 .unused,
118551 .unused,
118552 .unused,
118553 .unused,
118554 .unused,
118555 .unused,
118556 .unused,
118557 .unused,
118558 .unused,
118559 .unused,
118560 },
118561 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118562 .each = .{ .once = &.{
118563 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
118564 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118565 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
118566 .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
118567 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118568 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
118569 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
118570 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118571 } },
118572 }, .{
118573 .required_features = .{ .avx, null, null, null },
118574 .dst_constraints = .{ .{ .int = .byte }, .any },
118575 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
118576 .patterns = &.{
118577 .{ .src = .{ .to_sse, .none, .none } },
118578 },
118579 .extra_temps = .{
118580 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
118581 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
118582 .ref = .src0,
118583 .invert = switch (mir_tag) {
118584 else => unreachable,
118585 .@"and" => true,
118586 .@"or", .xor => false,
118587 },
118588 } } },
118589 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118590 .unused,
118591 .unused,
118592 .unused,
118593 .unused,
118594 .unused,
118595 .unused,
118596 .unused,
118597 .unused,
118598 },
118599 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118600 .each = .{ .once = &.{
118601 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
118602 .{ ._, .vp_, switch (mir_tag) {
118603 else => unreachable,
118604 .@"and" => .@"or",
118605 .@"or", .xor => .@"and",
118606 }, .dst0x, .src0x, .lea(.tmp0x), ._ },
118607 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
118608 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118609 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
118610 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118611 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
118612 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118613 } },
118614 }, .{
118615 .required_features = .{ .sse2, null, null, null },
118616 .dst_constraints = .{ .{ .int = .byte }, .any },
118617 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any },
118618 .patterns = &.{
118619 .{ .src = .{ .to_mut_sse, .none, .none } },
118620 },
118621 .extra_temps = .{
118622 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
118623 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
118624 .ref = .src0,
118625 .invert = switch (mir_tag) {
118626 else => unreachable,
118627 .@"and" => true,
118628 .@"or", .xor => false,
118629 },
118630 } } },
118631 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118632 .unused,
118633 .unused,
118634 .unused,
118635 .unused,
118636 .unused,
118637 .unused,
118638 .unused,
118639 .unused,
118640 },
118641 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118642 .each = .{ .once = &.{
118643 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
118644 .{ ._, .p_, switch (mir_tag) {
118645 else => unreachable,
118646 .@"and" => .@"or",
118647 .@"or", .xor => .@"and",
118648 }, .dst0x, .lea(.tmp0x), ._, ._ },
118649 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
118650 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
118651 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
118652 .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
118653 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
118654 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
118655 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
118656 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
118657 } },
118658 }, .{
118659 .required_features = .{ .avx, null, null, null },
118660 .dst_constraints = .{ .{ .int = .byte }, .any },
118661 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
118662 .patterns = &.{
118663 .{ .src = .{ .to_sse, .none, .none } },
118664 },
118665 .extra_temps = .{
118666 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118667 .unused,
118668 .unused,
118669 .unused,
118670 .unused,
118671 .unused,
118672 .unused,
118673 .unused,
118674 .unused,
118675 .unused,
118676 .unused,
118677 },
118678 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118679 .each = .{ .once = &.{
118680 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
118681 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
118682 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
118683 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118684 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
118685 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118686 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
118687 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118688 } },
118689 }, .{
118690 .required_features = .{ .sse2, null, null, null },
118691 .dst_constraints = .{ .{ .int = .byte }, .any },
118692 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
118693 .patterns = &.{
118694 .{ .src = .{ .to_mut_sse, .none, .none } },
118695 },
118696 .extra_temps = .{
118697 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118698 .unused,
118699 .unused,
118700 .unused,
118701 .unused,
118702 .unused,
118703 .unused,
118704 .unused,
118705 .unused,
118706 .unused,
118707 .unused,
118708 },
118709 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118710 .each = .{ .once = &.{
118711 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
118712 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118713 .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
118714 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118715 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
118716 .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
118717 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118718 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
118719 .{ ._, .p_w, .srl, .tmp0x, .ui(8), ._, ._ },
118720 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
118721 } },
118722 }, .{
118723 .required_features = .{ .avx, null, null, null },
118724 .dst_constraints = .{ .{ .int = .byte }, .any },
118725 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
118726 .patterns = &.{
118727 .{ .src = .{ .to_sse, .none, .none } },
118728 },
118729 .extra_temps = .{
118730 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
118731 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
118732 .ref = .src0,
118733 .invert = switch (mir_tag) {
118734 else => unreachable,
118735 .@"and" => true,
118736 .@"or", .xor => false,
118737 },
118738 } } },
118739 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118740 .unused,
118741 .unused,
118742 .unused,
118743 .unused,
118744 .unused,
118745 .unused,
118746 .unused,
118747 .unused,
118748 },
118749 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118750 .each = .{ .once = &.{
118751 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
118752 .{ ._, .vp_, switch (mir_tag) {
118753 else => unreachable,
118754 .@"and" => .@"or",
118755 .@"or", .xor => .@"and",
118756 }, .dst0x, .src0x, .lea(.tmp0x), ._ },
118757 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
118758 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118759 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
118760 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118761 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
118762 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118763 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
118764 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118765 } },
118766 }, .{
118767 .required_features = .{ .sse2, null, null, null },
118768 .dst_constraints = .{ .{ .int = .byte }, .any },
118769 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
118770 .patterns = &.{
118771 .{ .src = .{ .to_mut_sse, .none, .none } },
118772 },
118773 .extra_temps = .{
118774 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
118775 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
118776 .ref = .src0,
118777 .invert = switch (mir_tag) {
118778 else => unreachable,
118779 .@"and" => true,
118780 .@"or", .xor => false,
118781 },
118782 } } },
118783 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118784 .unused,
118785 .unused,
118786 .unused,
118787 .unused,
118788 .unused,
118789 .unused,
118790 .unused,
118791 .unused,
118792 },
118793 .dst_temps = .{ .{ .ref = .src0 }, .unused },
118794 .each = .{ .once = &.{
118795 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
118796 .{ ._, .p_, switch (mir_tag) {
118797 else => unreachable,
118798 .@"and" => .@"or",
118799 .@"or", .xor => .@"and",
118800 }, .dst0x, .lea(.tmp0x), ._, ._ },
118801 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
118802 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
118803 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
118804 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
118805 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
118806 .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
118807 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
118808 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
118809 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
118810 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
118811 } },
118812 }, .{
118813 .required_features = .{ .avx2, null, null, null },
118814 .dst_constraints = .{ .{ .int = .byte }, .any },
118815 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
118816 .patterns = &.{
118817 .{ .src = .{ .to_sse, .none, .none } },
118818 },
118819 .extra_temps = .{
118820 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118821 .unused,
118822 .unused,
118823 .unused,
118824 .unused,
118825 .unused,
118826 .unused,
118827 .unused,
118828 .unused,
118829 .unused,
118830 .unused,
118831 },
118832 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118833 .each = .{ .once = &.{
118834 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
118835 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
118836 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
118837 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118838 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
118839 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118840 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
118841 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118842 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
118843 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118844 } },
118845 }, .{
118846 .required_features = .{ .avx, null, null, null },
118847 .dst_constraints = .{ .{ .int = .byte }, .any },
118848 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
118849 .patterns = &.{
118850 .{ .src = .{ .to_sse, .none, .none } },
118851 },
118852 .extra_temps = .{
118853 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118854 .unused,
118855 .unused,
118856 .unused,
118857 .unused,
118858 .unused,
118859 .unused,
118860 .unused,
118861 .unused,
118862 .unused,
118863 .unused,
118864 },
118865 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118866 .each = .{ .once = &.{
118867 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
118868 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
118869 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
118870 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118871 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
118872 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118873 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
118874 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118875 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
118876 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118877 } },
118878 }, .{
118879 .required_features = .{ .avx2, null, null, null },
118880 .dst_constraints = .{ .{ .int = .byte }, .any },
118881 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
118882 .patterns = &.{
118883 .{ .src = .{ .to_sse, .none, .none } },
118884 },
118885 .extra_temps = .{
118886 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
118887 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
118888 .ref = .src0,
118889 .invert = switch (mir_tag) {
118890 else => unreachable,
118891 .@"and" => true,
118892 .@"or", .xor => false,
118893 },
118894 } } },
118895 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118896 .unused,
118897 .unused,
118898 .unused,
118899 .unused,
118900 .unused,
118901 .unused,
118902 .unused,
118903 .unused,
118904 },
118905 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118906 .each = .{ .once = &.{
118907 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
118908 .{ ._, .vp_, switch (mir_tag) {
118909 else => unreachable,
118910 .@"and" => .@"or",
118911 .@"or", .xor => .@"and",
118912 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
118913 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
118914 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118915 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
118916 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118917 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
118918 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118919 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
118920 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118921 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
118922 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118923 } },
118924 }, .{
118925 .required_features = .{ .avx, null, null, null },
118926 .dst_constraints = .{ .{ .int = .byte }, .any },
118927 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
118928 .patterns = &.{
118929 .{ .src = .{ .to_sse, .none, .none } },
118930 },
118931 .extra_temps = .{
118932 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
118933 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
118934 .ref = .src0,
118935 .invert = switch (mir_tag) {
118936 else => unreachable,
118937 .@"and" => true,
118938 .@"or", .xor => false,
118939 },
118940 } } },
118941 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118942 .unused,
118943 .unused,
118944 .unused,
118945 .unused,
118946 .unused,
118947 .unused,
118948 .unused,
118949 .unused,
118950 },
118951 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118952 .each = .{ .once = &.{
118953 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
118954 .{ ._, .v_ps, switch (mir_tag) {
118955 else => unreachable,
118956 .@"and" => .@"or",
118957 .@"or", .xor => .@"and",
118958 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
118959 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
118960 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118961 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
118962 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118963 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
118964 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118965 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
118966 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118967 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
118968 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
118969 } },
118970 }, .{
118971 .required_features = .{ .avx512f, null, null, null },
118972 .dst_constraints = .{ .{ .int = .byte }, .any },
118973 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
118974 .patterns = &.{
118975 .{ .src = .{ .to_mem, .none, .none } },
118976 },
118977 .extra_temps = .{
118978 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
118979 .unused,
118980 .unused,
118981 .unused,
118982 .unused,
118983 .unused,
118984 .unused,
118985 .unused,
118986 .unused,
118987 .unused,
118988 .unused,
118989 },
118990 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
118991 .each = .{ .once = &.{
118992 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
118993 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
118994 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
118995 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118996 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
118997 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
118998 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
118999 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119000 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
119001 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119002 .{ ._, .vp_w, .srl, .tmp0x, .dst0x, .ui(8), ._ },
119003 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119004 } },
119005 }, .{
119006 .required_features = .{ .avx512f, null, null, null },
119007 .dst_constraints = .{ .{ .int = .byte }, .any },
119008 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
119009 .patterns = &.{
119010 .{ .src = .{ .to_mem, .none, .none } },
119011 },
119012 .extra_temps = .{
119013 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119014 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
119015 .ref = .src0,
119016 .invert = switch (mir_tag) {
119017 else => unreachable,
119018 .@"and" => true,
119019 .@"or", .xor => false,
119020 },
119021 } } },
119022 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
119023 .unused,
119024 .unused,
119025 .unused,
119026 .unused,
119027 .unused,
119028 .unused,
119029 .unused,
119030 .unused,
119031 },
119032 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119033 .each = .{ .once = &.{
119034 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119035 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
119036 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
119037 .{ ._, .vp_, switch (mir_tag) {
119038 else => unreachable,
119039 .@"and" => .@"or",
119040 .@"or", .xor => .@"and",
119041 }, .dst0y, .dst0y, .lea(.tmp0y), ._ },
119042 .{ ._, .vp_, switch (mir_tag) {
119043 else => unreachable,
119044 .@"and" => .@"or",
119045 .@"or", .xor => .@"and",
119046 }, .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
119047 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
119048 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119049 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119050 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
119051 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119052 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
119053 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119054 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
119055 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119056 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119057 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119058 } },
119059 }, .{
119060 .required_features = .{ .avx2, null, null, null },
119061 .dst_constraints = .{ .{ .int = .byte }, .any },
119062 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119063 .patterns = &.{
119064 .{ .src = .{ .to_mem, .none, .none } },
119065 },
119066 .extra_temps = .{
119067 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119068 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119069 .unused,
119070 .unused,
119071 .unused,
119072 .unused,
119073 .unused,
119074 .unused,
119075 .unused,
119076 .unused,
119077 .unused,
119078 },
119079 .dst_temps = .{ .{ .rc = .sse }, .unused },
119080 .each = .{ .once = &.{
119081 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
119082 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
119083 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119084 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
119085 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119086 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
119087 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119088 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
119089 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119090 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
119091 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119092 .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
119093 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119094 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
119095 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119096 } },
119097 }, .{
119098 .required_features = .{ .avx, null, null, null },
119099 .dst_constraints = .{ .{ .int = .byte }, .any },
119100 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119101 .patterns = &.{
119102 .{ .src = .{ .to_mem, .none, .none } },
119103 },
119104 .extra_temps = .{
119105 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119106 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119107 .unused,
119108 .unused,
119109 .unused,
119110 .unused,
119111 .unused,
119112 .unused,
119113 .unused,
119114 .unused,
119115 .unused,
119116 },
119117 .dst_temps = .{ .{ .rc = .sse }, .unused },
119118 .each = .{ .once = &.{
119119 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
119120 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
119121 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119122 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
119123 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119124 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
119125 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119126 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
119127 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119128 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
119129 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119130 .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
119131 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119132 .{ ._, .vp_w, .srl, .tmp1x, .dst0x, .ui(8), ._ },
119133 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
119134 } },
119135 }, .{
119136 .required_features = .{ .sse2, null, null, null },
119137 .dst_constraints = .{ .{ .int = .byte }, .any },
119138 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
119139 .patterns = &.{
119140 .{ .src = .{ .to_mem, .none, .none } },
119141 },
119142 .extra_temps = .{
119143 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119144 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119145 .unused,
119146 .unused,
119147 .unused,
119148 .unused,
119149 .unused,
119150 .unused,
119151 .unused,
119152 .unused,
119153 .unused,
119154 },
119155 .dst_temps = .{ .{ .rc = .sse }, .unused },
119156 .each = .{ .once = &.{
119157 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
119158 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
119159 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
119160 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
119161 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119162 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
119163 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
119164 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
119165 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
119166 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
119167 .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
119168 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
119169 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
119170 .{ ._, .p_w, .srl, .tmp1x, .ui(8), ._, ._ },
119171 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
119172 } },
119173 }, .{
119174 .required_features = .{ .avx512f, null, null, null },
119175 .dst_constraints = .{ .{ .int = .byte }, .any },
119176 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .byte } }, .any, .any },
119177 .patterns = &.{
119178 .{ .src = .{ .to_mem, .none, .none } },
119179 },
119180 .extra_temps = .{
119181 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119182 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
119183 .ref = .src0,
119184 .invert = switch (mir_tag) {
119185 else => unreachable,
119186 .@"and" => true,
119187 .@"or", .xor => false,
119188 },
119189 } } },
119190 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
119191 .unused,
119192 .unused,
119193 .unused,
119194 .unused,
119195 .unused,
119196 .unused,
119197 .unused,
119198 .unused,
119199 },
119200 .dst_temps = .{ .{ .rc = .sse }, .unused },
119201 .each = .{ .once = &.{
119202 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119203 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
119204 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
119205 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
119206 .{ ._, .vp_, switch (mir_tag) {
119207 else => unreachable,
119208 .@"and" => .@"or",
119209 .@"or", .xor => .@"and",
119210 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
119211 .{ ._, .vp_, switch (mir_tag) {
119212 else => unreachable,
119213 .@"and" => .@"or",
119214 .@"or", .xor => .@"and",
119215 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
119216 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
119217 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119218 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
119219 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119220 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
119221 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119222 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119223 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
119224 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119225 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
119226 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119227 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
119228 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119229 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119230 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119231 } },
119232 }, .{
119233 .required_features = .{ .avx2, null, null, null },
119234 .dst_constraints = .{ .{ .int = .byte }, .any },
119235 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119236 .patterns = &.{
119237 .{ .src = .{ .to_mem, .none, .none } },
119238 },
119239 .extra_temps = .{
119240 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119241 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
119242 .ref = .src0,
119243 .invert = switch (mir_tag) {
119244 else => unreachable,
119245 .@"and" => true,
119246 .@"or", .xor => false,
119247 },
119248 } } },
119249 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119250 .unused,
119251 .unused,
119252 .unused,
119253 .unused,
119254 .unused,
119255 .unused,
119256 .unused,
119257 .unused,
119258 },
119259 .dst_temps = .{ .{ .rc = .sse }, .unused },
119260 .each = .{ .once = &.{
119261 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119262 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
119263 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
119264 .{ ._, .vp_, switch (mir_tag) {
119265 else => unreachable,
119266 .@"and" => .@"or",
119267 .@"or", .xor => .@"and",
119268 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
119269 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119270 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
119271 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119272 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119273 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119274 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
119275 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119276 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
119277 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119278 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
119279 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119280 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119281 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119282 } },
119283 }, .{
119284 .required_features = .{ .avx, null, null, null },
119285 .dst_constraints = .{ .{ .int = .byte }, .any },
119286 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any },
119287 .patterns = &.{
119288 .{ .src = .{ .to_mem, .none, .none } },
119289 },
119290 .extra_temps = .{
119291 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119292 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
119293 .ref = .src0,
119294 .invert = switch (mir_tag) {
119295 else => unreachable,
119296 .@"and" => true,
119297 .@"or", .xor => false,
119298 },
119299 } } },
119300 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119301 .unused,
119302 .unused,
119303 .unused,
119304 .unused,
119305 .unused,
119306 .unused,
119307 .unused,
119308 .unused,
119309 },
119310 .dst_temps = .{ .{ .rc = .sse }, .unused },
119311 .each = .{ .once = &.{
119312 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119313 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
119314 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
119315 .{ ._, .v_ps, switch (mir_tag) {
119316 else => unreachable,
119317 .@"and" => .@"or",
119318 .@"or", .xor => .@"and",
119319 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
119320 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
119321 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
119322 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119323 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119324 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119325 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
119326 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119327 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
119328 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119329 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
119330 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119331 .{ ._, .vp_w, .srl, .tmp2x, .dst0x, .ui(8), ._ },
119332 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119333 } },
119334 }, .{
119335 .required_features = .{ .sse2, null, null, null },
119336 .dst_constraints = .{ .{ .int = .byte }, .any },
119337 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any },
119338 .patterns = &.{
119339 .{ .src = .{ .to_mem, .none, .none } },
119340 },
119341 .extra_temps = .{
119342 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119343 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
119344 .ref = .src0,
119345 .invert = switch (mir_tag) {
119346 else => unreachable,
119347 .@"and" => true,
119348 .@"or", .xor => false,
119349 },
119350 } } },
119351 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
119352 .unused,
119353 .unused,
119354 .unused,
119355 .unused,
119356 .unused,
119357 .unused,
119358 .unused,
119359 .unused,
119360 },
119361 .dst_temps = .{ .{ .rc = .sse }, .unused },
119362 .each = .{ .once = &.{
119363 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119364 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
119365 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
119366 .{ ._, .p_, switch (mir_tag) {
119367 else => unreachable,
119368 .@"and" => .@"or",
119369 .@"or", .xor => .@"and",
119370 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
119371 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
119372 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
119373 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119374 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
119375 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119376 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
119377 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119378 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
119379 .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
119380 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119381 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
119382 .{ ._, .p_w, .srl, .tmp2x, .ui(8), ._, ._ },
119383 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119384 } },
119385 }, .{
119386 .required_features = .{ .slow_incdec, null, null, null },
119387 .dst_constraints = .{ .{ .int = .byte }, .any },
119388 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
119389 .patterns = &.{
119390 .{ .src = .{ .to_mem, .none, .none } },
119391 },
119392 .extra_temps = .{
119393 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119394 .unused,
119395 .unused,
119396 .unused,
119397 .unused,
119398 .unused,
119399 .unused,
119400 .unused,
119401 .unused,
119402 .unused,
119403 .unused,
119404 },
119405 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
119406 .clobbers = .{ .eflags = true },
119407 .each = .{ .once = &.{
119408 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
119409 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
119410 .{ .@"0:", ._, mir_tag, .dst0b, .memi(.src0b, .tmp0), ._, ._ },
119411 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
119412 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
119413 } },
119414 }, .{
119415 .dst_constraints = .{ .{ .int = .byte }, .any },
119416 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any },
119417 .patterns = &.{
119418 .{ .src = .{ .to_mem, .none, .none } },
119419 },
119420 .extra_temps = .{
119421 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
119422 .unused,
119423 .unused,
119424 .unused,
119425 .unused,
119426 .unused,
119427 .unused,
119428 .unused,
119429 .unused,
119430 .unused,
119431 .unused,
119432 },
119433 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
119434 .clobbers = .{ .eflags = true },
119435 .each = .{ .once = &.{
119436 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ },
119437 .{ ._, ._, .movzx, .dst0d, .memad(.src0b, .add_unaligned_size, -1), ._, ._ },
119438 .{ .@"0:", ._, mir_tag, .dst0b, .memi(.src0b, .tmp0), ._, ._ },
119439 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
119440 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
119441 } },
119442 }, .{
119443 .required_features = .{ .sse, null, null, null },
119444 .dst_constraints = .{ .{ .int = .word }, .any },
119445 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
119446 .patterns = &.{
119447 .{ .src = .{ .mut_mem, .none, .none } },
119448 .{ .src = .{ .mut_gpr, .none, .none } },
119449 .{ .src = .{ .to_mut_sse, .none, .none } },
119450 },
119451 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119452 .each = .{ .once = &.{} },
119453 }, .{
119454 .dst_constraints = .{ .{ .int = .word }, .any },
119455 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
119456 .patterns = &.{
119457 .{ .src = .{ .mut_mem, .none, .none } },
119458 .{ .src = .{ .to_mut_gpr, .none, .none } },
119459 },
119460 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119461 .each = .{ .once = &.{} },
119462 }, .{
119463 .required_features = .{ .avx, null, null, null },
119464 .dst_constraints = .{ .{ .int = .word }, .any },
119465 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
119466 .patterns = &.{
119467 .{ .src = .{ .to_sse, .none, .none } },
119468 },
119469 .extra_temps = .{
119470 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119471 .unused,
119472 .unused,
119473 .unused,
119474 .unused,
119475 .unused,
119476 .unused,
119477 .unused,
119478 .unused,
119479 .unused,
119480 .unused,
119481 },
119482 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119483 .each = .{ .once = &.{
119484 .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
119485 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119486 } },
119487 }, .{
119488 .required_features = .{ .sse2, null, null, null },
119489 .dst_constraints = .{ .{ .int = .word }, .any },
119490 .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any },
119491 .patterns = &.{
119492 .{ .src = .{ .to_mut_sse, .none, .none } },
119493 },
119494 .extra_temps = .{
119495 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119496 .unused,
119497 .unused,
119498 .unused,
119499 .unused,
119500 .unused,
119501 .unused,
119502 .unused,
119503 .unused,
119504 .unused,
119505 .unused,
119506 },
119507 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119508 .each = .{ .once = &.{
119509 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
119510 .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
119511 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119512 } },
119513 }, .{
119514 .required_features = .{ .avx, null, null, null },
119515 .dst_constraints = .{ .{ .int = .word }, .any },
119516 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
119517 .patterns = &.{
119518 .{ .src = .{ .to_sse, .none, .none } },
119519 },
119520 .extra_temps = .{
119521 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119522 .unused,
119523 .unused,
119524 .unused,
119525 .unused,
119526 .unused,
119527 .unused,
119528 .unused,
119529 .unused,
119530 .unused,
119531 .unused,
119532 },
119533 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119534 .each = .{ .once = &.{
119535 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
119536 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119537 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
119538 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119539 } },
119540 }, .{
119541 .required_features = .{ .sse2, null, null, null },
119542 .dst_constraints = .{ .{ .int = .word }, .any },
119543 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
119544 .patterns = &.{
119545 .{ .src = .{ .to_mut_sse, .none, .none } },
119546 },
119547 .extra_temps = .{
119548 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119549 .unused,
119550 .unused,
119551 .unused,
119552 .unused,
119553 .unused,
119554 .unused,
119555 .unused,
119556 .unused,
119557 .unused,
119558 .unused,
119559 },
119560 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119561 .each = .{ .once = &.{
119562 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
119563 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119564 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
119565 .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
119566 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119567 } },
119568 }, .{
119569 .required_features = .{ .avx, null, null, null },
119570 .dst_constraints = .{ .{ .int = .word }, .any },
119571 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
119572 .patterns = &.{
119573 .{ .src = .{ .to_sse, .none, .none } },
119574 },
119575 .extra_temps = .{
119576 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119577 .unused,
119578 .unused,
119579 .unused,
119580 .unused,
119581 .unused,
119582 .unused,
119583 .unused,
119584 .unused,
119585 .unused,
119586 .unused,
119587 },
119588 .dst_temps = .{ .{ .rc = .sse }, .unused },
119589 .each = .{ .once = &.{
119590 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
119591 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119592 .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ },
119593 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119594 } },
119595 }, .{
119596 .required_features = .{ .sse2, null, null, null },
119597 .dst_constraints = .{ .{ .int = .word }, .any },
119598 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any },
119599 .patterns = &.{
119600 .{ .src = .{ .to_mut_sse, .none, .none } },
119601 },
119602 .extra_temps = .{
119603 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119604 .unused,
119605 .unused,
119606 .unused,
119607 .unused,
119608 .unused,
119609 .unused,
119610 .unused,
119611 .unused,
119612 .unused,
119613 .unused,
119614 },
119615 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119616 .each = .{ .once = &.{
119617 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
119618 .{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
119619 .{ ._, .p_d, .srl, .dst0x, .ui(16), ._, ._ },
119620 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119621 } },
119622 }, .{
119623 .required_features = .{ .avx, null, null, null },
119624 .dst_constraints = .{ .{ .int = .word }, .any },
119625 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
119626 .patterns = &.{
119627 .{ .src = .{ .to_sse, .none, .none } },
119628 },
119629 .extra_temps = .{
119630 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119631 .unused,
119632 .unused,
119633 .unused,
119634 .unused,
119635 .unused,
119636 .unused,
119637 .unused,
119638 .unused,
119639 .unused,
119640 .unused,
119641 },
119642 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119643 .each = .{ .once = &.{
119644 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
119645 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119646 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
119647 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119648 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
119649 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119650 } },
119651 }, .{
119652 .required_features = .{ .sse2, null, null, null },
119653 .dst_constraints = .{ .{ .int = .word }, .any },
119654 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
119655 .patterns = &.{
119656 .{ .src = .{ .to_mut_sse, .none, .none } },
119657 },
119658 .extra_temps = .{
119659 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119660 .unused,
119661 .unused,
119662 .unused,
119663 .unused,
119664 .unused,
119665 .unused,
119666 .unused,
119667 .unused,
119668 .unused,
119669 .unused,
119670 },
119671 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119672 .each = .{ .once = &.{
119673 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
119674 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119675 .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
119676 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119677 .{ ._, ._dqa, .mov, .tmp0x, .dst0x, ._, ._ },
119678 .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ },
119679 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
119680 } },
119681 }, .{
119682 .required_features = .{ .avx, null, null, null },
119683 .dst_constraints = .{ .{ .int = .word }, .any },
119684 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
119685 .patterns = &.{
119686 .{ .src = .{ .to_sse, .none, .none } },
119687 },
119688 .extra_temps = .{
119689 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119690 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
119691 .ref = .src0,
119692 .invert = switch (mir_tag) {
119693 else => unreachable,
119694 .@"and" => true,
119695 .@"or", .xor => false,
119696 },
119697 } } },
119698 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119699 .unused,
119700 .unused,
119701 .unused,
119702 .unused,
119703 .unused,
119704 .unused,
119705 .unused,
119706 .unused,
119707 },
119708 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119709 .each = .{ .once = &.{
119710 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119711 .{ ._, .vp_, switch (mir_tag) {
119712 else => unreachable,
119713 .@"and" => .@"or",
119714 .@"or", .xor => .@"and",
119715 }, .dst0x, .src0x, .lea(.tmp0x), ._ },
119716 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
119717 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119718 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
119719 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119720 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
119721 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119722 } },
119723 }, .{
119724 .required_features = .{ .sse2, null, null, null },
119725 .dst_constraints = .{ .{ .int = .word }, .any },
119726 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
119727 .patterns = &.{
119728 .{ .src = .{ .to_mut_sse, .none, .none } },
119729 },
119730 .extra_temps = .{
119731 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119732 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
119733 .ref = .src0,
119734 .invert = switch (mir_tag) {
119735 else => unreachable,
119736 .@"and" => true,
119737 .@"or", .xor => false,
119738 },
119739 } } },
119740 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119741 .unused,
119742 .unused,
119743 .unused,
119744 .unused,
119745 .unused,
119746 .unused,
119747 .unused,
119748 .unused,
119749 },
119750 .dst_temps = .{ .{ .ref = .src0 }, .unused },
119751 .each = .{ .once = &.{
119752 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119753 .{ ._, .p_, switch (mir_tag) {
119754 else => unreachable,
119755 .@"and" => .@"or",
119756 .@"or", .xor => .@"and",
119757 }, .dst0x, .lea(.tmp0x), ._, ._ },
119758 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
119759 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119760 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
119761 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119762 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
119763 .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
119764 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
119765 } },
119766 }, .{
119767 .required_features = .{ .avx2, null, null, null },
119768 .dst_constraints = .{ .{ .int = .word }, .any },
119769 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
119770 .patterns = &.{
119771 .{ .src = .{ .to_sse, .none, .none } },
119772 },
119773 .extra_temps = .{
119774 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119775 .unused,
119776 .unused,
119777 .unused,
119778 .unused,
119779 .unused,
119780 .unused,
119781 .unused,
119782 .unused,
119783 .unused,
119784 .unused,
119785 },
119786 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119787 .each = .{ .once = &.{
119788 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
119789 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119790 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
119791 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119792 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
119793 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119794 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
119795 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119796 } },
119797 }, .{
119798 .required_features = .{ .avx, null, null, null },
119799 .dst_constraints = .{ .{ .int = .word }, .any },
119800 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
119801 .patterns = &.{
119802 .{ .src = .{ .to_sse, .none, .none } },
119803 },
119804 .extra_temps = .{
119805 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119806 .unused,
119807 .unused,
119808 .unused,
119809 .unused,
119810 .unused,
119811 .unused,
119812 .unused,
119813 .unused,
119814 .unused,
119815 .unused,
119816 },
119817 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119818 .each = .{ .once = &.{
119819 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
119820 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
119821 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
119822 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119823 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
119824 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119825 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
119826 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119827 } },
119828 }, .{
119829 .required_features = .{ .avx2, null, null, null },
119830 .dst_constraints = .{ .{ .int = .word }, .any },
119831 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
119832 .patterns = &.{
119833 .{ .src = .{ .to_sse, .none, .none } },
119834 },
119835 .extra_temps = .{
119836 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119837 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
119838 .ref = .src0,
119839 .invert = switch (mir_tag) {
119840 else => unreachable,
119841 .@"and" => true,
119842 .@"or", .xor => false,
119843 },
119844 } } },
119845 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119846 .unused,
119847 .unused,
119848 .unused,
119849 .unused,
119850 .unused,
119851 .unused,
119852 .unused,
119853 .unused,
119854 },
119855 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119856 .each = .{ .once = &.{
119857 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119858 .{ ._, .vp_, switch (mir_tag) {
119859 else => unreachable,
119860 .@"and" => .@"or",
119861 .@"or", .xor => .@"and",
119862 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
119863 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119864 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119865 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
119866 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119867 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
119868 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119869 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
119870 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119871 } },
119872 }, .{
119873 .required_features = .{ .avx, null, null, null },
119874 .dst_constraints = .{ .{ .int = .word }, .any },
119875 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
119876 .patterns = &.{
119877 .{ .src = .{ .to_sse, .none, .none } },
119878 },
119879 .extra_temps = .{
119880 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119881 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
119882 .ref = .src0,
119883 .invert = switch (mir_tag) {
119884 else => unreachable,
119885 .@"and" => true,
119886 .@"or", .xor => false,
119887 },
119888 } } },
119889 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119890 .unused,
119891 .unused,
119892 .unused,
119893 .unused,
119894 .unused,
119895 .unused,
119896 .unused,
119897 .unused,
119898 },
119899 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119900 .each = .{ .once = &.{
119901 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119902 .{ ._, .v_ps, switch (mir_tag) {
119903 else => unreachable,
119904 .@"and" => .@"or",
119905 .@"or", .xor => .@"and",
119906 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
119907 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119908 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119909 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
119910 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119911 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
119912 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119913 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
119914 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119915 } },
119916 }, .{
119917 .required_features = .{ .avx512f, null, null, null },
119918 .dst_constraints = .{ .{ .int = .word }, .any },
119919 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
119920 .patterns = &.{
119921 .{ .src = .{ .to_mem, .none, .none } },
119922 },
119923 .extra_temps = .{
119924 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
119925 .unused,
119926 .unused,
119927 .unused,
119928 .unused,
119929 .unused,
119930 .unused,
119931 .unused,
119932 .unused,
119933 .unused,
119934 .unused,
119935 },
119936 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119937 .each = .{ .once = &.{
119938 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
119939 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
119940 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
119941 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119942 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
119943 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119944 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
119945 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119946 .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ },
119947 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
119948 } },
119949 }, .{
119950 .required_features = .{ .avx512f, null, null, null },
119951 .dst_constraints = .{ .{ .int = .word }, .any },
119952 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
119953 .patterns = &.{
119954 .{ .src = .{ .to_mem, .none, .none } },
119955 },
119956 .extra_temps = .{
119957 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
119958 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
119959 .ref = .src0,
119960 .invert = switch (mir_tag) {
119961 else => unreachable,
119962 .@"and" => true,
119963 .@"or", .xor => false,
119964 },
119965 } } },
119966 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
119967 .unused,
119968 .unused,
119969 .unused,
119970 .unused,
119971 .unused,
119972 .unused,
119973 .unused,
119974 .unused,
119975 },
119976 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
119977 .each = .{ .once = &.{
119978 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
119979 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
119980 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
119981 .{ ._, .vp_, switch (mir_tag) {
119982 else => unreachable,
119983 .@"and" => .@"or",
119984 .@"or", .xor => .@"and",
119985 }, .dst0y, .dst0y, .lea(.tmp0y), ._ },
119986 .{ ._, .vp_, switch (mir_tag) {
119987 else => unreachable,
119988 .@"and" => .@"or",
119989 .@"or", .xor => .@"and",
119990 }, .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
119991 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
119992 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
119993 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119994 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
119995 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119996 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
119997 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
119998 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
119999 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120000 } },
120001 }, .{
120002 .required_features = .{ .avx2, null, null, null },
120003 .dst_constraints = .{ .{ .int = .word }, .any },
120004 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120005 .patterns = &.{
120006 .{ .src = .{ .to_mem, .none, .none } },
120007 },
120008 .extra_temps = .{
120009 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120010 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120011 .unused,
120012 .unused,
120013 .unused,
120014 .unused,
120015 .unused,
120016 .unused,
120017 .unused,
120018 .unused,
120019 .unused,
120020 },
120021 .dst_temps = .{ .{ .rc = .sse }, .unused },
120022 .each = .{ .once = &.{
120023 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
120024 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
120025 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120026 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120027 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120028 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
120029 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120030 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
120031 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120032 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
120033 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120034 .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
120035 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120036 } },
120037 }, .{
120038 .required_features = .{ .avx, null, null, null },
120039 .dst_constraints = .{ .{ .int = .word }, .any },
120040 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120041 .patterns = &.{
120042 .{ .src = .{ .to_mem, .none, .none } },
120043 },
120044 .extra_temps = .{
120045 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120046 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120047 .unused,
120048 .unused,
120049 .unused,
120050 .unused,
120051 .unused,
120052 .unused,
120053 .unused,
120054 .unused,
120055 .unused,
120056 },
120057 .dst_temps = .{ .{ .rc = .sse }, .unused },
120058 .each = .{ .once = &.{
120059 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
120060 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
120061 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120062 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120063 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120064 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
120065 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120066 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
120067 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120068 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
120069 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120070 .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ },
120071 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120072 } },
120073 }, .{
120074 .required_features = .{ .sse2, null, null, null },
120075 .dst_constraints = .{ .{ .int = .word }, .any },
120076 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
120077 .patterns = &.{
120078 .{ .src = .{ .to_mem, .none, .none } },
120079 },
120080 .extra_temps = .{
120081 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120082 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120083 .unused,
120084 .unused,
120085 .unused,
120086 .unused,
120087 .unused,
120088 .unused,
120089 .unused,
120090 .unused,
120091 .unused,
120092 },
120093 .dst_temps = .{ .{ .rc = .sse }, .unused },
120094 .each = .{ .once = &.{
120095 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
120096 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
120097 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
120098 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
120099 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120100 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
120101 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
120102 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
120103 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
120104 .{ ._, ._dqa, .mov, .tmp1x, .dst0x, ._, ._ },
120105 .{ ._, .p_d, .srl, .tmp1x, .ui(16), ._, ._ },
120106 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
120107 } },
120108 }, .{
120109 .required_features = .{ .avx512f, null, null, null },
120110 .dst_constraints = .{ .{ .int = .word }, .any },
120111 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .word } }, .any, .any },
120112 .patterns = &.{
120113 .{ .src = .{ .to_mem, .none, .none } },
120114 },
120115 .extra_temps = .{
120116 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120117 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
120118 .ref = .src0,
120119 .invert = switch (mir_tag) {
120120 else => unreachable,
120121 .@"and" => true,
120122 .@"or", .xor => false,
120123 },
120124 } } },
120125 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
120126 .unused,
120127 .unused,
120128 .unused,
120129 .unused,
120130 .unused,
120131 .unused,
120132 .unused,
120133 .unused,
120134 },
120135 .dst_temps = .{ .{ .rc = .sse }, .unused },
120136 .each = .{ .once = &.{
120137 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120138 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
120139 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
120140 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
120141 .{ ._, .vp_, switch (mir_tag) {
120142 else => unreachable,
120143 .@"and" => .@"or",
120144 .@"or", .xor => .@"and",
120145 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
120146 .{ ._, .vp_, switch (mir_tag) {
120147 else => unreachable,
120148 .@"and" => .@"or",
120149 .@"or", .xor => .@"and",
120150 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
120151 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
120152 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120153 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
120154 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120155 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
120156 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120157 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120158 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
120159 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120160 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
120161 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120162 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
120163 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120164 } },
120165 }, .{
120166 .required_features = .{ .avx2, null, null, null },
120167 .dst_constraints = .{ .{ .int = .word }, .any },
120168 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120169 .patterns = &.{
120170 .{ .src = .{ .to_mem, .none, .none } },
120171 },
120172 .extra_temps = .{
120173 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120174 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120175 .ref = .src0,
120176 .invert = switch (mir_tag) {
120177 else => unreachable,
120178 .@"and" => true,
120179 .@"or", .xor => false,
120180 },
120181 } } },
120182 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120183 .unused,
120184 .unused,
120185 .unused,
120186 .unused,
120187 .unused,
120188 .unused,
120189 .unused,
120190 .unused,
120191 },
120192 .dst_temps = .{ .{ .rc = .sse }, .unused },
120193 .each = .{ .once = &.{
120194 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120195 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
120196 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
120197 .{ ._, .vp_, switch (mir_tag) {
120198 else => unreachable,
120199 .@"and" => .@"or",
120200 .@"or", .xor => .@"and",
120201 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
120202 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120203 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120204 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120205 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120206 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120207 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
120208 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120209 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
120210 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120211 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
120212 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120213 } },
120214 }, .{
120215 .required_features = .{ .avx, null, null, null },
120216 .dst_constraints = .{ .{ .int = .word }, .any },
120217 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any },
120218 .patterns = &.{
120219 .{ .src = .{ .to_mem, .none, .none } },
120220 },
120221 .extra_temps = .{
120222 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120223 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120224 .ref = .src0,
120225 .invert = switch (mir_tag) {
120226 else => unreachable,
120227 .@"and" => true,
120228 .@"or", .xor => false,
120229 },
120230 } } },
120231 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120232 .unused,
120233 .unused,
120234 .unused,
120235 .unused,
120236 .unused,
120237 .unused,
120238 .unused,
120239 .unused,
120240 },
120241 .dst_temps = .{ .{ .rc = .sse }, .unused },
120242 .each = .{ .once = &.{
120243 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120244 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
120245 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
120246 .{ ._, .v_ps, switch (mir_tag) {
120247 else => unreachable,
120248 .@"and" => .@"or",
120249 .@"or", .xor => .@"and",
120250 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
120251 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120252 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120253 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120254 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120255 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120256 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
120257 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120258 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
120259 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120260 .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ },
120261 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120262 } },
120263 }, .{
120264 .required_features = .{ .sse2, null, null, null },
120265 .dst_constraints = .{ .{ .int = .word }, .any },
120266 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any },
120267 .patterns = &.{
120268 .{ .src = .{ .to_mem, .none, .none } },
120269 },
120270 .extra_temps = .{
120271 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120272 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
120273 .ref = .src0,
120274 .invert = switch (mir_tag) {
120275 else => unreachable,
120276 .@"and" => true,
120277 .@"or", .xor => false,
120278 },
120279 } } },
120280 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
120281 .unused,
120282 .unused,
120283 .unused,
120284 .unused,
120285 .unused,
120286 .unused,
120287 .unused,
120288 .unused,
120289 },
120290 .dst_temps = .{ .{ .rc = .sse }, .unused },
120291 .each = .{ .once = &.{
120292 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120293 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
120294 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
120295 .{ ._, .p_, switch (mir_tag) {
120296 else => unreachable,
120297 .@"and" => .@"or",
120298 .@"or", .xor => .@"and",
120299 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
120300 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
120301 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
120302 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120303 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
120304 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120305 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
120306 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120307 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
120308 .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ },
120309 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
120310 } },
120311 }, .{
120312 .dst_constraints = .{ .{ .int = .word }, .any },
120313 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any },
120314 .patterns = &.{
120315 .{ .src = .{ .to_mem, .none, .none } },
120316 },
120317 .extra_temps = .{
120318 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120319 .unused,
120320 .unused,
120321 .unused,
120322 .unused,
120323 .unused,
120324 .unused,
120325 .unused,
120326 .unused,
120327 .unused,
120328 .unused,
120329 },
120330 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
120331 .clobbers = .{ .eflags = true },
120332 .each = .{ .once = &.{
120333 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ },
120334 .{ ._, ._, .movzx, .dst0d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ },
120335 .{ .@"0:", ._, mir_tag, .dst0w, .memi(.src0w, .tmp0), ._, ._ },
120336 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
120337 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120338 } },
120339 }, .{
120340 .required_features = .{ .sse, null, null, null },
120341 .dst_constraints = .{ .{ .int = .dword }, .any },
120342 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
120343 .patterns = &.{
120344 .{ .src = .{ .mut_mem, .none, .none } },
120345 .{ .src = .{ .mut_gpr, .none, .none } },
120346 .{ .src = .{ .to_mut_sse, .none, .none } },
120347 },
120348 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120349 .each = .{ .once = &.{} },
120350 }, .{
120351 .dst_constraints = .{ .{ .int = .dword }, .any },
120352 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
120353 .patterns = &.{
120354 .{ .src = .{ .mut_mem, .none, .none } },
120355 .{ .src = .{ .to_mut_gpr, .none, .none } },
120356 },
120357 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120358 .each = .{ .once = &.{} },
120359 }, .{
120360 .required_features = .{ .avx, null, null, null },
120361 .dst_constraints = .{ .{ .int = .dword }, .any },
120362 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
120363 .patterns = &.{
120364 .{ .src = .{ .to_sse, .none, .none } },
120365 },
120366 .extra_temps = .{
120367 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120368 .unused,
120369 .unused,
120370 .unused,
120371 .unused,
120372 .unused,
120373 .unused,
120374 .unused,
120375 .unused,
120376 .unused,
120377 .unused,
120378 },
120379 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120380 .each = .{ .once = &.{
120381 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
120382 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120383 } },
120384 }, .{
120385 .required_features = .{ .sse2, null, null, null },
120386 .dst_constraints = .{ .{ .int = .dword }, .any },
120387 .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any },
120388 .patterns = &.{
120389 .{ .src = .{ .to_mut_sse, .none, .none } },
120390 },
120391 .extra_temps = .{
120392 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120393 .unused,
120394 .unused,
120395 .unused,
120396 .unused,
120397 .unused,
120398 .unused,
120399 .unused,
120400 .unused,
120401 .unused,
120402 .unused,
120403 },
120404 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120405 .each = .{ .once = &.{
120406 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
120407 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120408 } },
120409 }, .{
120410 .required_features = .{ .avx, null, null, null },
120411 .dst_constraints = .{ .{ .int = .dword }, .any },
120412 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
120413 .patterns = &.{
120414 .{ .src = .{ .to_sse, .none, .none } },
120415 },
120416 .extra_temps = .{
120417 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120418 .unused,
120419 .unused,
120420 .unused,
120421 .unused,
120422 .unused,
120423 .unused,
120424 .unused,
120425 .unused,
120426 .unused,
120427 .unused,
120428 },
120429 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120430 .each = .{ .once = &.{
120431 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
120432 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120433 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
120434 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120435 } },
120436 }, .{
120437 .required_features = .{ .sse2, null, null, null },
120438 .dst_constraints = .{ .{ .int = .dword }, .any },
120439 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
120440 .patterns = &.{
120441 .{ .src = .{ .to_mut_sse, .none, .none } },
120442 },
120443 .extra_temps = .{
120444 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120445 .unused,
120446 .unused,
120447 .unused,
120448 .unused,
120449 .unused,
120450 .unused,
120451 .unused,
120452 .unused,
120453 .unused,
120454 .unused,
120455 },
120456 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120457 .each = .{ .once = &.{
120458 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
120459 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120460 .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
120461 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120462 } },
120463 }, .{
120464 .required_features = .{ .avx, null, null, null },
120465 .dst_constraints = .{ .{ .int = .dword }, .any },
120466 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
120467 .patterns = &.{
120468 .{ .src = .{ .to_sse, .none, .none } },
120469 },
120470 .extra_temps = .{
120471 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120472 .unused,
120473 .unused,
120474 .unused,
120475 .unused,
120476 .unused,
120477 .unused,
120478 .unused,
120479 .unused,
120480 .unused,
120481 .unused,
120482 },
120483 .dst_temps = .{ .{ .rc = .sse }, .unused },
120484 .each = .{ .once = &.{
120485 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
120486 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120487 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ },
120488 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120489 } },
120490 }, .{
120491 .required_features = .{ .sse2, null, null, null },
120492 .dst_constraints = .{ .{ .int = .dword }, .any },
120493 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
120494 .patterns = &.{
120495 .{ .src = .{ .to_mut_sse, .none, .none } },
120496 },
120497 .extra_temps = .{
120498 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120499 .unused,
120500 .unused,
120501 .unused,
120502 .unused,
120503 .unused,
120504 .unused,
120505 .unused,
120506 .unused,
120507 .unused,
120508 .unused,
120509 },
120510 .dst_temps = .{ .{ .ref = .src0 }, .unused },
120511 .each = .{ .once = &.{
120512 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
120513 .{ ._, .p_, mir_tag, .tmp0x, .src0x, ._, ._ },
120514 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ },
120515 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
120516 } },
120517 }, .{
120518 .required_features = .{ .avx2, null, null, null },
120519 .dst_constraints = .{ .{ .int = .dword }, .any },
120520 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
120521 .patterns = &.{
120522 .{ .src = .{ .to_sse, .none, .none } },
120523 },
120524 .extra_temps = .{
120525 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120526 .unused,
120527 .unused,
120528 .unused,
120529 .unused,
120530 .unused,
120531 .unused,
120532 .unused,
120533 .unused,
120534 .unused,
120535 .unused,
120536 },
120537 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120538 .each = .{ .once = &.{
120539 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
120540 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120541 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
120542 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120543 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
120544 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120545 } },
120546 }, .{
120547 .required_features = .{ .avx, null, null, null },
120548 .dst_constraints = .{ .{ .int = .dword }, .any },
120549 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
120550 .patterns = &.{
120551 .{ .src = .{ .to_sse, .none, .none } },
120552 },
120553 .extra_temps = .{
120554 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120555 .unused,
120556 .unused,
120557 .unused,
120558 .unused,
120559 .unused,
120560 .unused,
120561 .unused,
120562 .unused,
120563 .unused,
120564 .unused,
120565 },
120566 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120567 .each = .{ .once = &.{
120568 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
120569 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
120570 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
120571 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120572 .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
120573 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120574 } },
120575 }, .{
120576 .required_features = .{ .avx2, null, null, null },
120577 .dst_constraints = .{ .{ .int = .dword }, .any },
120578 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
120579 .patterns = &.{
120580 .{ .src = .{ .to_sse, .none, .none } },
120581 },
120582 .extra_temps = .{
120583 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
120584 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120585 .ref = .src0,
120586 .invert = switch (mir_tag) {
120587 else => unreachable,
120588 .@"and" => true,
120589 .@"or", .xor => false,
120590 },
120591 } } },
120592 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120593 .unused,
120594 .unused,
120595 .unused,
120596 .unused,
120597 .unused,
120598 .unused,
120599 .unused,
120600 .unused,
120601 },
120602 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120603 .each = .{ .once = &.{
120604 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120605 .{ ._, .vp_, switch (mir_tag) {
120606 else => unreachable,
120607 .@"and" => .@"or",
120608 .@"or", .xor => .@"and",
120609 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
120610 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120611 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120612 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
120613 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120614 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
120615 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120616 } },
120617 }, .{
120618 .required_features = .{ .avx, null, null, null },
120619 .dst_constraints = .{ .{ .int = .dword }, .any },
120620 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
120621 .patterns = &.{
120622 .{ .src = .{ .to_sse, .none, .none } },
120623 },
120624 .extra_temps = .{
120625 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
120626 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120627 .ref = .src0,
120628 .invert = switch (mir_tag) {
120629 else => unreachable,
120630 .@"and" => true,
120631 .@"or", .xor => false,
120632 },
120633 } } },
120634 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120635 .unused,
120636 .unused,
120637 .unused,
120638 .unused,
120639 .unused,
120640 .unused,
120641 .unused,
120642 .unused,
120643 },
120644 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120645 .each = .{ .once = &.{
120646 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120647 .{ ._, .v_ps, switch (mir_tag) {
120648 else => unreachable,
120649 .@"and" => .@"or",
120650 .@"or", .xor => .@"and",
120651 }, .dst0y, .src0y, .lea(.tmp0y), ._ },
120652 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120653 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120654 .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ },
120655 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120656 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
120657 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120658 } },
120659 }, .{
120660 .required_features = .{ .avx512f, null, null, null },
120661 .dst_constraints = .{ .{ .int = .dword }, .any },
120662 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
120663 .patterns = &.{
120664 .{ .src = .{ .to_mem, .none, .none } },
120665 },
120666 .extra_temps = .{
120667 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120668 .unused,
120669 .unused,
120670 .unused,
120671 .unused,
120672 .unused,
120673 .unused,
120674 .unused,
120675 .unused,
120676 .unused,
120677 .unused,
120678 },
120679 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120680 .each = .{ .once = &.{
120681 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
120682 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
120683 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
120684 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120685 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
120686 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120687 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ },
120688 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
120689 } },
120690 }, .{
120691 .required_features = .{ .avx512f, null, null, null },
120692 .dst_constraints = .{ .{ .int = .dword }, .any },
120693 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
120694 .patterns = &.{
120695 .{ .src = .{ .to_mem, .none, .none } },
120696 },
120697 .extra_temps = .{
120698 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
120699 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
120700 .ref = .src0,
120701 .invert = switch (mir_tag) {
120702 else => unreachable,
120703 .@"and" => true,
120704 .@"or", .xor => false,
120705 },
120706 } } },
120707 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
120708 .unused,
120709 .unused,
120710 .unused,
120711 .unused,
120712 .unused,
120713 .unused,
120714 .unused,
120715 .unused,
120716 },
120717 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
120718 .each = .{ .once = &.{
120719 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120720 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
120721 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
120722 .{ ._, .vp_, switch (mir_tag) {
120723 else => unreachable,
120724 .@"and" => .@"or",
120725 .@"or", .xor => .@"and",
120726 }, .dst0y, .dst0y, .lea(.tmp0y), ._ },
120727 .{ ._, .vp_, switch (mir_tag) {
120728 else => unreachable,
120729 .@"and" => .@"or",
120730 .@"or", .xor => .@"and",
120731 }, .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
120732 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
120733 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120734 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120735 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
120736 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120737 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
120738 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120739 } },
120740 }, .{
120741 .required_features = .{ .avx2, null, null, null },
120742 .dst_constraints = .{ .{ .int = .dword }, .any },
120743 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
120744 .patterns = &.{
120745 .{ .src = .{ .to_mem, .none, .none } },
120746 },
120747 .extra_temps = .{
120748 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120749 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120750 .unused,
120751 .unused,
120752 .unused,
120753 .unused,
120754 .unused,
120755 .unused,
120756 .unused,
120757 .unused,
120758 .unused,
120759 },
120760 .dst_temps = .{ .{ .rc = .sse }, .unused },
120761 .each = .{ .once = &.{
120762 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
120763 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
120764 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120765 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120766 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120767 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
120768 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120769 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
120770 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120771 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
120772 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120773 } },
120774 }, .{
120775 .required_features = .{ .avx, null, null, null },
120776 .dst_constraints = .{ .{ .int = .dword }, .any },
120777 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
120778 .patterns = &.{
120779 .{ .src = .{ .to_mem, .none, .none } },
120780 },
120781 .extra_temps = .{
120782 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120783 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120784 .unused,
120785 .unused,
120786 .unused,
120787 .unused,
120788 .unused,
120789 .unused,
120790 .unused,
120791 .unused,
120792 .unused,
120793 },
120794 .dst_temps = .{ .{ .rc = .sse }, .unused },
120795 .each = .{ .once = &.{
120796 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
120797 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
120798 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120799 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120800 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120801 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
120802 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120803 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
120804 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120805 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
120806 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
120807 } },
120808 }, .{
120809 .required_features = .{ .sse2, null, null, null },
120810 .dst_constraints = .{ .{ .int = .dword }, .any },
120811 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
120812 .patterns = &.{
120813 .{ .src = .{ .to_mem, .none, .none } },
120814 },
120815 .extra_temps = .{
120816 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120817 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120818 .unused,
120819 .unused,
120820 .unused,
120821 .unused,
120822 .unused,
120823 .unused,
120824 .unused,
120825 .unused,
120826 .unused,
120827 },
120828 .dst_temps = .{ .{ .rc = .sse }, .unused },
120829 .each = .{ .once = &.{
120830 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
120831 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
120832 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
120833 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
120834 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120835 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
120836 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
120837 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ },
120838 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
120839 } },
120840 }, .{
120841 .required_features = .{ .avx512f, null, null, null },
120842 .dst_constraints = .{ .{ .int = .dword }, .any },
120843 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .dword } }, .any, .any },
120844 .patterns = &.{
120845 .{ .src = .{ .to_mem, .none, .none } },
120846 },
120847 .extra_temps = .{
120848 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120849 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
120850 .ref = .src0,
120851 .invert = switch (mir_tag) {
120852 else => unreachable,
120853 .@"and" => true,
120854 .@"or", .xor => false,
120855 },
120856 } } },
120857 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
120858 .unused,
120859 .unused,
120860 .unused,
120861 .unused,
120862 .unused,
120863 .unused,
120864 .unused,
120865 .unused,
120866 },
120867 .dst_temps = .{ .{ .rc = .sse }, .unused },
120868 .each = .{ .once = &.{
120869 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120870 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
120871 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
120872 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
120873 .{ ._, .vp_, switch (mir_tag) {
120874 else => unreachable,
120875 .@"and" => .@"or",
120876 .@"or", .xor => .@"and",
120877 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
120878 .{ ._, .vp_, switch (mir_tag) {
120879 else => unreachable,
120880 .@"and" => .@"or",
120881 .@"or", .xor => .@"and",
120882 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
120883 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
120884 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120885 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
120886 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120887 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
120888 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120889 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120890 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
120891 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120892 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
120893 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120894 } },
120895 }, .{
120896 .required_features = .{ .avx2, null, null, null },
120897 .dst_constraints = .{ .{ .int = .dword }, .any },
120898 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
120899 .patterns = &.{
120900 .{ .src = .{ .to_mem, .none, .none } },
120901 },
120902 .extra_temps = .{
120903 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120904 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120905 .ref = .src0,
120906 .invert = switch (mir_tag) {
120907 else => unreachable,
120908 .@"and" => true,
120909 .@"or", .xor => false,
120910 },
120911 } } },
120912 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
120913 .unused,
120914 .unused,
120915 .unused,
120916 .unused,
120917 .unused,
120918 .unused,
120919 .unused,
120920 .unused,
120921 },
120922 .dst_temps = .{ .{ .rc = .sse }, .unused },
120923 .each = .{ .once = &.{
120924 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120925 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
120926 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
120927 .{ ._, .vp_, switch (mir_tag) {
120928 else => unreachable,
120929 .@"and" => .@"or",
120930 .@"or", .xor => .@"and",
120931 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
120932 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120933 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120934 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120935 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120936 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120937 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
120938 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120939 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
120940 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120941 } },
120942 }, .{
120943 .required_features = .{ .avx, null, null, null },
120944 .dst_constraints = .{ .{ .int = .dword }, .any },
120945 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any },
120946 .patterns = &.{
120947 .{ .src = .{ .to_mem, .none, .none } },
120948 },
120949 .extra_temps = .{
120950 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120951 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
120952 .ref = .src0,
120953 .invert = switch (mir_tag) {
120954 else => unreachable,
120955 .@"and" => true,
120956 .@"or", .xor => false,
120957 },
120958 } } },
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 },
120969 .dst_temps = .{ .{ .rc = .sse }, .unused },
120970 .each = .{ .once = &.{
120971 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
120972 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
120973 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
120974 .{ ._, .v_ps, switch (mir_tag) {
120975 else => unreachable,
120976 .@"and" => .@"or",
120977 .@"or", .xor => .@"and",
120978 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
120979 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
120980 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
120981 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
120982 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
120983 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120984 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
120985 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120986 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) },
120987 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
120988 } },
120989 }, .{
120990 .required_features = .{ .sse2, null, null, null },
120991 .dst_constraints = .{ .{ .int = .dword }, .any },
120992 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any },
120993 .patterns = &.{
120994 .{ .src = .{ .to_mem, .none, .none } },
120995 },
120996 .extra_temps = .{
120997 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
120998 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
120999 .ref = .src0,
121000 .invert = switch (mir_tag) {
121001 else => unreachable,
121002 .@"and" => true,
121003 .@"or", .xor => false,
121004 },
121005 } } },
121006 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
121007 .unused,
121008 .unused,
121009 .unused,
121010 .unused,
121011 .unused,
121012 .unused,
121013 .unused,
121014 .unused,
121015 },
121016 .dst_temps = .{ .{ .rc = .sse }, .unused },
121017 .each = .{ .once = &.{
121018 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121019 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
121020 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
121021 .{ ._, .p_, switch (mir_tag) {
121022 else => unreachable,
121023 .@"and" => .@"or",
121024 .@"or", .xor => .@"and",
121025 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
121026 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
121027 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
121028 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121029 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
121030 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
121031 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ },
121032 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
121033 } },
121034 }, .{
121035 .dst_constraints = .{ .{ .int = .dword }, .any },
121036 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any },
121037 .patterns = &.{
121038 .{ .src = .{ .to_mem, .none, .none } },
121039 },
121040 .extra_temps = .{
121041 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121042 .unused,
121043 .unused,
121044 .unused,
121045 .unused,
121046 .unused,
121047 .unused,
121048 .unused,
121049 .unused,
121050 .unused,
121051 .unused,
121052 },
121053 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
121054 .clobbers = .{ .eflags = true },
121055 .each = .{ .once = &.{
121056 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ },
121057 .{ ._, ._, .mov, .dst0d, .memad(.src0d, .add_unaligned_size, -4), ._, ._ },
121058 .{ .@"0:", ._, mir_tag, .dst0d, .memi(.src0d, .tmp0), ._, ._ },
121059 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
121060 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121061 } },
121062 }, .{
121063 .required_features = .{ .sse, null, null, null },
121064 .dst_constraints = .{ .{ .int = .qword }, .any },
121065 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
121066 .patterns = &.{
121067 .{ .src = .{ .mut_mem, .none, .none } },
121068 .{ .src = .{ .mut_gpr, .none, .none } },
121069 .{ .src = .{ .to_mut_sse, .none, .none } },
121070 },
121071 .dst_temps = .{ .{ .ref = .src0 }, .unused },
121072 .each = .{ .once = &.{} },
121073 }, .{
121074 .required_features = .{ .@"64bit", null, null, null },
121075 .dst_constraints = .{ .{ .int = .qword }, .any },
121076 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
121077 .patterns = &.{
121078 .{ .src = .{ .mut_mem, .none, .none } },
121079 .{ .src = .{ .to_mut_gpr, .none, .none } },
121080 },
121081 .dst_temps = .{ .{ .ref = .src0 }, .unused },
121082 .each = .{ .once = &.{} },
121083 }, .{
121084 .required_features = .{ .avx, null, null, null },
121085 .dst_constraints = .{ .{ .int = .qword }, .any },
121086 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
121087 .patterns = &.{
121088 .{ .src = .{ .to_sse, .none, .none } },
121089 },
121090 .extra_temps = .{
121091 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121092 .unused,
121093 .unused,
121094 .unused,
121095 .unused,
121096 .unused,
121097 .unused,
121098 .unused,
121099 .unused,
121100 .unused,
121101 .unused,
121102 },
121103 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121104 .each = .{ .once = &.{
121105 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
121106 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121107 } },
121108 }, .{
121109 .required_features = .{ .sse2, null, null, null },
121110 .dst_constraints = .{ .{ .int = .qword }, .any },
121111 .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
121112 .patterns = &.{
121113 .{ .src = .{ .to_mut_sse, .none, .none } },
121114 },
121115 .extra_temps = .{
121116 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121117 .unused,
121118 .unused,
121119 .unused,
121120 .unused,
121121 .unused,
121122 .unused,
121123 .unused,
121124 .unused,
121125 .unused,
121126 .unused,
121127 },
121128 .dst_temps = .{ .{ .ref = .src0 }, .unused },
121129 .each = .{ .once = &.{
121130 .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
121131 .{ ._, .p_, mir_tag, .dst0x, .tmp0x, ._, ._ },
121132 } },
121133 }, .{
121134 .required_features = .{ .avx2, null, null, null },
121135 .dst_constraints = .{ .{ .int = .qword }, .any },
121136 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121137 .patterns = &.{
121138 .{ .src = .{ .to_sse, .none, .none } },
121139 },
121140 .extra_temps = .{
121141 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121142 .unused,
121143 .unused,
121144 .unused,
121145 .unused,
121146 .unused,
121147 .unused,
121148 .unused,
121149 .unused,
121150 .unused,
121151 .unused,
121152 },
121153 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121154 .each = .{ .once = &.{
121155 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121156 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121157 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
121158 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121159 } },
121160 }, .{
121161 .required_features = .{ .avx, null, null, null },
121162 .dst_constraints = .{ .{ .int = .qword }, .any },
121163 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121164 .patterns = &.{
121165 .{ .src = .{ .to_sse, .none, .none } },
121166 },
121167 .extra_temps = .{
121168 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121169 .unused,
121170 .unused,
121171 .unused,
121172 .unused,
121173 .unused,
121174 .unused,
121175 .unused,
121176 .unused,
121177 .unused,
121178 .unused,
121179 },
121180 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121181 .each = .{ .once = &.{
121182 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121183 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121184 .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ },
121185 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121186 } },
121187 }, .{
121188 .required_features = .{ .avx2, null, null, null },
121189 .dst_constraints = .{ .{ .int = .qword }, .any },
121190 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121191 .patterns = &.{
121192 .{ .src = .{ .to_sse, .none, .none } },
121193 },
121194 .extra_temps = .{
121195 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121196 .unused,
121197 .unused,
121198 .unused,
121199 .unused,
121200 .unused,
121201 .unused,
121202 .unused,
121203 .unused,
121204 .unused,
121205 .unused,
121206 },
121207 .dst_temps = .{ .{ .rc = .sse }, .unused },
121208 .each = .{ .once = &.{
121209 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121210 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121211 .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ },
121212 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121213 } },
121214 }, .{
121215 .required_features = .{ .avx, null, null, null },
121216 .dst_constraints = .{ .{ .int = .qword }, .any },
121217 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121218 .patterns = &.{
121219 .{ .src = .{ .to_sse, .none, .none } },
121220 },
121221 .extra_temps = .{
121222 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121223 .unused,
121224 .unused,
121225 .unused,
121226 .unused,
121227 .unused,
121228 .unused,
121229 .unused,
121230 .unused,
121231 .unused,
121232 .unused,
121233 },
121234 .dst_temps = .{ .{ .rc = .sse }, .unused },
121235 .each = .{ .once = &.{
121236 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121237 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121238 .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ },
121239 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121240 } },
121241 }, .{
121242 .required_features = .{ .avx512f, null, null, null },
121243 .dst_constraints = .{ .{ .int = .qword }, .any },
121244 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
121245 .patterns = &.{
121246 .{ .src = .{ .to_mem, .none, .none } },
121247 },
121248 .extra_temps = .{
121249 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121250 .unused,
121251 .unused,
121252 .unused,
121253 .unused,
121254 .unused,
121255 .unused,
121256 .unused,
121257 .unused,
121258 .unused,
121259 .unused,
121260 },
121261 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121262 .each = .{ .once = &.{
121263 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
121264 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
121265 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
121266 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121267 .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b11_10_11_10), ._ },
121268 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121269 } },
121270 }, .{
121271 .required_features = .{ .avx512f, null, null, null },
121272 .dst_constraints = .{ .{ .int = .qword }, .any },
121273 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
121274 .patterns = &.{
121275 .{ .src = .{ .to_mem, .none, .none } },
121276 },
121277 .extra_temps = .{
121278 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
121279 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
121280 .ref = .src0,
121281 .invert = switch (mir_tag) {
121282 else => unreachable,
121283 .@"and" => true,
121284 .@"or", .xor => false,
121285 },
121286 } } },
121287 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
121288 .unused,
121289 .unused,
121290 .unused,
121291 .unused,
121292 .unused,
121293 .unused,
121294 .unused,
121295 .unused,
121296 },
121297 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121298 .each = .{ .once = &.{
121299 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121300 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
121301 .{ ._, .v_dqa, .mov, .tmp2y, .memd(.src0y, 32), ._, ._ },
121302 .{ ._, .vp_, switch (mir_tag) {
121303 else => unreachable,
121304 .@"and" => .@"or",
121305 .@"or", .xor => .@"and",
121306 }, .dst0y, .dst0y, .lea(.tmp0y), ._ },
121307 .{ ._, .vp_, switch (mir_tag) {
121308 else => unreachable,
121309 .@"and" => .@"or",
121310 .@"or", .xor => .@"and",
121311 }, .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ },
121312 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
121313 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121314 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121315 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
121316 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121317 } },
121318 }, .{
121319 .required_features = .{ .avx2, null, null, null },
121320 .dst_constraints = .{ .{ .int = .qword }, .any },
121321 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121322 .patterns = &.{
121323 .{ .src = .{ .to_mem, .none, .none } },
121324 },
121325 .extra_temps = .{
121326 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121327 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121328 .unused,
121329 .unused,
121330 .unused,
121331 .unused,
121332 .unused,
121333 .unused,
121334 .unused,
121335 .unused,
121336 .unused,
121337 },
121338 .dst_temps = .{ .{ .rc = .sse }, .unused },
121339 .each = .{ .once = &.{
121340 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
121341 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
121342 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121343 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121344 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121345 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
121346 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121347 .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
121348 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121349 } },
121350 }, .{
121351 .required_features = .{ .avx, null, null, null },
121352 .dst_constraints = .{ .{ .int = .qword }, .any },
121353 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121354 .patterns = &.{
121355 .{ .src = .{ .to_mem, .none, .none } },
121356 },
121357 .extra_temps = .{
121358 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121359 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121360 .unused,
121361 .unused,
121362 .unused,
121363 .unused,
121364 .unused,
121365 .unused,
121366 .unused,
121367 .unused,
121368 .unused,
121369 },
121370 .dst_temps = .{ .{ .rc = .sse }, .unused },
121371 .each = .{ .once = &.{
121372 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
121373 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
121374 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121375 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121376 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121377 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
121378 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121379 .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
121380 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121381 } },
121382 }, .{
121383 .required_features = .{ .sse2, null, null, null },
121384 .dst_constraints = .{ .{ .int = .qword }, .any },
121385 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
121386 .patterns = &.{
121387 .{ .src = .{ .to_mem, .none, .none } },
121388 },
121389 .extra_temps = .{
121390 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121391 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121392 .unused,
121393 .unused,
121394 .unused,
121395 .unused,
121396 .unused,
121397 .unused,
121398 .unused,
121399 .unused,
121400 .unused,
121401 },
121402 .dst_temps = .{ .{ .rc = .sse }, .unused },
121403 .each = .{ .once = &.{
121404 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
121405 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
121406 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
121407 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
121408 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121409 .{ ._, .p_d, .shuf, .tmp1x, .dst0x, .ui(0b11_10_11_10), ._ },
121410 .{ ._, .p_, mir_tag, .dst0x, .tmp1x, ._, ._ },
121411 } },
121412 }, .{
121413 .required_features = .{ .avx512f, null, null, null },
121414 .dst_constraints = .{ .{ .int = .qword }, .any },
121415 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .qword } }, .any, .any },
121416 .patterns = &.{
121417 .{ .src = .{ .to_mem, .none, .none } },
121418 },
121419 .extra_temps = .{
121420 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121421 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
121422 .ref = .src0,
121423 .invert = switch (mir_tag) {
121424 else => unreachable,
121425 .@"and" => true,
121426 .@"or", .xor => false,
121427 },
121428 } } },
121429 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
121430 .unused,
121431 .unused,
121432 .unused,
121433 .unused,
121434 .unused,
121435 .unused,
121436 .unused,
121437 .unused,
121438 },
121439 .dst_temps = .{ .{ .rc = .sse }, .unused },
121440 .each = .{ .once = &.{
121441 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121442 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
121443 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
121444 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
121445 .{ ._, .vp_, switch (mir_tag) {
121446 else => unreachable,
121447 .@"and" => .@"or",
121448 .@"or", .xor => .@"and",
121449 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
121450 .{ ._, .vp_, switch (mir_tag) {
121451 else => unreachable,
121452 .@"and" => .@"or",
121453 .@"or", .xor => .@"and",
121454 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
121455 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
121456 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121457 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
121458 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121459 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
121460 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121461 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121462 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
121463 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121464 } },
121465 }, .{
121466 .required_features = .{ .avx2, null, null, null },
121467 .dst_constraints = .{ .{ .int = .qword }, .any },
121468 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121469 .patterns = &.{
121470 .{ .src = .{ .to_mem, .none, .none } },
121471 },
121472 .extra_temps = .{
121473 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121474 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
121475 .ref = .src0,
121476 .invert = switch (mir_tag) {
121477 else => unreachable,
121478 .@"and" => true,
121479 .@"or", .xor => false,
121480 },
121481 } } },
121482 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121483 .unused,
121484 .unused,
121485 .unused,
121486 .unused,
121487 .unused,
121488 .unused,
121489 .unused,
121490 .unused,
121491 },
121492 .dst_temps = .{ .{ .rc = .sse }, .unused },
121493 .each = .{ .once = &.{
121494 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121495 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
121496 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
121497 .{ ._, .vp_, switch (mir_tag) {
121498 else => unreachable,
121499 .@"and" => .@"or",
121500 .@"or", .xor => .@"and",
121501 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
121502 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121503 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121504 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121505 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121506 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121507 .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
121508 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121509 } },
121510 }, .{
121511 .required_features = .{ .avx, null, null, null },
121512 .dst_constraints = .{ .{ .int = .qword }, .any },
121513 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any },
121514 .patterns = &.{
121515 .{ .src = .{ .to_mem, .none, .none } },
121516 },
121517 .extra_temps = .{
121518 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121519 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
121520 .ref = .src0,
121521 .invert = switch (mir_tag) {
121522 else => unreachable,
121523 .@"and" => true,
121524 .@"or", .xor => false,
121525 },
121526 } } },
121527 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121528 .unused,
121529 .unused,
121530 .unused,
121531 .unused,
121532 .unused,
121533 .unused,
121534 .unused,
121535 .unused,
121536 },
121537 .dst_temps = .{ .{ .rc = .sse }, .unused },
121538 .each = .{ .once = &.{
121539 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121540 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
121541 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
121542 .{ ._, .v_ps, switch (mir_tag) {
121543 else => unreachable,
121544 .@"and" => .@"or",
121545 .@"or", .xor => .@"and",
121546 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
121547 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121548 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121549 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121550 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121551 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121552 .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) },
121553 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121554 } },
121555 }, .{
121556 .required_features = .{ .sse2, null, null, null },
121557 .dst_constraints = .{ .{ .int = .qword }, .any },
121558 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any },
121559 .patterns = &.{
121560 .{ .src = .{ .to_mem, .none, .none } },
121561 },
121562 .extra_temps = .{
121563 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121564 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
121565 .ref = .src0,
121566 .invert = switch (mir_tag) {
121567 else => unreachable,
121568 .@"and" => true,
121569 .@"or", .xor => false,
121570 },
121571 } } },
121572 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
121573 .unused,
121574 .unused,
121575 .unused,
121576 .unused,
121577 .unused,
121578 .unused,
121579 .unused,
121580 .unused,
121581 },
121582 .dst_temps = .{ .{ .rc = .sse }, .unused },
121583 .each = .{ .once = &.{
121584 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121585 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
121586 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
121587 .{ ._, .p_, switch (mir_tag) {
121588 else => unreachable,
121589 .@"and" => .@"or",
121590 .@"or", .xor => .@"and",
121591 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
121592 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
121593 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
121594 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121595 .{ ._, .p_d, .shuf, .tmp2x, .dst0x, .ui(0b11_10_11_10), ._ },
121596 .{ ._, .p_, mir_tag, .dst0x, .tmp2x, ._, ._ },
121597 } },
121598 }, .{
121599 .required_features = .{ .@"64bit", null, null, null },
121600 .dst_constraints = .{ .{ .int = .qword }, .any },
121601 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any },
121602 .patterns = &.{
121603 .{ .src = .{ .to_mem, .none, .none } },
121604 },
121605 .extra_temps = .{
121606 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121607 .unused,
121608 .unused,
121609 .unused,
121610 .unused,
121611 .unused,
121612 .unused,
121613 .unused,
121614 .unused,
121615 .unused,
121616 .unused,
121617 },
121618 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
121619 .clobbers = .{ .eflags = true },
121620 .each = .{ .once = &.{
121621 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ },
121622 .{ ._, ._, .mov, .dst0q, .memad(.src0q, .add_unaligned_size, -8), ._, ._ },
121623 .{ .@"0:", ._, mir_tag, .dst0q, .memi(.src0q, .tmp0), ._, ._ },
121624 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
121625 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121626 } },
121627 }, .{
121628 .required_features = .{ .sse, null, null, null },
121629 .dst_constraints = .{ .{ .int = .xword }, .any },
121630 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
121631 .patterns = &.{
121632 .{ .src = .{ .mut_mem, .none, .none } },
121633 .{ .src = .{ .mut_gpr, .none, .none } },
121634 .{ .src = .{ .to_mut_sse, .none, .none } },
121635 },
121636 .dst_temps = .{ .{ .ref = .src0 }, .unused },
121637 .each = .{ .once = &.{} },
121638 }, .{
121639 .dst_constraints = .{ .{ .int = .xword }, .any },
121640 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
121641 .patterns = &.{
121642 .{ .src = .{ .to_mut_mem, .none, .none } },
121643 },
121644 .dst_temps = .{ .{ .ref = .src0 }, .unused },
121645 .each = .{ .once = &.{} },
121646 }, .{
121647 .required_features = .{ .avx2, null, null, null },
121648 .dst_constraints = .{ .{ .int = .xword }, .any },
121649 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
121650 .patterns = &.{
121651 .{ .src = .{ .to_sse, .none, .none } },
121652 },
121653 .extra_temps = .{
121654 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
121655 .unused,
121656 .unused,
121657 .unused,
121658 .unused,
121659 .unused,
121660 .unused,
121661 .unused,
121662 .unused,
121663 .unused,
121664 .unused,
121665 },
121666 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121667 .each = .{ .once = &.{
121668 .{ ._, .v_i128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121669 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121670 } },
121671 }, .{
121672 .required_features = .{ .avx, null, null, null },
121673 .dst_constraints = .{ .{ .int = .xword }, .any },
121674 .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
121675 .patterns = &.{
121676 .{ .src = .{ .to_sse, .none, .none } },
121677 },
121678 .extra_temps = .{
121679 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
121680 .unused,
121681 .unused,
121682 .unused,
121683 .unused,
121684 .unused,
121685 .unused,
121686 .unused,
121687 .unused,
121688 .unused,
121689 .unused,
121690 },
121691 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121692 .each = .{ .once = &.{
121693 .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ },
121694 .{ ._, .v_ps, mir_tag, .dst0x, .src0x, .tmp0x, ._ },
121695 } },
121696 }, .{
121697 .required_features = .{ .avx512f, null, null, null },
121698 .dst_constraints = .{ .{ .int = .xword }, .any },
121699 .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .zword, .is = .xword } }, .any, .any },
121700 .patterns = &.{
121701 .{ .src = .{ .to_mem, .none, .none } },
121702 },
121703 .extra_temps = .{
121704 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
121705 .unused,
121706 .unused,
121707 .unused,
121708 .unused,
121709 .unused,
121710 .unused,
121711 .unused,
121712 .unused,
121713 .unused,
121714 .unused,
121715 },
121716 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
121717 .each = .{ .once = &.{
121718 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
121719 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
121720 .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ },
121721 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121722 } },
121723 }, .{
121724 .required_features = .{ .avx512f, null, null, null },
121725 .dst_constraints = .{ .{ .int = .xword }, .any },
121726 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .xword } }, .any, .any },
121727 .patterns = &.{
121728 .{ .src = .{ .to_mem, .none, .none } },
121729 },
121730 .extra_temps = .{
121731 .{ .type = .vector_2_u128, .kind = .{ .rc = .sse } },
121732 .unused,
121733 .unused,
121734 .unused,
121735 .unused,
121736 .unused,
121737 .unused,
121738 .unused,
121739 .unused,
121740 .unused,
121741 .unused,
121742 },
121743 .dst_temps = .{ .{ .rc = .sse }, .unused },
121744 .each = .{ .once = &.{
121745 .{ ._, .v_dqa, .mov, .tmp0y, .mem(.src0y), ._, ._ },
121746 .{ ._, .vp_, mir_tag, .dst0x, .tmp0x, .memd(.src0x, 32), ._ },
121747 .{ ._, .v_i128, .extract, .tmp0x, .tmp0y, .ui(1), ._ },
121748 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp0x, ._ },
121749 } },
121750 }, .{
121751 .required_features = .{ .avx2, null, null, null },
121752 .dst_constraints = .{ .{ .int = .xword }, .any },
121753 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
121754 .patterns = &.{
121755 .{ .src = .{ .to_mem, .none, .none } },
121756 },
121757 .extra_temps = .{
121758 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121759 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
121760 .unused,
121761 .unused,
121762 .unused,
121763 .unused,
121764 .unused,
121765 .unused,
121766 .unused,
121767 .unused,
121768 .unused,
121769 },
121770 .dst_temps = .{ .{ .rc = .sse }, .unused },
121771 .each = .{ .once = &.{
121772 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
121773 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
121774 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121775 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121776 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121777 .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
121778 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121779 } },
121780 }, .{
121781 .required_features = .{ .avx, null, null, null },
121782 .dst_constraints = .{ .{ .int = .xword }, .any },
121783 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
121784 .patterns = &.{
121785 .{ .src = .{ .to_mem, .none, .none } },
121786 },
121787 .extra_temps = .{
121788 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121789 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
121790 .unused,
121791 .unused,
121792 .unused,
121793 .unused,
121794 .unused,
121795 .unused,
121796 .unused,
121797 .unused,
121798 .unused,
121799 },
121800 .dst_temps = .{ .{ .rc = .sse }, .unused },
121801 .each = .{ .once = &.{
121802 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
121803 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
121804 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121805 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121806 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121807 .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ },
121808 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp1x, ._ },
121809 } },
121810 }, .{
121811 .required_features = .{ .sse2, null, null, null },
121812 .dst_constraints = .{ .{ .int = .xword }, .any },
121813 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any },
121814 .patterns = &.{
121815 .{ .src = .{ .to_mem, .none, .none } },
121816 },
121817 .extra_temps = .{
121818 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121819 .unused,
121820 .unused,
121821 .unused,
121822 .unused,
121823 .unused,
121824 .unused,
121825 .unused,
121826 .unused,
121827 .unused,
121828 .unused,
121829 },
121830 .dst_temps = .{ .{ .rc = .sse }, .unused },
121831 .each = .{ .once = &.{
121832 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ },
121833 .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ },
121834 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
121835 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
121836 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121837 } },
121838 }, .{
121839 .required_features = .{ .avx512f, null, null, null },
121840 .dst_constraints = .{ .{ .int = .xword }, .any },
121841 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .xword } }, .any, .any },
121842 .patterns = &.{
121843 .{ .src = .{ .to_mem, .none, .none } },
121844 },
121845 .extra_temps = .{
121846 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121847 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
121848 .ref = .src0,
121849 .invert = switch (mir_tag) {
121850 else => unreachable,
121851 .@"and" => true,
121852 .@"or", .xor => false,
121853 },
121854 } } },
121855 .{ .type = .vector_2_u128, .kind = .{ .rc = .sse } },
121856 .unused,
121857 .unused,
121858 .unused,
121859 .unused,
121860 .unused,
121861 .unused,
121862 .unused,
121863 .unused,
121864 },
121865 .dst_temps = .{ .{ .rc = .sse }, .unused },
121866 .each = .{ .once = &.{
121867 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121868 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
121869 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
121870 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
121871 .{ ._, .vp_, switch (mir_tag) {
121872 else => unreachable,
121873 .@"and" => .@"or",
121874 .@"or", .xor => .@"and",
121875 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
121876 .{ ._, .vp_, switch (mir_tag) {
121877 else => unreachable,
121878 .@"and" => .@"or",
121879 .@"or", .xor => .@"and",
121880 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
121881 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
121882 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121883 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
121884 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121885 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
121886 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121887 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121888 } },
121889 }, .{
121890 .required_features = .{ .avx2, null, null, null },
121891 .dst_constraints = .{ .{ .int = .xword }, .any },
121892 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
121893 .patterns = &.{
121894 .{ .src = .{ .to_mem, .none, .none } },
121895 },
121896 .extra_temps = .{
121897 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121898 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
121899 .ref = .src0,
121900 .invert = switch (mir_tag) {
121901 else => unreachable,
121902 .@"and" => true,
121903 .@"or", .xor => false,
121904 },
121905 } } },
121906 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
121907 .unused,
121908 .unused,
121909 .unused,
121910 .unused,
121911 .unused,
121912 .unused,
121913 .unused,
121914 .unused,
121915 },
121916 .dst_temps = .{ .{ .rc = .sse }, .unused },
121917 .each = .{ .once = &.{
121918 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121919 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
121920 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
121921 .{ ._, .vp_, switch (mir_tag) {
121922 else => unreachable,
121923 .@"and" => .@"or",
121924 .@"or", .xor => .@"and",
121925 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
121926 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121927 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121928 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121929 .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121930 .{ ._, .vp_, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121931 } },
121932 }, .{
121933 .required_features = .{ .avx, null, null, null },
121934 .dst_constraints = .{ .{ .int = .xword }, .any },
121935 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any },
121936 .patterns = &.{
121937 .{ .src = .{ .to_mem, .none, .none } },
121938 },
121939 .extra_temps = .{
121940 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121941 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
121942 .ref = .src0,
121943 .invert = switch (mir_tag) {
121944 else => unreachable,
121945 .@"and" => true,
121946 .@"or", .xor => false,
121947 },
121948 } } },
121949 .{ .type = .vector_1_u128, .kind = .{ .rc = .sse } },
121950 .unused,
121951 .unused,
121952 .unused,
121953 .unused,
121954 .unused,
121955 .unused,
121956 .unused,
121957 .unused,
121958 },
121959 .dst_temps = .{ .{ .rc = .sse }, .unused },
121960 .each = .{ .once = &.{
121961 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
121962 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
121963 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
121964 .{ ._, .v_ps, switch (mir_tag) {
121965 else => unreachable,
121966 .@"and" => .@"or",
121967 .@"or", .xor => .@"and",
121968 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
121969 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
121970 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
121971 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
121972 .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ },
121973 .{ ._, .v_ps, mir_tag, .dst0x, .dst0x, .tmp2x, ._ },
121974 } },
121975 }, .{
121976 .required_features = .{ .sse2, null, null, null },
121977 .dst_constraints = .{ .{ .int = .xword }, .any },
121978 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any },
121979 .patterns = &.{
121980 .{ .src = .{ .to_mem, .none, .none } },
121981 },
121982 .extra_temps = .{
121983 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
121984 .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{
121985 .ref = .src0,
121986 .invert = switch (mir_tag) {
121987 else => unreachable,
121988 .@"and" => true,
121989 .@"or", .xor => false,
121990 },
121991 } } },
121992 .unused,
121993 .unused,
121994 .unused,
121995 .unused,
121996 .unused,
121997 .unused,
121998 .unused,
121999 .unused,
122000 .unused,
122001 },
122002 .dst_temps = .{ .{ .rc = .sse }, .unused },
122003 .each = .{ .once = &.{
122004 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122005 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
122006 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },
122007 .{ ._, .p_, switch (mir_tag) {
122008 else => unreachable,
122009 .@"and" => .@"or",
122010 .@"or", .xor => .@"and",
122011 }, .dst0x, .memad(.src0x, .add_size, -16), ._, ._ },
122012 .{ .@"0:", .p_, mir_tag, .dst0x, .memi(.src0x, .tmp0), ._, ._ },
122013 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122014 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122015 } },
122016 }, .{
122017 .required_features = .{ .avx, null, null, null },
122018 .dst_constraints = .{ .{ .int = .yword }, .any },
122019 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
122020 .patterns = &.{
122021 .{ .src = .{ .mut_mem, .none, .none } },
122022 .{ .src = .{ .mut_gpr, .none, .none } },
122023 .{ .src = .{ .to_mut_sse, .none, .none } },
122024 },
122025 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122026 .each = .{ .once = &.{} },
122027 }, .{
122028 .dst_constraints = .{ .{ .int = .yword }, .any },
122029 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
122030 .patterns = &.{
122031 .{ .src = .{ .to_mut_mem, .none, .none } },
122032 },
122033 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122034 .each = .{ .once = &.{} },
122035 }, .{
122036 .required_features = .{ .avx512f, null, null, null },
122037 .dst_constraints = .{ .{ .int = .yword }, .any },
122038 .src_constraints = .{ .{ .scalar_int = .{ .of = .zword, .is = .yword } }, .any, .any },
122039 .patterns = &.{
122040 .{ .src = .{ .to_mem, .none, .none } },
122041 },
122042 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122043 .each = .{ .once = &.{
122044 .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ },
122045 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ },
122046 } },
122047 }, .{
122048 .required_features = .{ .avx2, null, null, null },
122049 .dst_constraints = .{ .{ .int = .yword }, .any },
122050 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
122051 .patterns = &.{
122052 .{ .src = .{ .to_mem, .none, .none } },
122053 },
122054 .extra_temps = .{
122055 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122056 .unused,
122057 .unused,
122058 .unused,
122059 .unused,
122060 .unused,
122061 .unused,
122062 .unused,
122063 .unused,
122064 .unused,
122065 .unused,
122066 },
122067 .dst_temps = .{ .{ .rc = .sse }, .unused },
122068 .each = .{ .once = &.{
122069 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
122070 .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
122071 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122072 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122073 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122074 } },
122075 }, .{
122076 .required_features = .{ .avx, null, null, null },
122077 .dst_constraints = .{ .{ .int = .yword }, .any },
122078 .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
122079 .patterns = &.{
122080 .{ .src = .{ .to_mem, .none, .none } },
122081 },
122082 .extra_temps = .{
122083 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122084 .unused,
122085 .unused,
122086 .unused,
122087 .unused,
122088 .unused,
122089 .unused,
122090 .unused,
122091 .unused,
122092 .unused,
122093 .unused,
122094 },
122095 .dst_temps = .{ .{ .rc = .sse }, .unused },
122096 .each = .{ .once = &.{
122097 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ },
122098 .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ },
122099 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122100 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122101 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122102 } },
122103 }, .{
122104 .required_features = .{ .avx512f, null, null, null },
122105 .dst_constraints = .{ .{ .int = .yword }, .any },
122106 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .zword, .is = .yword } }, .any, .any },
122107 .patterns = &.{
122108 .{ .src = .{ .to_mem, .none, .none } },
122109 },
122110 .extra_temps = .{
122111 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122112 .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{
122113 .ref = .src0,
122114 .invert = switch (mir_tag) {
122115 else => unreachable,
122116 .@"and" => true,
122117 .@"or", .xor => false,
122118 },
122119 } } },
122120 .{ .type = .vector_1_u256, .kind = .{ .rc = .sse } },
122121 .unused,
122122 .unused,
122123 .unused,
122124 .unused,
122125 .unused,
122126 .unused,
122127 .unused,
122128 .unused,
122129 },
122130 .dst_temps = .{ .{ .rc = .sse }, .unused },
122131 .each = .{ .once = &.{
122132 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122133 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
122134 .{ ._, .v_dqa, .mov, .tmp2y, .lead(.tmp0y, 32), ._, ._ },
122135 .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ },
122136 .{ ._, .vp_, switch (mir_tag) {
122137 else => unreachable,
122138 .@"and" => .@"or",
122139 .@"or", .xor => .@"and",
122140 }, .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ },
122141 .{ ._, .vp_, switch (mir_tag) {
122142 else => unreachable,
122143 .@"and" => .@"or",
122144 .@"or", .xor => .@"and",
122145 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ },
122146 .{ .@"0:", .vp_, mir_tag, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ },
122147 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122148 .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ },
122149 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122150 .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .tmp2y, ._ },
122151 } },
122152 }, .{
122153 .required_features = .{ .avx2, null, null, null },
122154 .dst_constraints = .{ .{ .int = .yword }, .any },
122155 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
122156 .patterns = &.{
122157 .{ .src = .{ .to_mem, .none, .none } },
122158 },
122159 .extra_temps = .{
122160 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122161 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
122162 .ref = .src0,
122163 .invert = switch (mir_tag) {
122164 else => unreachable,
122165 .@"and" => true,
122166 .@"or", .xor => false,
122167 },
122168 } } },
122169 .unused,
122170 .unused,
122171 .unused,
122172 .unused,
122173 .unused,
122174 .unused,
122175 .unused,
122176 .unused,
122177 .unused,
122178 },
122179 .dst_temps = .{ .{ .rc = .sse }, .unused },
122180 .each = .{ .once = &.{
122181 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122182 .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ },
122183 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
122184 .{ ._, .vp_, switch (mir_tag) {
122185 else => unreachable,
122186 .@"and" => .@"or",
122187 .@"or", .xor => .@"and",
122188 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
122189 .{ .@"0:", .vp_, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122190 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122191 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122192 } },
122193 }, .{
122194 .required_features = .{ .avx, null, null, null },
122195 .dst_constraints = .{ .{ .int = .yword }, .any },
122196 .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any },
122197 .patterns = &.{
122198 .{ .src = .{ .to_mem, .none, .none } },
122199 },
122200 .extra_temps = .{
122201 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122202 .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{
122203 .ref = .src0,
122204 .invert = switch (mir_tag) {
122205 else => unreachable,
122206 .@"and" => true,
122207 .@"or", .xor => false,
122208 },
122209 } } },
122210 .unused,
122211 .unused,
122212 .unused,
122213 .unused,
122214 .unused,
122215 .unused,
122216 .unused,
122217 .unused,
122218 .unused,
122219 },
122220 .dst_temps = .{ .{ .rc = .sse }, .unused },
122221 .each = .{ .once = &.{
122222 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122223 .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ },
122224 .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ },
122225 .{ ._, .v_ps, switch (mir_tag) {
122226 else => unreachable,
122227 .@"and" => .@"or",
122228 .@"or", .xor => .@"and",
122229 }, .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ },
122230 .{ .@"0:", .v_ps, mir_tag, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ },
122231 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122232 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122233 } },
122234 }, .{
122235 .dst_constraints = .{ .any_int, .any },
122236 .src_constraints = .{ .{ .vec_len = 1 }, .any, .any },
122237 .patterns = &.{
122238 .{ .src = .{ .to_mut_mem, .none, .none } },
122239 },
122240 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122241 .each = .{ .once = &.{} },
122242 }, .{
122243 .required_features = .{ .@"64bit", null, null, null },
122244 .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any },
122245 .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any },
122246 .patterns = &.{
122247 .{ .src = .{ .to_mem, .none, .none } },
122248 },
122249 .extra_temps = .{
122250 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122251 .{ .type = .u32, .kind = .{ .reg = .rsi } },
122252 .{ .type = .usize, .kind = .{ .reg = .rdi } },
122253 .{ .type = .u64, .kind = .{ .reg = .rcx } },
122254 .unused,
122255 .unused,
122256 .unused,
122257 .unused,
122258 .unused,
122259 .unused,
122260 .unused,
122261 },
122262 .dst_temps = .{ .mem, .unused },
122263 .clobbers = .{ .eflags = true },
122264 .each = .{ .once = &.{
122265 .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_unaligned_size_sub_2_elem_size), ._, ._ },
122266 .{ ._, ._, .lea, .tmp1p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ },
122267 .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ },
122268 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_size_div_8), ._, ._ },
122269 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
122270 .{ .@"0:", ._, .mov, .tmp1d, .sia(-8, .dst0, .add_size), ._, ._ },
122271 .{ ._, ._, .lea, .tmp2q, .memi(.src0, .tmp0), ._, ._ },
122272 .{ .@"1:", ._, .mov, .tmp3q, .leai(.tmp2q, .tmp1), ._, ._ },
122273 .{ ._, ._, mir_tag, .memi(.dst0q, .tmp1), .tmp3q, ._, ._ },
122274 .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ },
122275 .{ ._, ._nb, .j, .@"1b", ._, ._, ._ },
122276 .{ ._, ._, .sub, .tmp0d, .sa(.dst0, .add_size), ._, ._ },
122277 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122278 } },
122279 } },
122280 },
122281 .Min, .Max, .Add, .Mul => unreachable,
122282 }) catch |err| switch (err) {
122283 error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{
122284 @tagName(air_tag),
122285 cg.typeOf(reduce.operand).fmt(pt),
122286 ops[0].tracking(cg),
122287 }),
122288 else => |e| return e,
122289 };
122290 try res[0].finish(inst, &.{reduce.operand}, &ops, cg);
122291 },
122292 .splat => |air_tag| if (use_old) try cg.airSplat(inst) else fallback: {
122293 const ty_op = air_datas[@intFromEnum(inst)].ty_op;
122294 if (cg.typeOf(ty_op.operand).toIntern() == .bool_type) break :fallback try cg.airSplat(inst);
122295 var ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
122296 var res: [1]Temp = undefined;
122297 cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{
122298 .required_features = .{ .avx2, null, null, null },
122299 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any },
122300 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122301 .patterns = &.{
122302 .{ .src = .{ .mem, .none, .none } },
122303 .{ .src = .{ .to_sse, .none, .none } },
122304 },
122305 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122306 .each = .{ .once = &.{
122307 .{ ._, .vp_b, .broadcast, .dst0x, .src0b, ._, ._ },
122308 } },
122309 }, .{
122310 .required_features = .{ .avx, null, null, null },
122311 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any },
122312 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122313 .patterns = &.{
122314 .{ .src = .{ .to_sse, .none, .none } },
122315 },
122316 .extra_temps = .{
122317 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
122318 .unused,
122319 .unused,
122320 .unused,
122321 .unused,
122322 .unused,
122323 .unused,
122324 .unused,
122325 .unused,
122326 .unused,
122327 .unused,
122328 },
122329 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122330 .each = .{ .once = &.{
122331 .{ ._, .vp_, .xor, .tmp0x, .tmp0x, .tmp0x, ._ },
122332 .{ ._, .vp_b, .shuf, .dst0x, .src0x, .tmp0x, ._ },
122333 } },
122334 }, .{
122335 .required_features = .{ .ssse3, null, null, null },
122336 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any },
122337 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122338 .patterns = &.{
122339 .{ .src = .{ .to_mut_sse, .none, .none } },
122340 },
122341 .extra_temps = .{
122342 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
122343 .unused,
122344 .unused,
122345 .unused,
122346 .unused,
122347 .unused,
122348 .unused,
122349 .unused,
122350 .unused,
122351 .unused,
122352 .unused,
122353 },
122354 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122355 .each = .{ .once = &.{
122356 .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ },
122357 .{ ._, .p_b, .shuf, .dst0x, .tmp0x, ._, ._ },
122358 } },
122359 }, .{
122360 .required_features = .{ .sse2, null, null, null },
122361 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any },
122362 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122363 .patterns = &.{
122364 .{ .src = .{ .to_mut_sse, .none, .none } },
122365 },
122366 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122367 .each = .{ .once = &.{
122368 .{ ._, .p_, .unpcklbw, .src0x, .src0x, ._, ._ },
122369 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
122370 .{ ._, .p_d, .shuf, .dst0x, .dst0x, .ui(0b00_00_00_00), ._ },
122371 } },
122372 }, .{
122373 .required_features = .{ .avx2, null, null, null },
122374 .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any },
122375 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122376 .patterns = &.{
122377 .{ .src = .{ .mem, .none, .none } },
122378 .{ .src = .{ .to_sse, .none, .none } },
122379 },
122380 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122381 .each = .{ .once = &.{
122382 .{ ._, .vp_b, .broadcast, .dst0y, .src0b, ._, ._ },
122383 } },
122384 }, .{
122385 .required_features = .{ .avx2, null, null, null },
122386 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any },
122387 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122388 .patterns = &.{
122389 .{ .src = .{ .mem, .none, .none } },
122390 .{ .src = .{ .to_sse, .none, .none } },
122391 },
122392 .extra_temps = .{
122393 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122394 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
122395 .unused,
122396 .unused,
122397 .unused,
122398 .unused,
122399 .unused,
122400 .unused,
122401 .unused,
122402 .unused,
122403 .unused,
122404 },
122405 .dst_temps = .{ .mem, .unused },
122406 .each = .{ .once = &.{
122407 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
122408 .{ ._, .vp_b, .broadcast, .tmp1y, .src0b, ._, ._ },
122409 .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
122410 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122411 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122412 } },
122413 }, .{
122414 .required_features = .{ .avx, null, null, null },
122415 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any },
122416 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122417 .patterns = &.{
122418 .{ .src = .{ .to_sse, .none, .none } },
122419 },
122420 .extra_temps = .{
122421 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
122422 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122423 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
122424 .unused,
122425 .unused,
122426 .unused,
122427 .unused,
122428 .unused,
122429 .unused,
122430 .unused,
122431 .unused,
122432 },
122433 .dst_temps = .{ .mem, .unused },
122434 .each = .{ .once = &.{
122435 .{ ._, .vp_, .xor, .tmp0x, .tmp0x, .tmp0x, ._ },
122436 .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_size), ._, ._ },
122437 .{ ._, .vp_b, .shuf, .tmp2x, .src0x, .tmp0x, ._ },
122438 .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp1), .tmp2x, ._, ._ },
122439 .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ },
122440 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122441 } },
122442 }, .{
122443 .required_features = .{ .ssse3, null, null, null },
122444 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any },
122445 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122446 .patterns = &.{
122447 .{ .src = .{ .to_mut_sse, .none, .none } },
122448 },
122449 .extra_temps = .{
122450 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
122451 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122452 .unused,
122453 .unused,
122454 .unused,
122455 .unused,
122456 .unused,
122457 .unused,
122458 .unused,
122459 .unused,
122460 .unused,
122461 },
122462 .dst_temps = .{ .mem, .unused },
122463 .each = .{ .once = &.{
122464 .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ },
122465 .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_size), ._, ._ },
122466 .{ ._, .p_b, .shuf, .src0x, .tmp0x, ._, ._ },
122467 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp1), .src0x, ._, ._ },
122468 .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ },
122469 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122470 } },
122471 }, .{
122472 .required_features = .{ .sse2, null, null, null },
122473 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any },
122474 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122475 .patterns = &.{
122476 .{ .src = .{ .to_mut_sse, .none, .none } },
122477 },
122478 .extra_temps = .{
122479 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122480 .unused,
122481 .unused,
122482 .unused,
122483 .unused,
122484 .unused,
122485 .unused,
122486 .unused,
122487 .unused,
122488 .unused,
122489 .unused,
122490 },
122491 .dst_temps = .{ .mem, .unused },
122492 .each = .{ .once = &.{
122493 .{ ._, .p_, .unpcklbw, .src0x, .src0x, ._, ._ },
122494 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
122495 .{ ._, .p_w, .shufl, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
122496 .{ ._, .p_d, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
122497 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
122498 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122499 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122500 } },
122501 }, .{
122502 .required_features = .{ .slow_incdec, null, null, null },
122503 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any },
122504 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122505 .patterns = &.{
122506 .{ .src = .{ .to_gpr, .none, .none } },
122507 },
122508 .extra_temps = .{
122509 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122510 .unused,
122511 .unused,
122512 .unused,
122513 .unused,
122514 .unused,
122515 .unused,
122516 .unused,
122517 .unused,
122518 .unused,
122519 .unused,
122520 },
122521 .dst_temps = .{ .mem, .unused },
122522 .each = .{ .once = &.{
122523 .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_size), ._, ._ },
122524 .{ .@"0:", ._, .mov, .memi(.dst0b, .tmp0), .src0b, ._, ._ },
122525 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
122526 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122527 } },
122528 }, .{
122529 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any },
122530 .src_constraints = .{ .{ .int = .byte }, .any, .any },
122531 .patterns = &.{
122532 .{ .src = .{ .to_gpr, .none, .none } },
122533 },
122534 .extra_temps = .{
122535 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122536 .unused,
122537 .unused,
122538 .unused,
122539 .unused,
122540 .unused,
122541 .unused,
122542 .unused,
122543 .unused,
122544 .unused,
122545 .unused,
122546 },
122547 .dst_temps = .{ .mem, .unused },
122548 .each = .{ .once = &.{
122549 .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_size), ._, ._ },
122550 .{ .@"0:", ._, .mov, .memi(.dst0b, .tmp0), .src0b, ._, ._ },
122551 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
122552 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
122553 } },
122554 }, .{
122555 .required_features = .{ .avx2, null, null, null },
122556 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any },
122557 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122558 .patterns = &.{
122559 .{ .src = .{ .mem, .none, .none } },
122560 .{ .src = .{ .to_sse, .none, .none } },
122561 },
122562 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122563 .each = .{ .once = &.{
122564 .{ ._, .vp_w, .broadcast, .dst0x, .src0w, ._, ._ },
122565 } },
122566 }, .{
122567 .required_features = .{ .avx, null, null, null },
122568 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any },
122569 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122570 .patterns = &.{
122571 .{ .src = .{ .to_sse, .none, .none } },
122572 },
122573 .extra_temps = .{
122574 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
122575 .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } },
122576 .unused,
122577 .unused,
122578 .unused,
122579 .unused,
122580 .unused,
122581 .unused,
122582 .unused,
122583 .unused,
122584 .unused,
122585 },
122586 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122587 .each = .{ .once = &.{
122588 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122589 .{ ._, .vp_b, .shuf, .dst0x, .src0x, .lea(.tmp0x), ._ },
122590 } },
122591 }, .{
122592 .required_features = .{ .ssse3, null, null, null },
122593 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any },
122594 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122595 .patterns = &.{
122596 .{ .src = .{ .to_mut_sse, .none, .none } },
122597 },
122598 .extra_temps = .{
122599 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
122600 .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } },
122601 .unused,
122602 .unused,
122603 .unused,
122604 .unused,
122605 .unused,
122606 .unused,
122607 .unused,
122608 .unused,
122609 .unused,
122610 },
122611 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122612 .each = .{ .once = &.{
122613 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122614 .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ },
122615 } },
122616 }, .{
122617 .required_features = .{ .sse2, null, null, null },
122618 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any },
122619 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122620 .patterns = &.{
122621 .{ .src = .{ .to_sse, .none, .none } },
122622 },
122623 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122624 .each = .{ .once = &.{
122625 .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
122626 .{ ._, .p_d, .shuf, .dst0x, .dst0x, .ui(0b00_00_00_00), ._ },
122627 } },
122628 }, .{
122629 .required_features = .{ .avx2, null, null, null },
122630 .dst_constraints = .{ .{ .scalar = .{ .of = .yword, .is = .word } }, .any },
122631 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122632 .patterns = &.{
122633 .{ .src = .{ .mem, .none, .none } },
122634 .{ .src = .{ .to_sse, .none, .none } },
122635 },
122636 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122637 .each = .{ .once = &.{
122638 .{ ._, .vp_w, .broadcast, .dst0y, .src0w, ._, ._ },
122639 } },
122640 }, .{
122641 .required_features = .{ .avx2, null, null, null },
122642 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .word } }, .any },
122643 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122644 .patterns = &.{
122645 .{ .src = .{ .mem, .none, .none } },
122646 .{ .src = .{ .to_sse, .none, .none } },
122647 },
122648 .extra_temps = .{
122649 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122650 .{ .type = .vector_16_u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
122651 .unused,
122652 .unused,
122653 .unused,
122654 .unused,
122655 .unused,
122656 .unused,
122657 .unused,
122658 .unused,
122659 .unused,
122660 },
122661 .dst_temps = .{ .mem, .unused },
122662 .each = .{ .once = &.{
122663 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
122664 .{ ._, .vp_w, .broadcast, .tmp1y, .src0w, ._, ._ },
122665 .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
122666 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122667 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122668 } },
122669 }, .{
122670 .required_features = .{ .avx, null, null, null },
122671 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any },
122672 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122673 .patterns = &.{
122674 .{ .src = .{ .to_sse, .none, .none } },
122675 },
122676 .extra_temps = .{
122677 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122678 .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } },
122679 .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
122680 .unused,
122681 .unused,
122682 .unused,
122683 .unused,
122684 .unused,
122685 .unused,
122686 .unused,
122687 .unused,
122688 },
122689 .dst_temps = .{ .mem, .unused },
122690 .each = .{ .once = &.{
122691 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122692 .{ ._, .vp_b, .shuf, .tmp2x, .src0x, .lea(.tmp0x), ._ },
122693 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
122694 .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp2x, ._, ._ },
122695 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122696 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122697 } },
122698 }, .{
122699 .required_features = .{ .ssse3, null, null, null },
122700 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any },
122701 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122702 .patterns = &.{
122703 .{ .src = .{ .to_mut_sse, .none, .none } },
122704 },
122705 .extra_temps = .{
122706 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122707 .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } },
122708 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
122709 .unused,
122710 .unused,
122711 .unused,
122712 .unused,
122713 .unused,
122714 .unused,
122715 .unused,
122716 .unused,
122717 },
122718 .dst_temps = .{ .mem, .unused },
122719 .each = .{ .once = &.{
122720 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
122721 .{ ._, .p_b, .shuf, .src0x, .lea(.tmp0x), ._, ._ },
122722 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
122723 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
122724 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122725 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122726 } },
122727 }, .{
122728 .required_features = .{ .sse2, null, null, null },
122729 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any },
122730 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122731 .patterns = &.{
122732 .{ .src = .{ .to_mut_sse, .none, .none } },
122733 },
122734 .extra_temps = .{
122735 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122736 .unused,
122737 .unused,
122738 .unused,
122739 .unused,
122740 .unused,
122741 .unused,
122742 .unused,
122743 .unused,
122744 .unused,
122745 .unused,
122746 },
122747 .dst_temps = .{ .mem, .unused },
122748 .each = .{ .once = &.{
122749 .{ ._, .p_w, .shufl, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
122750 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
122751 .{ ._, .p_d, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
122752 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
122753 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122754 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122755 } },
122756 }, .{
122757 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .word, .is = .word } }, .any },
122758 .src_constraints = .{ .{ .int_or_float = .word }, .any, .any },
122759 .patterns = &.{
122760 .{ .src = .{ .to_gpr, .none, .none } },
122761 },
122762 .extra_temps = .{
122763 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122764 .unused,
122765 .unused,
122766 .unused,
122767 .unused,
122768 .unused,
122769 .unused,
122770 .unused,
122771 .unused,
122772 .unused,
122773 .unused,
122774 },
122775 .dst_temps = .{ .mem, .unused },
122776 .each = .{ .once = &.{
122777 .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_size), ._, ._ },
122778 .{ .@"0:", ._, .mov, .memi(.dst0w, .tmp0), .src0w, ._, ._ },
122779 .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ },
122780 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122781 } },
122782 }, .{
122783 .required_features = .{ .avx2, null, null, null },
122784 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any },
122785 .src_constraints = .{ .{ .int = .dword }, .any, .any },
122786 .patterns = &.{
122787 .{ .src = .{ .mem, .none, .none } },
122788 .{ .src = .{ .to_sse, .none, .none } },
122789 },
122790 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122791 .each = .{ .once = &.{
122792 .{ ._, .vp_d, .broadcast, .dst0x, .src0d, ._, ._ },
122793 } },
122794 }, .{
122795 .required_features = .{ .avx2, null, null, null },
122796 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any },
122797 .src_constraints = .{ .{ .float = .dword }, .any, .any },
122798 .patterns = &.{
122799 .{ .src = .{ .mem, .none, .none } },
122800 .{ .src = .{ .to_sse, .none, .none } },
122801 },
122802 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122803 .each = .{ .once = &.{
122804 .{ ._, .v_ss, .broadcast, .dst0x, .src0d, ._, ._ },
122805 } },
122806 }, .{
122807 .required_features = .{ .avx, null, null, null },
122808 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .dword } }, .any },
122809 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
122810 .patterns = &.{
122811 .{ .src = .{ .mem, .none, .none } },
122812 },
122813 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122814 .each = .{ .once = &.{
122815 .{ ._, .v_ss, .broadcast, .dst0x, .src0d, ._, ._ },
122816 } },
122817 }, .{
122818 .required_features = .{ .avx, null, null, null },
122819 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any },
122820 .src_constraints = .{ .{ .int = .dword }, .any, .any },
122821 .patterns = &.{
122822 .{ .src = .{ .to_sse, .none, .none } },
122823 },
122824 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122825 .each = .{ .once = &.{
122826 .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
122827 } },
122828 }, .{
122829 .required_features = .{ .avx, null, null, null },
122830 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any },
122831 .src_constraints = .{ .{ .float = .dword }, .any, .any },
122832 .patterns = &.{
122833 .{ .src = .{ .to_sse, .none, .none } },
122834 },
122835 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122836 .each = .{ .once = &.{
122837 .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b00_00_00_00) },
122838 } },
122839 }, .{
122840 .required_features = .{ .sse2, null, null, null },
122841 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any },
122842 .src_constraints = .{ .{ .int = .dword }, .any, .any },
122843 .patterns = &.{
122844 .{ .src = .{ .to_sse, .none, .none } },
122845 },
122846 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122847 .each = .{ .once = &.{
122848 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
122849 } },
122850 }, .{
122851 .required_features = .{ .sse, null, null, null },
122852 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any },
122853 .src_constraints = .{ .{ .float = .dword }, .any, .any },
122854 .patterns = &.{
122855 .{ .src = .{ .mut_sse, .none, .none } },
122856 },
122857 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122858 .each = .{ .once = &.{
122859 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
122860 } },
122861 }, .{
122862 .required_features = .{ .sse2, null, null, null },
122863 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any },
122864 .src_constraints = .{ .{ .float = .dword }, .any, .any },
122865 .patterns = &.{
122866 .{ .src = .{ .sse, .none, .none } },
122867 },
122868 .dst_temps = .{ .{ .rc = .sse }, .unused },
122869 .each = .{ .once = &.{
122870 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
122871 } },
122872 }, .{
122873 .required_features = .{ .sse, null, null, null },
122874 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .dword } }, .any },
122875 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
122876 .patterns = &.{
122877 .{ .src = .{ .to_mut_sse, .none, .none } },
122878 },
122879 .dst_temps = .{ .{ .ref = .src0 }, .unused },
122880 .each = .{ .once = &.{
122881 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ },
122882 } },
122883 }, .{
122884 .required_features = .{ .avx2, null, null, null },
122885 .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any },
122886 .src_constraints = .{ .{ .int = .dword }, .any, .any },
122887 .patterns = &.{
122888 .{ .src = .{ .mem, .none, .none } },
122889 .{ .src = .{ .to_sse, .none, .none } },
122890 },
122891 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122892 .each = .{ .once = &.{
122893 .{ ._, .vp_d, .broadcast, .dst0y, .src0d, ._, ._ },
122894 } },
122895 }, .{
122896 .required_features = .{ .avx2, null, null, null },
122897 .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any },
122898 .src_constraints = .{ .{ .float = .dword }, .any, .any },
122899 .patterns = &.{
122900 .{ .src = .{ .mem, .none, .none } },
122901 .{ .src = .{ .to_sse, .none, .none } },
122902 },
122903 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
122904 .each = .{ .once = &.{
122905 .{ ._, .v_ss, .broadcast, .dst0y, .src0d, ._, ._ },
122906 } },
122907 }, .{
122908 .required_features = .{ .avx2, null, null, null },
122909 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any },
122910 .src_constraints = .{ .{ .int = .dword }, .any, .any },
122911 .patterns = &.{
122912 .{ .src = .{ .mem, .none, .none } },
122913 .{ .src = .{ .to_sse, .none, .none } },
122914 },
122915 .extra_temps = .{
122916 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122917 .{ .type = .vector_8_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
122918 .unused,
122919 .unused,
122920 .unused,
122921 .unused,
122922 .unused,
122923 .unused,
122924 .unused,
122925 .unused,
122926 .unused,
122927 },
122928 .dst_temps = .{ .mem, .unused },
122929 .each = .{ .once = &.{
122930 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
122931 .{ ._, .vp_d, .broadcast, .tmp1y, .src0d, ._, ._ },
122932 .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
122933 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122934 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122935 } },
122936 }, .{
122937 .required_features = .{ .avx2, null, null, null },
122938 .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any },
122939 .src_constraints = .{ .{ .float = .dword }, .any, .any },
122940 .patterns = &.{
122941 .{ .src = .{ .mem, .none, .none } },
122942 .{ .src = .{ .to_sse, .none, .none } },
122943 },
122944 .extra_temps = .{
122945 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122946 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
122947 .unused,
122948 .unused,
122949 .unused,
122950 .unused,
122951 .unused,
122952 .unused,
122953 .unused,
122954 .unused,
122955 .unused,
122956 },
122957 .dst_temps = .{ .mem, .unused },
122958 .each = .{ .once = &.{
122959 .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ },
122960 .{ ._, .v_ss, .broadcast, .tmp1y, .src0d, ._, ._ },
122961 .{ .@"0:", .v_ps, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
122962 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
122963 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122964 } },
122965 }, .{
122966 .required_features = .{ .avx, null, null, null },
122967 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .dword } }, .any },
122968 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
122969 .patterns = &.{
122970 .{ .src = .{ .mem, .none, .none } },
122971 },
122972 .extra_temps = .{
122973 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
122974 .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
122975 .unused,
122976 .unused,
122977 .unused,
122978 .unused,
122979 .unused,
122980 .unused,
122981 .unused,
122982 .unused,
122983 .unused,
122984 },
122985 .dst_temps = .{ .mem, .unused },
122986 .each = .{ .once = &.{
122987 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
122988 .{ ._, .v_ss, .broadcast, .tmp1x, .src0d, ._, ._ },
122989 .{ .@"0:", .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
122990 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
122991 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
122992 } },
122993 }, .{
122994 .required_features = .{ .avx, null, null, null },
122995 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any },
122996 .src_constraints = .{ .{ .int = .dword }, .any, .any },
122997 .patterns = &.{
122998 .{ .src = .{ .to_sse, .none, .none } },
122999 },
123000 .extra_temps = .{
123001 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
123002 .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
123003 .unused,
123004 .unused,
123005 .unused,
123006 .unused,
123007 .unused,
123008 .unused,
123009 .unused,
123010 .unused,
123011 .unused,
123012 },
123013 .dst_temps = .{ .mem, .unused },
123014 .each = .{ .once = &.{
123015 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
123016 .{ ._, .vp_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ },
123017 .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
123018 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
123019 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
123020 } },
123021 }, .{
123022 .required_features = .{ .avx, null, null, null },
123023 .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any },
123024 .src_constraints = .{ .{ .float = .dword }, .any, .any },
123025 .patterns = &.{
123026 .{ .src = .{ .to_sse, .none, .none } },
123027 },
123028 .extra_temps = .{
123029 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
123030 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
123031 .unused,
123032 .unused,
123033 .unused,
123034 .unused,
123035 .unused,
123036 .unused,
123037 .unused,
123038 .unused,
123039 .unused,
123040 },
123041 .dst_temps = .{ .mem, .unused },
123042 .each = .{ .once = &.{
123043 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
123044 .{ ._, .v_ps, .shuf, .tmp1x, .tmp1x, .src0x, .ui(0b00_00_00_00) },
123045 .{ .@"0:", .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
123046 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
123047 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
123048 } },
123049 }, .{
123050 .required_features = .{ .sse2, null, null, null },
123051 .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any },
123052 .src_constraints = .{ .{ .int = .dword }, .any, .any },
123053 .patterns = &.{
123054 .{ .src = .{ .to_sse, .none, .none } },
123055 },
123056 .extra_temps = .{
123057 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
123058 .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
123059 .unused,
123060 .unused,
123061 .unused,
123062 .unused,
123063 .unused,
123064 .unused,
123065 .unused,
123066 .unused,
123067 .unused,
123068 },
123069 .dst_temps = .{ .mem, .unused },
123070 .each = .{ .once = &.{
123071 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
123072 .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ },
123073 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
123074 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
123075 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
123076 } },
123077 }, .{
123078 .required_features = .{ .sse, null, null, null },
123079 .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any },
123080 .src_constraints = .{ .{ .float = .dword }, .any, .any },
123081 .patterns = &.{
123082 .{ .src = .{ .mut_sse, .none, .none } },
123083 },
123084 .extra_temps = .{
123085 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
123086 .unused,
123087 .unused,
123088 .unused,
123089 .unused,
123090 .unused,
123091 .unused,
123092 .unused,
123093 .unused,
123094 .unused,
123095 .unused,
123096 },
123097 .dst_temps = .{ .mem, .unused },
123098 .each = .{ .once = &.{
123099 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
123100 .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
123101 .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
123102 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
123103 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
123104 } },
123105 }, .{
123106 .required_features = .{ .sse2, null, null, null },
123107 .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any },
123108 .src_constraints = .{ .{ .float = .dword }, .any, .any },
123109 .patterns = &.{
123110 .{ .src = .{ .sse, .none, .none } },
123111 },
123112 .extra_temps = .{
123113 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
123114 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
123115 .unused,
123116 .unused,
123117 .unused,
123118 .unused,
123119 .unused,
123120 .unused,
123121 .unused,
123122 .unused,
123123 .unused,
123124 },
123125 .dst_temps = .{ .mem, .unused },
123126 .each = .{ .once = &.{
123127 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
123128 .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ },
123129 .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
123130 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
123131 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
123132 } },
123133 }, .{
123134 .required_features = .{ .sse, null, null, null },
123135 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .dword } }, .any },
123136 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
123137 .patterns = &.{
123138 .{ .src = .{ .to_mut_sse, .none, .none } },
123139 },
123140 .extra_temps = .{
123141 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
123142 .unused,
123143 .unused,
123144 .unused,
123145 .unused,
123146 .unused,
123147 .unused,
123148 .unused,
123149 .unused,
123150 .unused,
123151 .unused,
123152 },
123153 .dst_temps = .{ .mem, .unused },
123154 .each = .{ .once = &.{
123155 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },
123156 .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ },
123157 .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ },
123158 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
123159 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
123160 } },
123161 }, .{
123162 .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .dword, .is = .dword } }, .any },
123163 .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any },
123164 .patterns = &.{
123165 .{ .src = .{ .to_gpr, .none, .none } },
123166 },
123167 .extra_temps = .{
123168 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
123169 .unused,
123170 .unused,
123171 .unused,
123172 .unused,
123173 .unused,
123174 .unused,
123175 .unused,
123176 .unused,
123177 .unused,
123178 .unused,
123179 },
123180 .dst_temps = .{ .mem, .unused },
123181 .each = .{ .once = &.{
123182 .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ },
123183 .{ .@"0:", ._, .mov, .memi(.dst0d, .tmp0), .src0d, ._, ._ },
123184 .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ },
123185 .{ ._, ._nb, .j, .@"0b", ._, ._, ._ },
123186 } },
123187 }, .{
123188 .required_features = .{ .avx2, null, null, null },
123189 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any },
123190 .src_constraints = .{ .{ .int = .qword }, .any, .any },
123191 .patterns = &.{
123192 .{ .src = .{ .mem, .none, .none } },
123193 .{ .src = .{ .to_sse, .none, .none } },
123194 },
123195 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123196 .each = .{ .once = &.{
123197 .{ ._, .vp_q, .broadcast, .dst0x, .src0q, ._, ._ },
123198 } },
123199 }, .{
123200 .required_features = .{ .avx2, null, null, null },
123201 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any },
123202 .src_constraints = .{ .{ .float = .qword }, .any, .any },
123203 .patterns = &.{
123204 .{ .src = .{ .mem, .none, .none } },
123205 .{ .src = .{ .to_sse, .none, .none } },
123206 },
123207 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123208 .each = .{ .once = &.{
123209 .{ ._, .v_, .movddup, .dst0x, .src0q, ._, ._ },
123210 } },
123211 }, .{
123212 .required_features = .{ .avx, null, null, null },
123213 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any },
123214 .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any },
123215 .patterns = &.{
123216 .{ .src = .{ .mem, .none, .none } },
123217 .{ .src = .{ .to_sse, .none, .none } },
123218 },
123219 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123220 .each = .{ .once = &.{
123221 .{ ._, .v_, .movddup, .dst0x, .src0q, ._, ._ },
123222 } },
123223 }, .{
123224 .required_features = .{ .sse3, null, null, null },
123225 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any },
123226 .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any },
123227 .patterns = &.{
123228 .{ .src = .{ .mem, .none, .none } },
123229 .{ .src = .{ .to_sse, .none, .none } },
123230 },
123231 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123232 .each = .{ .once = &.{
123233 .{ ._, ._, .movddup, .dst0x, .src0q, ._, ._ },
123234 } },
123235 }, .{
123236 .required_features = .{ .sse2, null, null, null },
123237 .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any },
123238 .src_constraints = .{ .{ .int = .qword }, .any, .any },
123239 .patterns = &.{
123240 .{ .src = .{ .to_sse, .none, .none } },
123241 },
123242 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123243 .each = .{ .once = &.{
123244 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ },
123245 } },
123246 }, .{
123247 .required_features = .{ .sse2, null, null, null },
123248 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any },
123249 .src_constraints = .{ .{ .float = .qword }, .any, .any },
123250 .patterns = &.{
123251 .{ .src = .{ .mut_sse, .none, .none } },
123252 },
123253 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123254 .each = .{ .once = &.{
123255 .{ ._, ._pd, .shuf, .dst0x, .src0x, .ui(0b0_0), ._ },
123256 } },
123257 }, .{
123258 .required_features = .{ .sse2, null, null, null },
123259 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any },
123260 .src_constraints = .{ .{ .float = .qword }, .any, .any },
123261 .patterns = &.{
123262 .{ .src = .{ .sse, .none, .none } },
123263 },
123264 .dst_temps = .{ .{ .rc = .sse }, .unused },
123265 .each = .{ .once = &.{
123266 .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ },
123267 } },
123268 }, .{
123269 .required_features = .{ .sse2, null, null, null },
123270 .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any },
123271 .src_constraints = .{ .{ .float = .qword }, .any, .any },
123272 .patterns = &.{
123273 .{ .src = .{ .to_mut_sse, .none, .none } },
123274 },
123275 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123276 .each = .{ .once = &.{
123277 .{ ._, ._pd, .shuf, .dst0x, .src0x, .ui(0b0_0), ._ },
123278 } },
123279 }, .{
123280 .required_features = .{ .sse, null, null, null },
123281 .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any },
123282 .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any },
123283 .patterns = &.{
123284 .{ .src = .{ .to_mut_sse, .none, .none } },
123285 },
123286 .dst_temps = .{ .{ .ref = .src0 }, .unused },
123287 .each = .{ .once = &.{
123288 .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ },
123289 } },
123290 }, .{
123291 .required_features = .{ .avx2, null, null, null },
123292 .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any },
123293 .src_constraints = .{ .{ .int = .qword }, .any, .any },
123294 .patterns = &.{
123295 .{ .src = .{ .mem, .none, .none } },
123296 .{ .src = .{ .to_sse, .none, .none } },
123297 },
123298 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123299 .each = .{ .once = &.{
123300 .{ ._, .vp_q, .broadcast, .dst0y, .src0q, ._, ._ },
123301 } },
123302 }, .{
123303 .required_features = .{ .avx2, null, null, null },
123304 .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any },
123305 .src_constraints = .{ .{ .float = .qword }, .any, .any },
123306 .patterns = &.{
123307 .{ .src = .{ .mem, .none, .none } },
123308 .{ .src = .{ .to_sse, .none, .none } },
123309 },
123310 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
123311 .each = .{ .once = &.{
123312 .{ ._, .v_sd, .broadcast, .dst0y, .src0q, ._, ._ },
117854123313 } },
117855123314 }, .{
117856123315 .required_features = .{ .avx2, null, null, null },
......@@ -119166,15 +124625,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
119166124625 },
119167124626 .union_init => if (use_old) try cg.airUnionInit(inst) else {
119168124627 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
119169 const extra = cg.air.extraData(Air.UnionInit, ty_pl.payload).data;
124628 const union_init = cg.air.extraData(Air.UnionInit, ty_pl.payload).data;
119170124629 const union_ty = ty_pl.ty.toType();
119171 var ops = try cg.tempsFromOperands(inst, .{extra.init});
124630 var ops = try cg.tempsFromOperands(inst, .{union_init.init});
119172124631 var res = try cg.tempAllocMem(union_ty);
119173124632 const union_layout = union_ty.unionGetLayout(zcu);
119174124633 if (union_layout.tag_size > 0) {
119175124634 var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(
119176124635 union_ty.unionTagTypeSafety(zcu).?,
119177 extra.field_index,
124636 union_init.field_index,
119178124637 ));
119179124638 try res.write(&tag_temp, .{
119180124639 .disp = @intCast(union_layout.tagOffset()),
......@@ -119184,7 +124643,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
119184124643 try res.write(&ops[0], .{
119185124644 .disp = @intCast(union_layout.payloadOffset()),
119186124645 }, cg);
119187 try res.finish(inst, &.{extra.init}, &ops, cg);
124646 try res.finish(inst, &.{union_init.init}, &ops, cg);
119188124647 },
119189124648 .prefetch => {
119190124649 const prefetch = air_datas[@intFromEnum(inst)].prefetch;
......@@ -120381,14 +125840,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
120381125840 },
120382125841 .field_parent_ptr => if (use_old) try cg.airFieldParentPtr(inst) else {
120383125842 const ty_pl = air_datas[@intFromEnum(inst)].ty_pl;
120384 const extra = cg.air.extraData(Air.FieldParentPtr, ty_pl.payload).data;
120385 var ops = try cg.tempsFromOperands(inst, .{extra.field_ptr});
125843 const field_parent_ptr = cg.air.extraData(Air.FieldParentPtr, ty_pl.payload).data;
125844 var ops = try cg.tempsFromOperands(inst, .{field_parent_ptr.field_ptr});
120386125845 try ops[0].toOffset(-cg.fieldOffset(
120387125846 ty_pl.ty.toType(),
120388 cg.typeOf(extra.field_ptr),
120389 extra.field_index,
125847 cg.typeOf(field_parent_ptr.field_ptr),
125848 field_parent_ptr.field_index,
120390125849 ), cg);
120391 try ops[0].finish(inst, &.{extra.field_ptr}, &ops, cg);
125850 try ops[0].finish(inst, &.{field_parent_ptr.field_ptr}, &ops, cg);
120392125851 },
120393125852 .wasm_memory_size, .wasm_memory_grow => unreachable,
120394125853 .cmp_lt_errors_len => |air_tag| if (use_old) try cg.airCmpLtErrorsLen(inst) else {
......@@ -120514,9 +125973,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
120514125973 try res.finish(inst, &.{}, &.{}, cg);
120515125974 },
120516125975 .vector_store_elem => {
120517 const extra = air_datas[@intFromEnum(inst)].vector_store_elem;
120518 const bin_op = cg.air.extraData(Air.Bin, extra.payload).data;
120519 var ops = try cg.tempsFromOperands(inst, .{ extra.vector_ptr, bin_op.lhs, bin_op.rhs });
125976 const vector_store_elem = air_datas[@intFromEnum(inst)].vector_store_elem;
125977 const bin_op = cg.air.extraData(Air.Bin, vector_store_elem.payload).data;
125978 var ops = try cg.tempsFromOperands(inst, .{ vector_store_elem.vector_ptr, bin_op.lhs, bin_op.rhs });
120520125979 cg.select(&.{}, &.{}, &ops, comptime &.{ .{
120521125980 .src_constraints = .{ .{ .ptr_bool_vec = .byte }, .any, .bool },
120522125981 .patterns = &.{
......@@ -120878,7 +126337,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
120878126337 } },
120879126338 } }) catch |err| switch (err) {
120880126339 error.SelectFailed => {
120881 const elem_size = cg.typeOf(extra.vector_ptr).childType(zcu).childType(zcu).abiSize(zcu);
126340 const elem_size = cg.typeOf(bin_op.rhs).abiSize(zcu);
120882126341 while (try ops[0].toBase(false, cg) or
120883126342 try ops[1].toRegClass(true, .general_purpose, cg))
120884126343 {}
......@@ -127728,14 +133187,14 @@ fn genShiftBinOpMir(
127728133187 info.double_tag,
127729133188 lhs_regs[info.indices[1]],
127730133189 lhs_regs[info.indices[0]],
127731 registerAlias(shift_reg, 1),
133190 shift_reg.to8(),
127732133191 );
127733133192 try self.asmRegisterRegister(
127734133193 tag,
127735133194 lhs_regs[info.indices[0]],
127736 registerAlias(shift_reg, 1),
133195 shift_reg.to8(),
127737133196 );
127738 try self.asmRegisterImmediate(.{ ._, .cmp }, registerAlias(shift_reg, 1), .u(64));
133197 try self.asmRegisterImmediate(.{ ._, .cmp }, shift_reg.to8(), .u(64));
127739133198 try self.asmCmovccRegisterRegister(
127740133199 .ae,
127741133200 lhs_regs[info.indices[1]],
......@@ -127888,12 +133347,12 @@ fn genShiftBinOpMir(
127888133347 info.double_tag,
127889133348 second_reg,
127890133349 first_reg,
127891 registerAlias(shift_reg, 1),
133350 shift_reg.to8(),
127892133351 );
127893 try self.asmRegisterRegister(tag, first_reg, registerAlias(shift_reg, 1));
133352 try self.asmRegisterRegister(tag, first_reg, shift_reg.to8());
127894133353 try self.asmRegisterImmediate(
127895133354 .{ ._, .cmp },
127896 registerAlias(shift_reg, 1),
133355 shift_reg.to8(),
127897133356 .u(64),
127898133357 );
127899133358 try self.asmCmovccRegisterRegister(.ae, second_reg, first_reg);
......@@ -127937,7 +133396,7 @@ fn genShiftBinOpMir(
127937133396 .register => |shift_reg| return self.asmRegisterRegister(
127938133397 tag,
127939133398 registerAlias(lhs_reg, abi_size),
127940 registerAlias(shift_reg, 1),
133399 shift_reg.to8(),
127941133400 ),
127942133401 else => {},
127943133402 },
......@@ -127975,7 +133434,7 @@ fn genShiftBinOpMir(
127975133434 .register => |shift_reg| return self.asmMemoryRegister(
127976133435 tag,
127977133436 lhs_mem,
127978 registerAlias(shift_reg, 1),
133437 shift_reg.to8(),
127979133438 ),
127980133439 else => {},
127981133440 }
......@@ -132477,7 +137936,7 @@ fn lowerSwitchBr(
132477137936 .base = .table,
132478137937 .mod = .{ .rm = .{
132479137938 .size = .ptr,
132480 .index = registerAlias(condition_index_reg, ptr_size),
137939 .index = condition_index_reg.toSize(.ptr, cg.target),
132481137940 .scale = .fromFactor(@intCast(ptr_size)),
132482137941 .disp = table_start * ptr_size,
132483137942 } },
......@@ -132832,7 +138291,7 @@ fn airSwitchDispatch(self: *CodeGen, inst: Air.Inst.Index) !void {
132832138291 .base = .table,
132833138292 .mod = .{ .rm = .{
132834138293 .size = .ptr,
132835 .index = registerAlias(condition_index_reg, ptr_size),
138294 .index = condition_index_reg.toSize(.ptr, self.target),
132836138295 .scale = .fromFactor(@intCast(ptr_size)),
132837138296 .disp = @intCast(table.start * ptr_size),
132838138297 } },
......@@ -133742,7 +139201,7 @@ const MoveStrategy = union(enum) {
133742139201 .base = .{ .frame = tmp_frame_index },
133743139202 .mod = .{ .rm = .{ .size = .word } },
133744139203 });
133745 try cg.asmMemoryRegister(.{ ._, .mov }, dst_mem, tmp_reg.to16());
139204 try cg.asmMemoryRegister(.{ ._, .mov }, dst_mem, tmp_reg.toSize(dst_mem.mod.rm.size, cg.target));
133746139205 },
133747139206 .load_store => |tag| try cg.asmMemoryRegister(tag, dst_mem, src_reg),
133748139207 .load_store_x87 => if (cg.register_manager.isKnownRegFree(.st7)) {
......@@ -139513,6 +144972,17 @@ fn unalignedSize(cg: *CodeGen, ty: Type) u64 {
139513144972 };
139514144973}
139515144974
144975fn nonBoolScalarBitSize(cg: *CodeGen, ty: Type) u32 {
144976 const zcu = cg.pt.zcu;
144977 return switch (zcu.intern_pool.indexToKey(ty.toIntern())) {
144978 .vector_type => |vector_type| switch (vector_type.child) {
144979 .bool_type => vector_type.len,
144980 else => @intCast(Type.fromInterned(vector_type.child).bitSize(zcu)),
144981 },
144982 else => @intCast(ty.bitSize(zcu)),
144983 };
144984}
144985
139516144986fn intInfo(cg: *CodeGen, ty: Type) ?std.builtin.Type.Int {
139517144987 const zcu = cg.pt.zcu;
139518144988 const ip = &zcu.intern_pool;
......@@ -145229,8 +150699,12 @@ const Select = struct {
145229150699 po2_any,
145230150700 bool,
145231150701 bool_vec: Memory.Size,
145232 ptr_bool_vec: Memory.Size,
150702 exact_bool_vec: u16,
150703 vec_len: u32,
145233150704 ptr_any_bool_vec,
150705 ptr_bool_vec: Memory.Size,
150706 remainder_bool_vec: OfIsSizes,
150707 exact_remainder_bool_vec: struct { of: Memory.Size, is: u16 },
145234150708 signed_int_vec: Memory.Size,
145235150709 signed_int_or_full_vec: Memory.Size,
145236150710 unsigned_int_vec: Memory.Size,
......@@ -145243,6 +150717,7 @@ const Select = struct {
145243150717 scalar_unsigned_int_is: Memory.Size,
145244150718 scalar: OfIsSizes,
145245150719 scalar_int: OfIsSizes,
150720 exact_scalar_int: OfIsSizes,
145246150721 scalar_signed_int: OfIsSizes,
145247150722 scalar_unsigned_int: OfIsSizes,
145248150723 scalar_signed_or_exclusive_int: OfIsSizes,
......@@ -145251,6 +150726,7 @@ const Select = struct {
145251150726 scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 },
145252150727 multiple_scalar: OfIsSizes,
145253150728 multiple_scalar_int: OfIsSizes,
150729 unaligned_multiple_scalar_int: OfIsSizes,
145254150730 multiple_scalar_signed_int: OfIsSizes,
145255150731 multiple_scalar_unsigned_int: OfIsSizes,
145256150732 multiple_scalar_signed_or_exclusive_int: OfIsSizes,
......@@ -145309,6 +150785,9 @@ const Select = struct {
145309150785 .bool => ty.toIntern() == .bool_type,
145310150786 .bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and
145311150787 size.bitSize(cg.target) >= ty.vectorLen(zcu),
150788 .exact_bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and
150789 size == ty.vectorLen(zcu),
150790 .vec_len => |len| ty.isVector(zcu) and ty.vectorLen(zcu) == len,
145312150791 .ptr_any_bool_vec => switch (zcu.intern_pool.indexToKey(ty.childType(zcu).toIntern())) {
145313150792 .vector_type => |vector_type| vector_type.child == .bool_type,
145314150793 else => false,
......@@ -145317,6 +150796,10 @@ const Select = struct {
145317150796 .vector_type => |vector_type| vector_type.child == .bool_type and size.bitSize(cg.target) >= vector_type.len,
145318150797 else => false,
145319150798 },
150799 .remainder_bool_vec => |of_is| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and
150800 of_is.is.bitSize(cg.target) >= (ty.vectorLen(zcu) - 1) % of_is.of.bitSize(cg.target) + 1,
150801 .exact_remainder_bool_vec => |of_is| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and
150802 of_is.is == (ty.vectorLen(zcu) - 1) % of_is.of.bitSize(cg.target) + 1,
145320150803 .signed_int_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and
145321150804 if (cg.intInfo(ty.childType(zcu))) |int_info| int_info.signedness == .signed else false,
145322150805 .signed_int_or_full_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and
......@@ -145356,6 +150839,8 @@ const Select = struct {
145356150839 false,
145357150840 .scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
145358150841 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
150842 .exact_scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and
150843 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
145359150844 .scalar_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and
145360150845 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
145361150846 of_is.is.bitSize(cg.target) >= int_info.bits else false,
......@@ -145384,6 +150869,8 @@ const Select = struct {
145384150869 false,
145385150870 .multiple_scalar_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
145386150871 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
150872 .unaligned_multiple_scalar_int => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
150873 if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false,
145387150874 .multiple_scalar_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and
145388150875 if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and
145389150876 of_is.is.bitSize(cg.target) >= int_info.bits else false,
......@@ -145554,6 +151041,25 @@ const Select = struct {
145554151041 to_ymm,
145555151042 mut_ymm,
145556151043 to_mut_ymm,
151044 reg_mask: RegMaskSpec,
151045 all_reg_mask: RegMaskSpec,
151046
151047 const RegMaskSpec = struct {
151048 size: Memory.Size,
151049 is: enum {
151050 any,
151051 uninverted,
151052 inverted,
151053
151054 fn matches(is: @This(), inverted: bool) bool {
151055 return switch (is) {
151056 .any => true,
151057 .uninverted => !inverted,
151058 .inverted => inverted,
151059 };
151060 }
151061 } = .any,
151062 };
145557151063
145558151064 fn matches(src: Src, temp: Temp, cg: *CodeGen) bool {
145559151065 return switch (src) {
......@@ -145668,12 +151174,24 @@ const Select = struct {
145668151174 else => false,
145669151175 },
145670151176 .to_ymm, .to_mut_ymm => temp.typeOf(cg).abiSize(cg.pt.zcu) == 32,
151177 .reg_mask => |mask_spec| switch (temp.tracking(cg).short) {
151178 .register_mask => |reg_mask| mask_spec.size.bitSize(cg.target) >=
151179 reg_mask.info.scalar.bitSize(cg.target) * temp.typeOf(cg).vectorLen(cg.pt.zcu) and
151180 mask_spec.is.matches(reg_mask.info.inverted),
151181 else => false,
151182 },
151183 .all_reg_mask => |mask_spec| switch (temp.tracking(cg).short) {
151184 .register_mask => |reg_mask| mask_spec.size.bitSize(cg.target) ==
151185 reg_mask.info.scalar.bitSize(cg.target) * temp.typeOf(cg).vectorLen(cg.pt.zcu) and
151186 reg_mask.info.kind == .all and mask_spec.is.matches(reg_mask.info.inverted),
151187 else => false,
151188 },
145671151189 };
145672151190 }
145673151191
145674151192 fn convert(src: Src, temp: *Temp, cg: *CodeGen) InnerError!bool {
145675151193 return switch (src) {
145676 .none, .any, .imm, .imm8, .imm16, .imm32, .simm32 => false,
151194 .none, .any, .imm, .imm8, .imm16, .imm32, .simm32, .reg_mask, .all_reg_mask => false,
145677151195 .mem, .to_mem => try temp.toBase(false, cg),
145678151196 .mut_mem, .to_mut_mem => try temp.toBase(true, cg),
145679151197 .to_reg => |reg| try temp.toReg(reg, cg),
......@@ -145707,6 +151225,7 @@ const Select = struct {
145707151225 none,
145708151226 undef,
145709151227 cc: Condition,
151228 ptest_cc: struct { ref: Select.Operand.Ref, not: bool = false, all: u1 },
145710151229 imm: i32,
145711151230 ref: Select.Operand.Ref,
145712151231 reg: Register,
......@@ -145736,6 +151255,8 @@ const Select = struct {
145736151255 pshufb_splat_mem: struct { of: Memory.Size = .none, size: Memory.Size },
145737151256 pshufb_trunc_mem: struct { of: Memory.Size = .none, from: Memory.Size, to: Memory.Size },
145738151257 pand_trunc_mem: struct { from: Memory.Size, to: Memory.Size },
151258 pand_mask_mem: struct { ref: Select.Operand.Ref, invert: bool = false },
151259 ptest_mask_mem: Select.Operand.Ref,
145739151260 pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 },
145740151261 forward_bits_mem,
145741151262 reverse_bits_mem,
......@@ -145800,6 +151321,14 @@ const Select = struct {
145800151321 .undef => .{ try cg.tempInit(spec.type, .undef), true },
145801151322 .imm => |imm| .{ try cg.tempInit(spec.type, .{ .immediate = @bitCast(@as(i64, imm)) }), true },
145802151323 .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true },
151324 .ptest_cc => |cc_spec| {
151325 const ccs: [2]Condition = .{ .z, .c };
151326 const cc = ccs[cc_spec.all ^ @intFromBool(cc_spec.ref.valueOf(s).register_mask.info.inverted)];
151327 return .{ try cg.tempInit(spec.type, .{ .eflags = switch (cc_spec.not) {
151328 false => cc,
151329 true => cc.negate(),
151330 } }), true };
151331 },
145803151332 .ref => |ref| .{ ref.tempOf(s), false },
145804151333 .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true },
145805151334 .reg_pair => |regs| .{ try cg.tempInit(spec.type, .{ .register_pair = regs }), true },
......@@ -145988,16 +151517,15 @@ const Select = struct {
145988151517 } }))), true },
145989151518 .pshufb_splat_mem => |splat_spec| {
145990151519 const zcu = pt.zcu;
145991 assert(spec.type.isVector(zcu));
145992 assert(spec.type.childType(zcu).toIntern() == .u8_type);
151520 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
145993151521 var elem_buf: [32]u8 = @splat(1 << 7);
145994151522 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
145995 const of_bytes: u32 = @intCast(switch (splat_spec.of) {
151523 const of_bytes: u6 = @intCast(switch (splat_spec.of) {
145996151524 .none => elems.len,
145997151525 else => |of| @divExact(of.bitSize(cg.target), 8),
145998151526 });
145999 const size_bytes: u32 = @intCast(@divExact(splat_spec.size.bitSize(cg.target), 8));
146000 var index: u32 = 0;
151527 const size_bytes: u6 = @intCast(@divExact(splat_spec.size.bitSize(cg.target), 8));
151528 var index: u6 = 0;
146001151529 while (index < of_bytes) : (index += size_bytes) for (0..size_bytes) |byte_off| {
146002151530 elems[index + byte_off] = @as(u4, @truncate(byte_off));
146003151531 };
......@@ -146008,18 +151536,17 @@ const Select = struct {
146008151536 },
146009151537 .pshufb_trunc_mem => |trunc_spec| {
146010151538 const zcu = pt.zcu;
146011 assert(spec.type.isVector(zcu));
146012 assert(spec.type.childType(zcu).toIntern() == .u8_type);
151539 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
146013151540 var elem_buf: [32]u8 = @splat(1 << 7);
146014151541 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
146015 const of_bytes: u32 = @intCast(switch (trunc_spec.of) {
151542 const of_bytes: u6 = @intCast(switch (trunc_spec.of) {
146016151543 .none => elems.len,
146017151544 else => |of| @divExact(of.bitSize(cg.target), 8),
146018151545 });
146019 const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));
146020 const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));
146021 var from_index: u32 = 0;
146022 var to_index: u32 = 0;
151546 const from_bytes: u5 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));
151547 const to_bytes: u5 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));
151548 var from_index: u6 = 0;
151549 var to_index: u6 = 0;
146023151550 while (from_index < of_bytes) : ({
146024151551 from_index += from_bytes;
146025151552 switch (from_index % 16) {
......@@ -146036,27 +151563,69 @@ const Select = struct {
146036151563 },
146037151564 .pand_trunc_mem => |trunc_spec| {
146038151565 const zcu = pt.zcu;
146039 assert(spec.type.isVector(zcu));
146040 assert(spec.type.childType(zcu).toIntern() == .u8_type);
151566 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
146041151567 var elem_buf: [32]u8 = @splat(0);
146042151568 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
146043 const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));
146044 const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));
146045 var index: u32 = 0;
151569 const from_bytes: u6 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));
151570 const to_bytes: u6 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));
151571 var index: u6 = 0;
146046151572 while (index < elems.len) : (index += from_bytes) @memset(elems[index..][0..to_bytes], std.math.maxInt(u8));
146047151573 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
146048151574 .ty = spec.type.toIntern(),
146049151575 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
146050151576 } }))), true };
146051151577 },
151578 .pand_mask_mem => |mask_spec| {
151579 const zcu = pt.zcu;
151580 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
151581 const ty = mask_spec.ref.typeOf(s);
151582 assert(ty.isVector(zcu));
151583 var elem_buf: [64]u8 = undefined;
151584 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
151585 const mask_len: usize = @intCast(cg.unalignedSize(ty) % elems.len);
151586 const invert_mask: u8 = switch (mask_spec.invert) {
151587 false => std.math.minInt(u8),
151588 true => std.math.maxInt(u8),
151589 };
151590 @memset(elems[0..mask_len], ~invert_mask);
151591 @memset(elems[mask_len..], invert_mask);
151592 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
151593 .ty = spec.type.toIntern(),
151594 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
151595 } }))), true };
151596 },
151597 .ptest_mask_mem => |mask_ref| {
151598 const zcu = pt.zcu;
151599 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
151600 const ty = mask_ref.typeOf(s);
151601 assert(ty.isVector(zcu) and ty.childType(zcu).toIntern() == .bool_type);
151602 const mask_info = mask_ref.valueOf(s).register_mask.info;
151603 var elem_buf: [64]u8 = @splat(0);
151604 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
151605 const elem_bytes: u6 = @intCast(@divExact(mask_info.scalar.bitSize(cg.target), 8));
151606 var index: u7 = 0;
151607 for (0..@intCast(ty.vectorLen(zcu))) |_| {
151608 switch (mask_info.kind) {
151609 .sign => {
151610 @memset(elems[index..][0 .. elem_bytes - 1], std.math.minInt(u8));
151611 elems[index + elem_bytes - 1] = @bitCast(@as(i8, std.math.minInt(i8)));
151612 },
151613 .all => @memset(elems[index..][0..elem_bytes], std.math.maxInt(u8)),
151614 }
151615 index += elem_bytes;
151616 }
151617 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
151618 .ty = spec.type.toIntern(),
151619 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
151620 } }))), true };
151621 },
146052151622 .pshufb_bswap_mem => |bswap_spec| {
146053151623 const zcu = pt.zcu;
146054 assert(spec.type.isVector(zcu));
146055 assert(spec.type.childType(zcu).toIntern() == .u8_type);
151624 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
146056151625 var elem_buf: [32]u8 = @splat(1 << 7);
146057151626 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
146058151627 const len: usize = @intCast(@divExact(bswap_spec.size.bitSize(cg.target), 8));
146059 var to_index: u32 = 0;
151628 var to_index: u6 = 0;
146060151629 for (0..bswap_spec.repeat) |_| for (0..len) |from_index| {
146061151630 @memset(elems[to_index..][0..bswap_spec.smear], @intCast(len - 1 - from_index));
146062151631 to_index += bswap_spec.smear;
......@@ -146068,8 +151637,7 @@ const Select = struct {
146068151637 },
146069151638 .forward_bits_mem, .reverse_bits_mem => {
146070151639 const zcu = pt.zcu;
146071 assert(spec.type.isVector(zcu));
146072 assert(spec.type.childType(zcu).toIntern() == .u8_type);
151640 assert(spec.type.isVector(zcu) and spec.type.childType(zcu).toIntern() == .u8_type);
146073151641 var bytes: [32]u8 = undefined;
146074151642 const elems = bytes[0..spec.type.vectorLen(zcu)];
146075151643 for (elems, 0..) |*elem, index| elem.* = switch (spec.kind) {
......@@ -146170,6 +151738,7 @@ const Select = struct {
146170151738 unaligned_size,
146171151739 unaligned_size_add_elem_size,
146172151740 unaligned_size_sub_elem_size,
151741 unaligned_size_sub_2_elem_size,
146173151742 bit_size,
146174151743 src0_bit_size,
146175151744 @"8_size_sub_bit_size",
......@@ -146213,9 +151782,15 @@ const Select = struct {
146213151782 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
146214151783 const add_unaligned_size_add_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_add_elem_size, .op = .mul, .rhs = .@"1" };
146215151784 const add_unaligned_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_sub_elem_size, .op = .mul, .rhs = .@"1" };
151785 const add_unaligned_size_sub_2_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_sub_2_elem_size, .op = .mul, .rhs = .@"1" };
146216151786 const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };
146217151787 const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
151788 const add_bit_size_rem_8: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"1" };
146218151789 const add_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };
151790 const add_bit_size_div_8: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .div, .rhs = .@"8" };
151791 const add_bit_size_div_8_down_1: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .div_8_down, .rhs = .@"1" };
151792 const add_bit_size_div_8_down_2: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .div_8_down, .rhs = .@"2" };
151793 const add_bit_size_div_8_down_8: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .div_8_down, .rhs = .@"8" };
146219151794 const sub_bit_size_rem_64: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };
146220151795 const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
146221151796 const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };
......@@ -147004,8 +152579,12 @@ const Select = struct {
147004152579 const ty = op.flags.base.ref.typeOf(s);
147005152580 break :lhs @intCast(s.cg.unalignedSize(ty) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
147006152581 },
147007 .bit_size => @intCast(op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
147008 .src0_bit_size => @intCast(Select.Operand.Ref.src0.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
152582 .unaligned_size_sub_2_elem_size => {
152583 const ty = op.flags.base.ref.typeOf(s);
152584 break :lhs @intCast(s.cg.unalignedSize(ty) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * 2);
152585 },
152586 .bit_size => @intCast(s.cg.nonBoolScalarBitSize(op.flags.base.ref.typeOf(s))),
152587 .src0_bit_size => @intCast(s.cg.nonBoolScalarBitSize(Select.Operand.Ref.src0.typeOf(s))),
147009152588 .@"8_size_sub_bit_size" => {
147010152589 const ty = op.flags.base.ref.typeOf(s);
147011152590 break :lhs @intCast(8 * ty.abiSize(s.cg.pt.zcu) - ty.bitSize(s.cg.pt.zcu));
......@@ -147022,26 +152601,35 @@ const Select = struct {
147022152601 Select.Operand.Ref.src1.valueOf(s).immediate),
147023152602 .src1 => @intCast(Select.Operand.Ref.src1.valueOf(s).immediate),
147024152603 .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))),
152604 @as(SignedImm, @intCast(s.cg.nonBoolScalarBitSize(op.flags.base.ref.typeOf(s)))),
147026152605 .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(
147028 -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
147029 ),
147030 .smax => @as(SignedImm, std.math.maxInt(SignedImm)) >> @truncate(
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 ),
147039 .smin_shr_src1 => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate(
147040 Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
147041 ),
147042 .umax_shr_src1 => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate(
147043 Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
147044 )),
152606 inline .smin, .smax, .umax, .smin_shr_src1, .smax_shr_src1, .umax_shr_src1 => |adjust| switch (op.flags.base.size) {
152607 else => unreachable,
152608 inline .none, .byte, .word, .dword, .qword => |size| {
152609 const Imm = switch (adjust) {
152610 else => comptime unreachable,
152611 .smin, .smax, .smin_shr_src1, .smax_shr_src1 => SignedImm,
152612 .umax, .umax_shr_src1 => UnsignedImm,
152613 };
152614 const RefImm = switch (size) {
152615 else => comptime unreachable,
152616 .none => Imm,
152617 .byte, .word, .dword, .qword => @Type(comptime .{ .int = .{
152618 .signedness = @typeInfo(Imm).int.signedness,
152619 .bits = size.bitSize(undefined),
152620 } }),
152621 };
152622 break :lhs @bitCast(@as(Imm, @intCast(@as(RefImm, switch (adjust) {
152623 else => comptime unreachable,
152624 .smin, .smin_shr_src1 => std.math.minInt,
152625 .smax, .umax, .smax_shr_src1, .umax_shr_src1 => std.math.maxInt,
152626 }(RefImm)) >> @truncate(switch (adjust) {
152627 else => comptime unreachable,
152628 .smin, .smax, .umax => 0,
152629 .smin_shr_src1, .smax_shr_src1, .umax_shr_src1 => Select.Operand.Ref.src1.valueOf(s).immediate,
152630 } -% s.cg.nonBoolScalarBitSize(op.flags.base.ref.typeOf(s))))));
152631 },
152632 },
147045152633 .repeat => switch (SignedImm) {
147046152634 else => unreachable,
147047152635 i64 => return @as(i64, op.imm) << 32 | @as(u32, @bitCast(op.imm)),
......@@ -147084,6 +152672,7 @@ const Select = struct {
147084152672 } },
147085152673 else => |mcv| .{ .mem = try mcv.mem(s.cg, .{ .size = op.flags.base.size }) },
147086152674 .register => |reg| .{ .reg = s.lowerReg(reg.toSize(op.flags.base.size, s.cg.target)) },
152675 .register_mask => |reg_mask| .{ .reg = s.lowerReg(reg_mask.reg.toSize(op.flags.base.size, s.cg.target)) },
147087152676 .lea_symbol => |sym_off| .{ .imm = .rel(sym_off) },
147088152677 },
147089152678 .simm => .{ .imm = .s(op.adjustedImm(i32, s)) },
src/codegen/c/Type.zig+52
......@@ -1374,6 +1374,10 @@ pub const Pool = struct {
13741374 .i64_type => return .i64,
13751375 .u80_type, .u128_type => return .u128,
13761376 .i128_type => return .i128,
1377 .u256_type => return pool.fromIntInfo(allocator, .{
1378 .signedness = .unsigned,
1379 .bits = 256,
1380 }, mod, kind),
13771381 .usize_type => return .usize,
13781382 .isize_type => return .isize,
13791383 .c_char_type => return .{ .index = .char },
......@@ -1578,6 +1582,21 @@ pub const Pool = struct {
15781582 };
15791583 return pool.fromFields(allocator, .@"struct", &fields, kind);
15801584 },
1585 .vector_64_u8_type => {
1586 const vector_ctype = try pool.getVector(allocator, .{
1587 .elem_ctype = .u8,
1588 .len = 64,
1589 });
1590 if (!kind.isParameter()) return vector_ctype;
1591 var fields = [_]Info.Field{
1592 .{
1593 .name = .{ .index = .array },
1594 .ctype = vector_ctype,
1595 .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)),
1596 },
1597 };
1598 return pool.fromFields(allocator, .@"struct", &fields, kind);
1599 },
15811600 .vector_4_i16_type => {
15821601 const vector_ctype = try pool.getVector(allocator, .{
15831602 .elem_ctype = .i16,
......@@ -1788,6 +1807,21 @@ pub const Pool = struct {
17881807 };
17891808 return pool.fromFields(allocator, .@"struct", &fields, kind);
17901809 },
1810 .vector_1_u128_type => {
1811 const vector_ctype = try pool.getVector(allocator, .{
1812 .elem_ctype = .u128,
1813 .len = 1,
1814 });
1815 if (!kind.isParameter()) return vector_ctype;
1816 var fields = [_]Info.Field{
1817 .{
1818 .name = .{ .index = .array },
1819 .ctype = vector_ctype,
1820 .alignas = AlignAs.fromAbiAlignment(Type.u128.abiAlignment(zcu)),
1821 },
1822 };
1823 return pool.fromFields(allocator, .@"struct", &fields, kind);
1824 },
17911825 .vector_2_u128_type => {
17921826 const vector_ctype = try pool.getVector(allocator, .{
17931827 .elem_ctype = .u128,
......@@ -1803,6 +1837,24 @@ pub const Pool = struct {
18031837 };
18041838 return pool.fromFields(allocator, .@"struct", &fields, kind);
18051839 },
1840 .vector_1_u256_type => {
1841 const vector_ctype = try pool.getVector(allocator, .{
1842 .elem_ctype = try pool.fromIntInfo(allocator, .{
1843 .signedness = .unsigned,
1844 .bits = 256,
1845 }, mod, kind),
1846 .len = 1,
1847 });
1848 if (!kind.isParameter()) return vector_ctype;
1849 var fields = [_]Info.Field{
1850 .{
1851 .name = .{ .index = .array },
1852 .ctype = vector_ctype,
1853 .alignas = AlignAs.fromAbiAlignment(Type.u256.abiAlignment(zcu)),
1854 },
1855 };
1856 return pool.fromFields(allocator, .@"struct", &fields, kind);
1857 },
18061858 .vector_4_f16_type => {
18071859 const vector_ctype = try pool.getVector(allocator, .{
18081860 .elem_ctype = .f16,
test/behavior/floatop.zig+4-4
......@@ -236,11 +236,11 @@ test "vector cmp f16" {
236236 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
237237 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
238238 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
239 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
240239 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
241240 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
242241 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
243242 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
245245 try testCmpVector(f16);
246246 try comptime testCmpVector(f16);
......@@ -250,11 +250,11 @@ test "vector cmp f32" {
250250 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
251251 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
252252 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
253 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
254253 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
255254 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
256255 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
257256 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
259259 try testCmpVector(f32);
260260 try comptime testCmpVector(f32);
......@@ -263,11 +263,11 @@ test "vector cmp f32" {
263263test "vector cmp f64" {
264264 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
265265 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
266 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
267266 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
268267 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
269268 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
270269 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
272272 try testCmpVector(f64);
273273 try comptime testCmpVector(f64);
......@@ -279,11 +279,11 @@ test "vector cmp f128" {
279279 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
280280 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch.isArm()) return error.SkipZigTest;
281281 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
282 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
283282 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
284283 if (builtin.cpu.arch.isArm()) return error.SkipZigTest;
285284 if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest;
286285 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
288288 try testCmpVector(f128);
289289 try comptime testCmpVector(f128);
test/behavior/x86_64/binary.zig+54
......@@ -5434,6 +5434,60 @@ test optionalsNotEqual {
54345434 try test_optionals_not_equal.testFloats();
54355435}
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
54375491inline fn mulAdd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mulAdd(Type, lhs, rhs, rhs)) {
54385492 return @mulAdd(Type, lhs, rhs, rhs);
54395493}
test/behavior/x86_64/build.zig+3-2
......@@ -87,7 +87,7 @@ pub fn build(b: *std.Build) void {
8787 .{
8888 .cpu_arch = .x86_64,
8989 .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, .gfni, .pclmul }),
9191 },
9292 .{
9393 .cpu_arch = .x86_64,
......@@ -106,11 +106,12 @@ pub fn build(b: *std.Build) void {
106106 .{
107107 .cpu_arch = .x86_64,
108108 .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 },
109 .cpu_features_add = std.Target.x86.featureSet(&.{ .adx, .gfni }),
109 .cpu_features_add = std.Target.x86.featureSet(&.{ .adx, .gfni, .pclmul }),
110110 },
111111 .{
112112 .cpu_arch = .x86_64,
113113 .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v4 },
114 .cpu_features_add = std.Target.x86.featureSet(&.{.vpclmulqdq}),
114115 },
115116 }) |query| {
116117 const target = b.resolveTargetQuery(query);
test/behavior/x86_64/unary.zig+3438-376
......@@ -675,6 +675,105 @@ fn unary(comptime op: anytype, comptime opts: struct {
675675 try testArgs(f128, inf(f128));
676676 try testArgs(f128, nan(f128));
677677 }
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 }
678777 fn testIntVectorTypes() !void {
679778 try testArgs(@Vector(3, i1), undefined);
680779 try testArgs(@Vector(3, u1), undefined);
......@@ -838,549 +937,3485 @@ fn unary(comptime op: anytype, comptime opts: struct {
838937 try testArgs(@Vector(3, u1025), undefined);
839938 }
840939 fn testIntVectors() !void {
841 try testArgs(@Vector(3, i1), .{ -1 << 0, -1, 0 });
842 try testArgs(@Vector(3, u1), .{ 0, 1, 1 << 0 });
940 try testArgs(@Vector(1, i1), .{
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 });
8431037
844 try testArgs(@Vector(3, i2), .{ -1 << 1, -1, 0 });
845 try testArgs(@Vector(3, u2), .{ 0, 1, 1 << 1 });
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 });
1331
1332 try testArgs(@Vector(1, i3), .{
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 });
848 try testArgs(@Vector(3, u3), .{ 0, 1, 1 << 2 });
1430 try testArgs(@Vector(1, u3), .{
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 });
8511528 try testArgs(@Vector(1, i4), .{
1529 0x4,
1530 });
1531 try testArgs(@Vector(2, i4), .{
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,
8521592 -0x2,
8531593 });
854 try testArgs(@Vector(2, i4), .{
855 -0x7, 0x4,
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,
8562813 });
857 try testArgs(@Vector(4, i4), .{
858 -0x3, 0x4, 0x2, -0x2,
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,
8592823 });
860 try testArgs(@Vector(8, i4), .{
861 -0x6, 0x3, 0x4, 0x3, 0x4, -0x8, -0x3, -0x5,
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,
8622833 });
863 try testArgs(@Vector(16, i4), .{
864 -0x3, 0x5, 0x4, -0x1, 0x2, 0x7, 0x1, 0x0, -0x2, 0x6, -0x1, -0x3, 0x5, -0x3, 0x3, -0x7,
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,
8652844 });
866 try testArgs(@Vector(32, i4), .{
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,
2845
2846 try testArgs(@Vector(1, i17), .{
2847 0x0202b,
8682848 });
869 try testArgs(@Vector(64, i4), .{
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,
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,
2849 try testArgs(@Vector(2, i17), .{
2850 -0x0c0d7, -0x066d3,
8722851 });
873 try testArgs(@Vector(128, i4), .{
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,
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,
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,
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,
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,
2852 try testArgs(@Vector(3, i17), .{
2853 0x0f620, 0x07c24, 0x04e4b,
8932854 });
894 try testArgs(@Vector(2, u4), .{
895 0x3, 0x4,
2855 try testArgs(@Vector(4, i17), .{
2856 0x0fb3b, 0x03d42, 0x03e54, 0x0af90,
8962857 });
897 try testArgs(@Vector(4, u4), .{
898 0x9, 0x2, 0xf, 0xe,
2858 try testArgs(@Vector(5, i17), .{
2859 0x0a9cf, -0x05bed, 0x0e110, 0x0994b,
2860 -0x0ece6,
8992861 });
900 try testArgs(@Vector(8, u4), .{
901 0x8, 0x1, 0xb, 0x1, 0xf, 0x5, 0x9, 0x6,
2862 try testArgs(@Vector(7, i17), .{
2863 0x046d3, 0x04690, -0x076c0, 0x08758,
2864 -0x07460, -0x039bf, 0x0a20e,
9022865 });
903 try testArgs(@Vector(16, u4), .{
904 0xb, 0x6, 0x0, 0x7, 0x8, 0x5, 0x6, 0x9, 0xe, 0xb, 0x3, 0xa, 0xb, 0x5, 0x8, 0xc,
2866 try testArgs(@Vector(8, i17), .{
2867 0x06e32, -0x0474e, 0x0e18f, -0x066dd,
2868 0x06e45, -0x0eaf6, 0x05365, -0x0f05d,
9052869 });
906 try testArgs(@Vector(32, u4), .{
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,
2870 try testArgs(@Vector(9, i17), .{
2871 -0x058ab, -0x046ff, -0x012a9, 0x0ea46,
2872 -0x05320, 0x03073, 0x0eb08, 0x06b31,
2873 -0x02cf0,
9082874 });
909 try testArgs(@Vector(64, u4), .{
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,
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,
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,
9122880 });
913 try testArgs(@Vector(128, u4), .{
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,
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,
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,
9182886 });
919 try testArgs(@Vector(256, u4), .{
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,
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,
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,
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,
9282924 });
9292925
930 try testArgs(@Vector(3, i5), .{ -1 << 4, -1, 0 });
931 try testArgs(@Vector(3, u5), .{ 0, 1, 1 << 4 });
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,
2926 try testArgs(@Vector(1, u17), .{
2927 0x11623,
9392928 });
940 try testArgs(@Vector(2, i8), .{
941 -0x50, -0x43,
2929 try testArgs(@Vector(2, u17), .{
2930 0x15a11, 0x19fd4,
9422931 });
943 try testArgs(@Vector(4, i8), .{
944 -0x09, -0x19, -0x15, -0x5d,
2932 try testArgs(@Vector(3, u17), .{
2933 0x1ab5b, 0x0506b, 0x07d78,
9452934 });
946 try testArgs(@Vector(8, i8), .{
947 -0x4f, -0x55, -0x5b, -0x23, -0x76, 0x36, 0x6f, -0x63,
2935 try testArgs(@Vector(4, u17), .{
2936 0x0768c, 0x08441, 0x1f5a8, 0x09628,
9482937 });
949 try testArgs(@Vector(16, i8), .{
950 0x24, -0x03, 0x2e, 0x7b, 0x68, 0x29, 0x6c, 0x7f, -0x2f, -0x3b, -0x11, -0x3c, -0x2e, 0x27, -0x45, 0x45,
2938 try testArgs(@Vector(5, u17), .{
2939 0x1e9cd, 0x02822, 0x1e69a, 0x1a728,
2940 0x14b1d,
9512941 });
952 try testArgs(@Vector(32, i8), .{
953 0x70, 0x33, -0x28, -0x38, -0x3b, 0x44, -0x1d, 0x7d, -0x48, 0x3c, 0x61, -0x09, -0x49, 0x15, 0x0a, -0x5a,
954 0x78, 0x11, -0x07, -0x23, 0x4a, -0x72, 0x25, -0x17, -0x51, -0x04, 0x55, 0x20, -0x80, -0x3d, 0x59, -0x39,
2942 try testArgs(@Vector(7, u17), .{
2943 0x001b3, 0x06963, 0x012fc, 0x13c02,
2944 0x04f1e, 0x12aa0, 0x11097,
9552945 });
956 try testArgs(@Vector(64, i8), .{
957 0x4f, 0x40, -0x62, -0x4f, 0x37, -0x06, -0x33, 0x4d, -0x10, 0x55, 0x24, -0x76, 0x1d, 0x2b, -0x54, -0x0f,
958 0x21, -0x4c, -0x74, -0x07, 0x23, -0x5a, -0x21, -0x4a, -0x7c, -0x16, -0x20, -0x2e, 0x0a, 0x15, 0x03, 0x44,
959 0x19, -0x27, 0x3e, 0x61, 0x6e, -0x76, 0x2a, 0x74, -0x21, 0x34, -0x69, -0x18, -0x21, -0x61, -0x34, -0x02,
960 0x5e, -0x36, -0x79, -0x0f, 0x26, 0x6e, 0x5f, 0x52, -0x0f, -0x64, 0x1a, 0x74, -0x37, 0x00, -0x47, -0x57,
2946 try testArgs(@Vector(8, u17), .{
2947 0x1c9e5, 0x1700f, 0x10903, 0x01130,
2948 0x07523, 0x1689c, 0x11a72, 0x00db7,
9612949 });
962 try testArgs(@Vector(128, i8), .{
963 -0x38, -0x19, 0x51, 0x09, 0x76, -0x3b, -0x33, 0x39, 0x67, 0x51, 0x10, 0x77, 0x24, 0x21, 0x6f, -0x1a,
964 0x4e, -0x69, 0x2e, -0x78, -0x06, 0x5c, 0x17, 0x2e, -0x0e, -0x2e, 0x09, 0x2a, -0x5f, -0x40, -0x64, 0x3f,
965 0x4a, -0x77, -0x54, 0x38, 0x6b, 0x1f, -0x04, 0x40, 0x27, -0x0c, 0x65, -0x46, 0x49, -0x69, -0x53, 0x64,
966 0x13, -0x33, 0x3a, -0x10, -0x15, 0x7f, -0x1c, 0x5e, -0x22, 0x2f, -0x75, 0x77, 0x22, 0x6b, -0x32, -0x55,
967 0x18, 0x19, 0x2c, -0x27, -0x03, 0x4f, 0x07, 0x0b, 0x44, -0x21, 0x79, 0x55, -0x65, 0x1d, -0x29, 0x2f,
968 0x4a, 0x6f, -0x40, -0x57, -0x2f, 0x42, 0x52, 0x68, -0x2a, -0x6b, 0x6f, -0x49, -0x32, 0x52, 0x1e, -0x60,
969 -0x80, 0x53, 0x5e, 0x73, -0x1e, 0x2d, -0x46, -0x27, 0x4b, 0x57, 0x1f, 0x6a, -0x65, 0x5f, -0x2b, -0x03,
970 -0x3a, -0x76, -0x51, 0x20, 0x04, -0x0a, 0x2b, -0x04, -0x1e, -0x18, -0x2d, 0x53, -0x58, -0x69, 0x16, 0x19,
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,
9713004 });
9723005
973 try testArgs(@Vector(3, u8), .{ 0, 1, 1 << 7 });
974 try testArgs(@Vector(1, u8), .{
975 0x33,
3006 try testArgs(@Vector(1, i31), .{
3007 -0x3f5c3228,
9763008 });
977 try testArgs(@Vector(2, u8), .{
978 0x66, 0x87,
3009 try testArgs(@Vector(2, i31), .{
3010 -0x307f1325, -0x0e59e507,
9793011 });
980 try testArgs(@Vector(4, u8), .{
981 0x9d, 0xcb, 0x30, 0x7b,
3012 try testArgs(@Vector(3, i31), .{
3013 0x24544bf1, -0x104aebe0, -0x371b3c03,
9823014 });
983 try testArgs(@Vector(8, u8), .{
984 0x4b, 0x35, 0x3f, 0x5c, 0xa5, 0x91, 0x23, 0x6d,
3015 try testArgs(@Vector(4, i31), .{
3016 -0x3616321a, 0x3b48f54b, -0x2790d613, 0x10122d7e,
9853017 });
986 try testArgs(@Vector(16, u8), .{
987 0xb7, 0x57, 0x27, 0x29, 0x58, 0xf8, 0xc9, 0x6c, 0xbe, 0x41, 0xf4, 0xd7, 0x4d, 0x01, 0xf0, 0x37,
3018 try testArgs(@Vector(5, i31), .{
3019 0x2bfa57aa, -0x1392b765, -0x05d1942f, 0x3c868ece,
3020 0x32bc4fbc,
9883021 });
989 try testArgs(@Vector(32, u8), .{
990 0x5f, 0x61, 0x34, 0xe8, 0x37, 0x12, 0xba, 0x5a, 0x85, 0xf3, 0x3e, 0xa2, 0x0f, 0xd0, 0x65, 0xae,
991 0xed, 0xf5, 0xe8, 0x65, 0x61, 0x28, 0x4a, 0x27, 0x2e, 0x01, 0x40, 0x8c, 0xe3, 0x36, 0x5d, 0xb6,
3022 try testArgs(@Vector(7, i31), .{
3023 0x327ca4d4, -0x262b2dfc, 0x3d97b95c, -0x350d9a5f,
3024 0x0e9f3560, 0x1e7abb41, 0x38f6b827,
9923025 });
993 try testArgs(@Vector(64, u8), .{
994 0xb0, 0x19, 0x5c, 0xc2, 0x3b, 0x16, 0x70, 0xad, 0x26, 0x45, 0xf2, 0xe1, 0x4f, 0x0f, 0x01, 0x72,
995 0x7f, 0x1f, 0x07, 0x9e, 0xee, 0x9b, 0xb3, 0x38, 0x50, 0xf3, 0x56, 0x73, 0xd0, 0xd1, 0xee, 0xe3,
996 0xeb, 0xf3, 0x1b, 0xe0, 0x77, 0x78, 0x75, 0xc6, 0x19, 0xe4, 0x69, 0xaa, 0x73, 0x08, 0xcd, 0x0c,
997 0xf9, 0xed, 0x94, 0xf8, 0x79, 0x86, 0x63, 0x31, 0xbf, 0xd1, 0xe3, 0x17, 0x2b, 0xb9, 0xa1, 0x72,
3026 try testArgs(@Vector(8, i31), .{
3027 -0x3facecea, -0x267ee011, -0x3d4c39b3, -0x3681b9cc,
3028 -0x0cc15566, 0x1ac2d80d, 0x0b73bf53, 0x3ac83f51,
9983029 });
999 try testArgs(@Vector(128, u8), .{
1000 0x2e, 0x93, 0x87, 0x09, 0x4f, 0x68, 0x14, 0xab, 0x3f, 0x04, 0x86, 0xc1, 0x95, 0xe8, 0x74, 0x11,
1001 0x57, 0x25, 0xe1, 0x88, 0xc0, 0x96, 0x33, 0x99, 0x15, 0x86, 0x2c, 0x84, 0x2e, 0xd7, 0x57, 0x21,
1002 0xd3, 0x18, 0xd5, 0x0e, 0xb4, 0x60, 0xe2, 0x08, 0xce, 0xbc, 0xd5, 0x4d, 0x8f, 0x59, 0x01, 0x67,
1003 0x71, 0x0a, 0x74, 0x48, 0xef, 0x39, 0x49, 0x7e, 0xa8, 0x39, 0x34, 0x75, 0x95, 0x3b, 0x38, 0xea,
1004 0x60, 0xd7, 0xed, 0x8f, 0xbb, 0xc0, 0x7d, 0xc2, 0x79, 0x2d, 0xbf, 0xa5, 0x64, 0xf4, 0x09, 0x86,
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,
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,
10083084 });
10093085
1010 try testArgs(@Vector(3, i9), .{ -1 << 8, -1, 0 });
1011 try testArgs(@Vector(3, u9), .{ 0, 1, 1 << 8 });
1012
1013 try testArgs(@Vector(3, i15), .{ -1 << 14, -1, 0 });
1014 try testArgs(@Vector(3, u15), .{ 0, 1, 1 << 14 });
1015
1016 try testArgs(@Vector(3, i16), .{ -1 << 15, -1, 0 });
1017 try testArgs(@Vector(1, i16), .{
1018 -0x015a,
3086 try testArgs(@Vector(1, u31), .{
3087 0x2c6b497e,
10193088 });
1020 try testArgs(@Vector(2, i16), .{
1021 -0x1c2f, 0x5ce8,
3089 try testArgs(@Vector(2, u31), .{
3090 0x0f9eb70f, 0x688a61f6,
10223091 });
1023 try testArgs(@Vector(4, i16), .{
1024 0x1212, 0x5bfc, -0x20ea, 0x0993,
3092 try testArgs(@Vector(3, u31), .{
3093 0x05045dcc, 0x5dafb08f, 0x72314cfd,
10253094 });
1026 try testArgs(@Vector(8, i16), .{
1027 0x4d55, -0x0dfb, -0x7921, 0x7e20, 0x74a5, -0x7371, -0x08e0, 0x7f23,
3095 try testArgs(@Vector(4, u31), .{
3096 0x5bdb842a, 0x2cbf89db, 0x01ca9eb3, 0x0c06df26,
10283097 });
1029 try testArgs(@Vector(16, i16), .{
1030 0x2354, -0x048a, -0x3ef9, 0x29d4, 0x4e5e, -0x3da9, -0x0cc4, -0x0377,
1031 0x4d44, 0x4384, -0x1e46, 0x0bf1, 0x3151, -0x57c6, -0x367e, -0x7ae5,
3098 try testArgs(@Vector(5, u31), .{
3099 0x31a4c3c4, 0x3db09048, 0x0b169f8c, 0x35feaf93,
3100 0x0e3ab88b,
10323101 });
1033 try testArgs(@Vector(32, i16), .{
1034 0x5b5a, -0x54c4, -0x2089, -0x448d, 0x38e8, -0x36a5, -0x0a8f, 0x06e0,
1035 0x09d9, 0x3877, 0x33c8, 0x5d3a, 0x018b, 0x29c9, 0x6f59, -0x4078,
1036 0x6be4, -0x249e, 0x43b3, -0x0389, 0x545e, 0x6ed7, 0x6636, 0x587d,
1037 0x55b0, -0x608b, 0x72e0, 0x4dfd, -0x051d, 0x7433, -0x7fc2, 0x2de3,
3102 try testArgs(@Vector(7, u31), .{
3103 0x1f83eae7, 0x5b49e350, 0x0c324714, 0x46a152c4,
3104 0x5fa04eeb, 0x1339412b, 0x6c8113e9,
10383105 });
1039 try testArgs(@Vector(64, i16), .{
1040 0x7834, -0x43f9, -0x1cb3, -0x05f2, 0x25b5, 0x55f2, 0x4cfb, -0x58bb,
1041 0x7292, -0x082e, -0x5a6e, 0x1fc8, -0x1f49, 0x7e3c, 0x4aa5, -0x617e,
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,
3106 try testArgs(@Vector(8, u31), .{
3107 0x611bb129, 0x5d2aaa83, 0x33fe2094, 0x4196b6e7,
3108 0x4149fddc, 0x5439adc5, 0x4b88bbfd, 0x1c217427,
10483109 });
1049
1050 try testArgs(@Vector(3, u16), .{ 0, 1, 1 << 15 });
1051 try testArgs(@Vector(1, u16), .{
1052 0x4da6,
3110 try testArgs(@Vector(9, u31), .{
3111 0x3aed8e55, 0x24cc6983, 0x202a1a4a, 0x2b2c7a1f,
3112 0x0b356172, 0x6d5d4290, 0x705bab83, 0x231da4ac,
3113 0x3c8da70f,
10533114 });
1054 try testArgs(@Vector(2, u16), .{
1055 0x04d7, 0x50c6,
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,
10563120 });
1057 try testArgs(@Vector(4, u16), .{
1058 0x4c06, 0xd71f, 0x4d8f, 0xe0a4,
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,
10593126 });
1060 try testArgs(@Vector(8, u16), .{
1061 0xee9a, 0x881d, 0x31fb, 0xd3f7, 0x2c74, 0x6949, 0x4e04, 0x53d7,
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,
10623133 });
1063 try testArgs(@Vector(16, u16), .{
1064 0xeafe, 0x9a7b, 0x0d6f, 0x18cb, 0xaf8f, 0x8ee4, 0xa47e, 0xd39a,
1065 0x6572, 0x9c53, 0xf36e, 0x982e, 0x41c1, 0x8682, 0xf5dc, 0x7e01,
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,
10663143 });
1067 try testArgs(@Vector(32, u16), .{
1068 0xdfb3, 0x7de6, 0xd9ed, 0xb42e, 0x95ac, 0x9b5b, 0x0422, 0xdfcd,
1069 0x6196, 0x4dbe, 0x1818, 0x8816, 0x75e7, 0xc9b0, 0x92f7, 0x1f71,
1070 0xe584, 0x576c, 0x043a, 0x0f31, 0xfc4c, 0x2c87, 0x6b02, 0x0229,
1071 0x25b7, 0x53cd, 0x9bab, 0x866b, 0x9008, 0xf0f3, 0xeb21, 0x88e2,
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,
10723153 });
1073 try testArgs(@Vector(64, u16), .{
1074 0x084c, 0x445f, 0xce89, 0xd3ee, 0xb399, 0x315d, 0x8ef8, 0x4f6f,
1075 0xf9af, 0xcbc4, 0x0332, 0xcd55, 0xa4dc, 0xbc38, 0x6e33, 0x8ead,
1076 0xd15a, 0x5057, 0x58ef, 0x657a, 0xe9f0, 0x1418, 0x2b62, 0x3387,
1077 0x1c15, 0x04e1, 0x0276, 0x3783, 0xad9c, 0xea9a, 0x0e5e, 0xe803,
1078 0x2ee7, 0x0cf1, 0x30f1, 0xb12a, 0x381b, 0x353d, 0xf637, 0xf853,
1079 0x2ac1, 0x7ce8, 0x6a50, 0xcbb8, 0xc9b8, 0x9b25, 0xd1e9, 0xeff0,
1080 0xc0a2, 0x8e51, 0xde7a, 0x4e58, 0x5685, 0xeb3f, 0xd29b, 0x66ed,
1081 0x3dd5, 0xcb59, 0x6003, 0xf710, 0x943a, 0x7276, 0xe547, 0xe48f,
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,
10823164 });
10833165
1084 try testArgs(@Vector(3, i17), .{ -1 << 16, -1, 0 });
1085 try testArgs(@Vector(3, u17), .{ 0, 1, 1 << 16 });
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 });
10913166 try testArgs(@Vector(1, i32), .{
1092 -0x27f49dce,
3167 -0x57167162,
10933168 });
10943169 try testArgs(@Vector(2, i32), .{
1095 0x24641ec7, 0x436c5bd2,
3170 -0x0afc5ccf, 0x7c289f05,
3171 });
3172 try testArgs(@Vector(3, i32), .{
3173 -0x62b04b64, -0x749219be, -0x5f6f4126,
10963174 });
10973175 try testArgs(@Vector(4, i32), .{
1098 0x59e5eff1, -0x46b5b8db, -0x1029efa7, -0x1937fe73,
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,
10993185 });
11003186 try testArgs(@Vector(8, i32), .{
1101 0x0ca01401, -0x46b2bc0c, 0x51e5dee7, -0x74edfde8,
1102 -0x0ab09a6a, -0x5a51a88b, 0x18c28bc2, 0x63d79966,
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,
11033200 });
11043201 try testArgs(@Vector(16, i32), .{
1105 0x3900e6c8, 0x2408c2bb, 0x5e01bc6e, -0x0eb8c400,
1106 0x4c0dc6c2, 0x6c75e7f5, -0x66632ca8, 0x0e978daf,
1107 0x61ffe725, 0x720253e4, -0x6f6c38c1, -0x3302e60a,
1108 0x43f53c92, 0x5a3c1075, 0x7044a110, 0x18e41ad8,
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,
11093223 });
11103224 try testArgs(@Vector(32, i32), .{
1111 0x3a5c2b01, 0x2a52d9fa, -0x5843fc47, 0x6c493c7d,
1112 -0x47937cb1, -0x3ad95ec4, 0x71cf5e7b, -0x3b6719c2,
1113 0x06bace17, -0x6ccda5ed, 0x42b9ed04, 0x6be2b287,
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,
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,
11193244 });
11203245
1121 try testArgs(@Vector(3, u32), .{ 0, 1, 1 << 31 });
11223246 try testArgs(@Vector(1, u32), .{
1123 0x17e2805c,
3247 0x417af061,
11243248 });
11253249 try testArgs(@Vector(2, u32), .{
1126 0xdb6aadc5, 0xb1ff3754,
3250 0x67d25405, 0x24530653,
3251 });
3252 try testArgs(@Vector(3, u32), .{
3253 0xea5a8586, 0xa486d5c7, 0x441951fa,
11273254 });
11283255 try testArgs(@Vector(4, u32), .{
1129 0xf7897b31, 0x342e1af9, 0x190fd76b, 0x283b5374,
3256 0x1330c66d, 0x190e4b87, 0xc40a763c, 0x1e04942a,
3257 });
3258 try testArgs(@Vector(5, u32), .{
3259 0xf2417484, 0x4628508b, 0xe5ce63a1, 0xedff9058,
3260 0x67e5a112,
3261 });
3262 try testArgs(@Vector(7, u32), .{
3263 0x294d002e, 0xb11b9a83, 0xd41dbc28, 0x956abbab,
3264 0x27aa5a4d, 0x236634c4, 0xfcb579e8,
11303265 });
11313266 try testArgs(@Vector(8, u32), .{
1132 0x81a0bd16, 0xc55da94e, 0x910f7e7c, 0x078d5ef7,
1133 0x0bdb1e4a, 0xf1a96e99, 0xcdd729b5, 0xe6966a1c,
3267 0xdaaaf612, 0x3e5ba097, 0xaab27d52, 0xc4057607,
3268 0xc2377f4c, 0xaed82c05, 0x681c6c6e, 0xd33108ab,
3269 });
3270 try testArgs(@Vector(9, u32), .{
3271 0xb286c075, 0x95e2365c, 0x7db24272, 0x4d87734d,
3272 0x74b07a88, 0xc7f664a7, 0x94b83937, 0x61edd88b,
3273 0xddc2ce66,
3274 });
3275 try testArgs(@Vector(15, u32), .{
3276 0x37c1fd6a, 0x72b89c34, 0x9835fc75, 0x232fed02,
3277 0x33cc380a, 0xf8bc2d4f, 0x91944e7a, 0x70825173,
3278 0x78662e47, 0x9c6f9d5e, 0xb60e6b29, 0xabf644ab,
3279 0x43f862a8, 0xffab8ea1, 0xf66309e0,
11343280 });
11353281 try testArgs(@Vector(16, u32), .{
1136 0xfee812db, 0x29eacbed, 0xaed48136, 0x3053de13,
1137 0xbbda20df, 0x6faa274a, 0xe0b5ec3a, 0x1878b0dc,
1138 0x98204475, 0x810d8d05, 0x1e6996b6, 0xc543826a,
1139 0x53b47d8c, 0xc72c3142, 0x12f7e1f9, 0xf6782e54,
3282 0xdaa0372e, 0xfc2bd33b, 0xdc12c2ec, 0xc0965f29,
3283 0xbe7f49dc, 0xf16d3f9e, 0x0afbef72, 0x57683019,
3284 0xd4daf23a, 0x8008f39c, 0xf50ba3e1, 0x5112baa2,
3285 0x28b6f532, 0xd0c76d49, 0x245fa32e, 0xdfdad69f,
3286 });
3287 try testArgs(@Vector(17, u32), .{
3288 0xf2c0946e, 0xec9a560f, 0x828cbfe0, 0x59e22a95,
3289 0x3e3d7663, 0x16cee3ce, 0xad45d67b, 0x164c7ce7,
3290 0xf08aa758, 0xc43048e4, 0xbef1aaf1, 0xa933e19a,
3291 0x501a3c3b, 0x664e1fc0, 0xea91d637, 0xcba5ff92,
3292 0x494e8b1d,
3293 });
3294 try testArgs(@Vector(31, u32), .{
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,
11403303 });
11413304 try testArgs(@Vector(32, u32), .{
1142 0xf0cf30d3, 0xe3c587b8, 0xcee44739, 0xe4a0bd72,
1143 0x41d44cce, 0x6d7c4259, 0xd85580a5, 0xec4b02d7,
1144 0xa366483d, 0x2d7b59d4, 0xe9c0ace4, 0x82cb441c,
1145 0xa23958ba, 0x04a70148, 0x3f0d20a3, 0xf9e21e37,
1146 0x009fce8b, 0x4a34a229, 0xf09c35cf, 0xc0977d4d,
1147 0xcc4d4647, 0xa30f1363, 0x27a65b14, 0xe572c785,
1148 0x8f42e320, 0x2b2cdeca, 0x11205bd4, 0x739d26aa,
1149 0xcbcc2df0, 0x5f7a3649, 0xbde1b7aa, 0x180a169f,
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,
3313 });
3314 try testArgs(@Vector(33, u32), .{
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,
3324 });
3325
3326 try testArgs(@Vector(1, i33), .{
3327 -0x06cb7eb3c,
3328 });
3329 try testArgs(@Vector(2, i33), .{
3330 -0x08e99ce23, -0x04f4fc81d,
3331 });
3332 try testArgs(@Vector(3, i33), .{
3333 0x04dca5870, -0x057649287,
3334 -0x0629b7859,
3335 });
3336 try testArgs(@Vector(4, i33), .{
3337 -0x03ac9fa2d, -0x056448c8c,
3338 -0x06327f240, 0x057caa00d,
3339 });
3340 try testArgs(@Vector(5, i33), .{
3341 -0x0eda7ca37, 0x00c150a49,
3342 0x0961b87fb, -0x0efac7b65,
3343 -0x0abf89ecc,
3344 });
3345 try testArgs(@Vector(7, i33), .{
3346 0x0174d5a59, -0x09103671b,
3347 -0x0920ebe1b, -0x05f76f77b,
3348 0x02f912948, -0x036177518,
3349 0x0d8c9d0c9,
3350 });
3351 try testArgs(@Vector(8, i33), .{
3352 0x01609ce6e, -0x02816dc90,
3353 -0x08be4b46a, 0x032e9d1c6,
3354 0x070c248ab, 0x02700eade,
3355 -0x0d5b561fe, -0x0c5ecfe6b,
3356 });
3357 try testArgs(@Vector(9, i33), .{
3358 0x0ff839829, 0x0a7311ec7,
3359 -0x0875b2074, 0x04b868bf9,
3360 0x05c7baa1a, -0x096406153,
3361 0x08858ca39, 0x0e3b478b0,
3362 -0x02456564b,
3363 });
3364 try testArgs(@Vector(15, i33), .{
3365 0x0358b5e15, -0x02489976c,
3366 0x0e710e92f, 0x0cb044409,
3367 0x0bf246fce, -0x081e28596,
3368 0x0b6040038, -0x043f0f0ea,
3369 0x0e4ba67c8, -0x0c22ed81d,
3370 0x0f23c0c0e, 0x06540b535,
3371 -0x067b1d030, 0x09f71bb39,
3372 0x0c23fa3b0,
3373 });
3374 try testArgs(@Vector(16, i33), .{
3375 -0x0142ab9ee, 0x0459423ea,
3376 0x0de356963, -0x0332d4d5e,
3377 -0x0e3352b48, 0x0d0f05ada,
3378 0x06684b9de, 0x0f1e76fa6,
3379 -0x0d9f75c96, 0x07e244fb3,
3380 0x08b8cab5a, 0x0debabd35,
3381 0x0f5434271, -0x01bc41173,
3382 0x0a27988f5, 0x0fb4e5cf0,
3383 });
3384 try testArgs(@Vector(17, i33), .{
3385 -0x076e0997e, -0x074090dcb,
3386 -0x05a6ec729, -0x0a5a88f89,
3387 -0x020066f29, 0x08cb7a55c,
3388 -0x092eb4cf8, 0x06ff474ce,
3389 0x023df42a8, 0x0dd1a69fe,
3390 0x0b9150082, -0x0162fde21,
3391 0x024df7571, 0x0bb74d943,
3392 -0x05de07f92, -0x09f02a5e2,
3393 0x09416d842,
3394 });
3395
3396 try testArgs(@Vector(1, u33), .{
3397 0x0ebec10d6,
3398 });
3399 try testArgs(@Vector(2, u33), .{
3400 0x1f42bc395, 0x1eb083140,
3401 });
3402 try testArgs(@Vector(3, u33), .{
3403 0x0727b446a, 0x1ac44a4b3,
3404 0x0b0730c42,
3405 });
3406 try testArgs(@Vector(4, u33), .{
3407 0x1d821cff0, 0x011b28b87,
3408 0x0739856cb, 0x19ed6a1fa,
3409 });
3410 try testArgs(@Vector(5, u33), .{
3411 0x0b2314516, 0x19c0de98e,
3412 0x00eb7fc2e, 0x1987258e6,
3413 0x003e3280e,
3414 });
3415 try testArgs(@Vector(7, u33), .{
3416 0x156b9af69, 0x16623874a,
3417 0x198771fa2, 0x1891367f0,
3418 0x1158cfd5a, 0x1c6a51cab,
3419 0x084f757b5,
3420 });
3421 try testArgs(@Vector(8, u33), .{
3422 0x1be002f1d, 0x0dd42ad31,
3423 0x04ba63298, 0x1534bd4a1,
3424 0x0a72dfea0, 0x0eae2b4bf,
3425 0x1bf962681, 0x0e57f3613,
3426 });
3427 try testArgs(@Vector(9, u33), .{
3428 0x11f21a47d, 0x0a8fef8a1,
3429 0x0009fb473, 0x06e94c939,
3430 0x0a9c9c22e, 0x0bfb8f89e,
3431 0x17ade9bf2, 0x11e4bc9e0,
3432 0x15968c696,
3433 });
3434 try testArgs(@Vector(15, u33), .{
3435 0x02af9eb53, 0x19ac3812b,
3436 0x1632dbb21, 0x023d5a196,
3437 0x1e154b359, 0x0b371fa45,
3438 0x0e565a06f, 0x1965c7126,
3439 0x018bf92f3, 0x14b48f26e,
3440 0x10c954288, 0x08c945996,
3441 0x0216073fd, 0x15fa9132e,
3442 0x0b6a428db,
3443 });
3444 try testArgs(@Vector(16, u33), .{
3445 0x0a6a69363, 0x19ea477ba,
3446 0x0493ff35e, 0x1fece1b1d,
3447 0x063eb6012, 0x103c65796,
3448 0x0e98ca7fd, 0x04b972c94,
3449 0x1b0dce10e, 0x088b67474,
3450 0x181322bd9, 0x1f78856bb,
3451 0x0f2f70b1b, 0x15ac608f8,
3452 0x08c9817f4, 0x00bc52fa0,
3453 });
3454 try testArgs(@Vector(17, u33), .{
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,
11503464 });
11513465
1152 try testArgs(@Vector(3, i33), .{ -1 << 32, -1, 0 });
1153 try testArgs(@Vector(3, u33), .{ 0, 1, 1 << 32 });
3466 try testArgs(@Vector(1, i63), .{
3467 0x3751c894e8fbe69b,
3468 });
3469 try testArgs(@Vector(2, i63), .{
3470 0x02659637000f4849, -0x1c21ef23a4708c02,
3471 });
3472 try testArgs(@Vector(3, i63), .{
3473 -0x3bd1aa5cccdac018, -0x1a70b3d17b0a767e,
3474 -0x3e6cf9c01feced83,
3475 });
3476 try testArgs(@Vector(4, i63), .{
3477 -0x21cf08dffb8c4261, -0x02952228a9555748,
3478 -0x0d28be6a86a51bbd, -0x048efe42b6a083e6,
3479 });
3480 try testArgs(@Vector(5, i63), .{
3481 0x191b8bf9c3cb1974, 0x173fcea0524d0dbe,
3482 -0x1d8fb8b6f758c797, -0x3837eb2a2bda5c45,
3483 0x31ad632bd048b341,
3484 });
3485 try testArgs(@Vector(7, i63), .{
3486 -0x2d8b6c97799235ea, 0x26d281f112edb009,
3487 0x300456663162abb3, 0x01530ea40f5a18c5,
3488 -0x12da0488be671be3, 0x0ec6f12b30534b7f,
3489 -0x216deec3e431f0bf,
3490 });
3491 try testArgs(@Vector(8, i63), .{
3492 0x245bf28fd8b546ba, -0x2956bf6106b5d362,
3493 -0x319ab740f51b4154, -0x0e2e242a7881fac6,
3494 0x3bfcc5138251883a, -0x1149a93f2eb40973,
3495 0x388be2cc2f89ad62, 0x28e30c5c7552f64a,
3496 });
3497 try testArgs(@Vector(9, i63), .{
3498 0x01944c5c05ed619c, -0x01e49493b7503176,
3499 0x0629c5be94d83864, -0x0c07c0a839450459,
3500 0x1a0382b2beff495a, -0x2fd440b33af6eefb,
3501 0x00c526ddfbcaacda, 0x326e139a32198f4d,
3502 -0x11b5067f11748882,
3503 });
3504 try testArgs(@Vector(15, i63), .{
3505 -0x22eaa5b856307e6b, 0x06b7518dad66dd8d,
3506 -0x1c666681c4ca06f1, -0x34febd64e274f4f3,
3507 0x1305d4b063fbb18c, -0x1df2eaa1ebb176b4,
3508 0x19dd5ae15bb8f765, -0x066c6c1d31def660,
3509 -0x1bf661e9d29b449c, -0x3eaedd122226c2de,
3510 -0x0fb1ba685fdb2b68, -0x32fd1e57bb04eb26,
3511 0x3fd66e9f96aa8df0, -0x3fbe307aa6523b61,
3512 0x1df0e564a0a8e2d7,
3513 });
3514 try testArgs(@Vector(16, i63), .{
3515 0x061767e9366a32ac, -0x1c7542a68d5750aa,
3516 -0x174386205ba10e99, 0x1f7ae720e2b8513c,
3517 -0x286d271f72914c1b, 0x0ba2ccdcdae61287,
3518 -0x294d3c0c5c99c1ad, -0x094390e09b71d711,
3519 0x1ff69b4e11e4577d, 0x38376ee4fd90d9c7,
3520 -0x1fed65c3a90bb2ff, -0x0158ed8a5643f0f2,
3521 0x101e5ce53748f42f, 0x0a29f1e053325ddb,
3522 0x3b5826ebb9380e0f, -0x08593f40b8e95311,
3523 });
3524 try testArgs(@Vector(17, i63), .{
3525 0x267962dbbbc555e2, 0x3acabce21dcfa860,
3526 0x3b3bd612d8ac0fe6, 0x164fbaeb4b6ebf96,
3527 0x0b59a4caca202e9f, -0x1005cf4dd7d841ea,
3528 0x04900ca2be0565a9, -0x1c0749e904112370,
3529 0x02e4f2e360a13b6c, 0x16baa5d7696d83ec,
3530 0x0c2616a3d3dec6a7, 0x041bea2fa7bac749,
3531 -0x2ecc7a999b3da500, -0x0def15b53d6a7490,
3532 -0x2c8d96e583a7dc12, -0x2f75e205478cbd3d,
3533 -0x2746871924743046,
3534 });
11543535
1155 try testArgs(@Vector(3, i63), .{ -1 << 62, -1, 0 });
1156 try testArgs(@Vector(3, u63), .{ 0, 1, 1 << 62 });
3536 try testArgs(@Vector(1, u63), .{
3537 0x2177701462817ae8,
3538 });
3539 try testArgs(@Vector(2, u63), .{
3540 0x4d8aefa47c681718, 0x3c8bc100dc62a229,
3541 });
3542 try testArgs(@Vector(3, u63), .{
3543 0x51efe053a56e54cc, 0x4813340907e62f02,
3544 0x6cf745dfcfc5a0f8,
3545 });
3546 try testArgs(@Vector(4, u63), .{
3547 0x64b75da9ac93ca30, 0x163e34f890f56173,
3548 0x0a04ca663e580162, 0x14693b19720c5b04,
3549 });
3550 try testArgs(@Vector(5, u63), .{
3551 0x06bc896f283c63d7, 0x010d4ad73df2c443,
3552 0x3322a2732c5175a0, 0x1021e5e040a6c335,
3553 0x45afd197802c1448,
3554 });
3555 try testArgs(@Vector(7, u63), .{
3556 0x2efe752b1ee67744, 0x78c4c63665a5b5d2,
3557 0x1f0bfdabc6ef4bf1, 0x2be2324013eaff8a,
3558 0x5439d73093cd89d5, 0x61254b8532f1f7bd,
3559 0x6f3523b66691dba5,
3560 });
3561 try testArgs(@Vector(8, u63), .{
3562 0x7221f7d6f82ce4da, 0x591e824f45c20f9d,
3563 0x4e5f3d829a9090a1, 0x4b46fe4492b60c10,
3564 0x792e48d707425d79, 0x12454f364b8a3642,
3565 0x02cd18a19104066a, 0x099e27552e33ea05,
3566 });
3567 try testArgs(@Vector(9, u63), .{
3568 0x22f0f07ebf34daab, 0x0e52ab968e844242,
3569 0x1d5979b9177b31d9, 0x59b2d70b05eaca66,
3570 0x7eb234b48319fe7a, 0x2ef2c5db4b85978d,
3571 0x43f1d01e26f2c33f, 0x4eb09118689a5aba,
3572 0x43f205474675dd47,
3573 });
3574 try testArgs(@Vector(15, u63), .{
3575 0x14fa00be6ffab27e, 0x369543c3445d91aa,
3576 0x11754739f827f2e7, 0x3ff0ac34ed39c6ec,
3577 0x726b45a4e174a68c, 0x09c2a9b2197f0ade,
3578 0x22edec3dd9ae3783, 0x0611bd9d50406ae7,
3579 0x63b9ade47da2ba37, 0x04bd2c7a867bcba2,
3580 0x0d68a5438ae1d495, 0x70da32c6373f1036,
3581 0x5b85033485c5fe55, 0x43e6169b503ca8de,
3582 0x40cde07fe0470dc6,
3583 });
3584 try testArgs(@Vector(16, u63), .{
3585 0x1c635b835478a911, 0x0995b39ff44566a4,
3586 0x0cc867c3c17916ab, 0x10ed098c1ba3c91c,
3587 0x551afb772998e956, 0x4494d2d8453467de,
3588 0x48ae36cf8787812e, 0x163ec6db793793c2,
3589 0x1096a8cc35ad1ce1, 0x4029214025020ed9,
3590 0x4b322be7dd63b2da, 0x08c9e6ae8356922a,
3591 0x06efd2d7fa64419c, 0x5299f1bd4ef1d8af,
3592 0x4685daa8a2a8d7dc, 0x500d31c70e37dfac,
3593 });
3594 try testArgs(@Vector(17, u63), .{
3595 0x0c9e8888be3a1d7a, 0x3eb6dba412d9e9f8,
3596 0x4a36342aa344f7ba, 0x6c8baf91ed4085ef,
3597 0x343c5eeb15de875b, 0x001082f9c30cb0f0,
3598 0x3875a1104b976588, 0x737ad1482363b5b0,
3599 0x47e6be33674ea76f, 0x4d4fad5f4d31c8e6,
3600 0x3bde471489363a93, 0x462f3ee217211130,
3601 0x5139c07adde61547, 0x34f5436cce96302e,
3602 0x47f433875f988720, 0x2d984bcfe65386b6,
3603 0x70fe9dd022a1ace7,
3604 });
11573605
1158 try testArgs(@Vector(3, i64), .{ -1 << 63, -1, 0 });
11593606 try testArgs(@Vector(1, i64), .{
1160 0x29113011488d8b65,
3607 -0x4b7fb0b786be5c3a,
11613608 });
11623609 try testArgs(@Vector(2, i64), .{
1163 -0x3f865dcdfd831d03, -0x35512d15095445d6,
3610 0x2137d770dcd7210d, 0x57f8f60e1ae33a48,
3611 });
3612 try testArgs(@Vector(3, i64), .{
3613 0x01f4d5911e62a232, -0x6f02ad23979236ad,
3614 0x78b48dc1d900fc75,
11643615 });
11653616 try testArgs(@Vector(4, i64), .{
1166 0x6f37a9484440251e, 0x2757e5e2b77e6ef3,
1167 0x4903a91bd2993d0b, 0x162244ba22371f62,
3617 -0x7127d14674e525fd, 0x6305c7259a0349c1,
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,
11683630 });
11693631 try testArgs(@Vector(8, i64), .{
1170 -0x46e2340c765175c1, -0x031ee2297e6cc8b3,
1171 -0x2627434d4b4fb796, 0x525e1ef31b6daa46,
1172 0x72d8eaaea07fa5ea, 0x2a8c0c36da019448,
1173 -0x5419ebf5cd514cde, -0x618c56a881057ac4,
3632 -0x77388284294cc650, 0x4eaacacd5f19da71,
3633 -0x7a55c43d7f0c2e69, -0x181ffd0b2bba3542,
3634 -0x03c7eed19ea409f0, 0x02d7a2d738ec292c,
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,
11743653 });
11753654 try testArgs(@Vector(16, i64), .{
1176 0x36b4a703d084c774, 0x07a500f0d603a4d5,
1177 -0x27387989d2450cdd, 0x02073880984d74c8,
1178 -0x18d1593e36724417, -0x79df283cc6f403d8,
1179 0x36838a7c54da5f2b, -0x2bf76c1666a1b768,
1180 -0x6ace0d64a2757edc, 0x41442e9979a0ab64,
1181 0x002612bfdf419826, 0x1128ba5648d22fe8,
1182 0x49b0f67e0abb8f3b, 0x6bf3e9ac37f73cf3,
1183 -0x5c89f516258c7e77, 0x6b345f04e60d2e56,
3655 0x4a200de54cf8a7d2, 0x7aa8a43d6ce85e1d,
3656 0x635c52f9d27dc223, -0x4f8273cfef9532a5,
3657 0x28e0934381355f7d, -0x1f4c5936fdc08f03,
3658 -0x1e48c06274cedf3b, -0x437a90f8ae575a54,
3659 -0x47a1285dc3053bfb, -0x2b9f621c5282cf9c,
3660 -0x3afbbad2d44d3b2c, 0x093993c1a3e2446c,
3661 -0x06e64b37f5cbf493, 0x7ef6fa9fdbf10a56,
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,
11843674 });
11853675
1186 try testArgs(@Vector(3, u64), .{ 0, 1, 1 << 63 });
11873676 try testArgs(@Vector(1, u64), .{
1188 0x7d2e439abb0edba7,
3677 0x355b7529a18f6e0a,
11893678 });
11903679 try testArgs(@Vector(2, u64), .{
1191 0x3749ee5a2d237b9f, 0x6d8f4c3e1378f389,
3680 0x93377f019ceeb5f9, 0x990ccc5803cebd4b,
3681 });
3682 try testArgs(@Vector(3, u64), .{
3683 0xdcf28cd5bc1bcd54, 0x3770fa01b4bc08f9,
3684 0x5feeab26a2e0c753,
11923685 });
11933686 try testArgs(@Vector(4, u64), .{
1194 0x03c127040e10d52b, 0xa86fe019072e27eb,
1195 0x0a554a47b709cdba, 0xf4342cc597e196c3,
3687 0xfb61199844333d29, 0xfac4e5a64b92413c,
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,
11963700 });
11973701 try testArgs(@Vector(8, u64), .{
1198 0xea455c104375a055, 0x5c35d9d945edb2fa,
1199 0xc11b73d9d9d546fc, 0x2a9d63aae838dd5b,
1200 0xed6603f1f5d574b3, 0x2f37b354c81c1e56,
1201 0xbe7f5e2476bc76bd, 0xb0c88eacfffa9a8f,
3702 0x794ce49dc61ffe02, 0x26ded6f4ca236f77,
3703 0x2bb852a1a181e016, 0x9218a461b622abf3,
3704 0x250471ad116f28ab, 0x732280396a95f70f,
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,
12023723 });
12033724 try testArgs(@Vector(16, u64), .{
1204 0x2258fc04b31f8dbe, 0x3a2e5483003a10d8,
1205 0xebf24b31c0460510, 0x15d5b4c09b53ffa5,
1206 0x05abf6e744b17cc6, 0x9747b483f2d159fe,
1207 0x4616d8b2c8673125, 0x8ae3f91d422447eb,
1208 0x18da2f101a9e9776, 0x77a1197fb0441007,
1209 0x4ba480c8ec2dd10b, 0xeb99b9c0a1725278,
1210 0xd9d0acc5084ecdf0, 0xa0a23317fff4f515,
1211 0x0901c59a9a6a408b, 0x7c77ca72e25df033,
3725 0xd09341c824a83e25, 0x8a30caf3359f3d58,
3726 0x46cbadcd68afd397, 0x9f5f3e7ef79d9255,
3727 0xa247f41fd962e4ae, 0x8437c02fa08497e8,
3728 0xc375990c3cd82fe9, 0x5168826a7224f73f,
3729 0xc99ca45a2b746bb4, 0x42b849004159ce02,
3730 0x007c450769410f61, 0x8f2f91cf22e178fa,
3731 0x86ee7d1ff41c0f89, 0x079e9ec26a77aa45,
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,
12123856 });
12133857
1214 try testArgs(@Vector(3, i65), .{ -1 << 64, -1, 0 });
1215 try testArgs(@Vector(3, u65), .{ 0, 1, 1 << 64 });
3858 try testArgs(@Vector(1, i127), .{
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 });
1218 try testArgs(@Vector(3, u127), .{ 0, 1, 1 << 126 });
3914 try testArgs(@Vector(1, u127), .{
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 });
12213970 try testArgs(@Vector(1, i128), .{
1222 -0x2b0b1462b44785f39d1b7d763ec7bdb2,
3971 0x743d7edc2f7bae65332567ccb7e17140,
12233972 });
12243973 try testArgs(@Vector(2, i128), .{
1225 -0x2faebe898a6fe60fbc6aadc3623431b7,
1226 0x5e596259e7b2588860d2b470ba751ace,
3974 0x29cba1f54ca060061ce2a082f24d3cff,
3975 0x67fe5eecb0e54c0b6680c8723c91ee1f,
3976 });
3977 try testArgs(@Vector(3, i128), .{
3978 0x5d23fbff853640375e4fea765d45096a,
3979 0x0510c243956b80ca93838c661f4c4ce9,
3980 0x7bde7db0cc6a7aaedd636197705b85e2,
12273981 });
12283982 try testArgs(@Vector(4, i128), .{
1229 -0x624cb7e74cf789c06121809a3a5b51ba,
1230 0x23af4553d4d64672795c2b949635426f,
1231 -0x0b598b1f94876757fb13f2198e902b13,
1232 0x1daf732f50654d8211d464fda4fc030c,
3983 -0x744c77b7f40ccec86498d4e3ff92260b,
3984 -0x2c3f3f0b6a8cd17f73a082846a77dbb7,
3985 0x2af1c5e71f3764211e95b37db75008cf,
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,
12334003 });
12344004 try testArgs(@Vector(8, i128), .{
1235 -0x03c7df38daee9bc9a2c659a1a124ef10,
1236 0x657a590c91905c4021c28b0d6e42304a,
1237 -0x3f5176206dadc974d10e6fcbd67f3d29,
1238 0x066310ace384b1bc3549c71113b96b8a,
1239 -0x6c0201f66583206fcea7b7fe11889644,
1240 -0x5cc4d2a368002b380b25415be83f8218,
1241 0x11156c91b97a6a93427009efebcb2c31,
1242 -0x4221b5249ed0686c2ff2d5cab9f1c362,
4005 -0x7c4635f4573902107d7f9287beed86ad,
4006 -0x57a0f8b1fc10c247bc362724cb2638d1,
4007 0x47a5955f0fee284a2c14ce5f8efaf8f4,
4008 0x6b3b18486e73a0277abaca37235ae1c2,
4009 0x5694cacab37b6a83e9399d4d8bfb0d8c,
4010 -0x7ad35792e9e56fbfdf964c31f9dfe641,
4011 0x5729001f2b5ae188d92aa361d4d3bc6a,
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,
12434024 });
12444025
1245 try testArgs(@Vector(3, u128), .{ 0, 1, 1 << 127 });
12464026 try testArgs(@Vector(1, u128), .{
1247 0x809f29e7fbafadc01145e1732590e7d9,
4027 0x5566c76797d4523a32920021e51621d5,
12484028 });
12494029 try testArgs(@Vector(2, u128), .{
1250 0x5150ac3438aacd0d51132cc2723b2995,
1251 0x151be9c47ad29cf719cf8358dd40165c,
4030 0x7e82f7f4dfef8f442243b3b3b355a96e,
4031 0xf967bd965d50a70c0d4000d9f7928b83,
4032 });
4033 try testArgs(@Vector(3, u128), .{
4034 0xd2c9228d99fc7a00a9331c6b81545e7c,
4035 0xdb03015497d36dd203b3349722706791,
4036 0xd3fe8ece75a5f18e8e34a257cc2c6c64,
12524037 });
12534038 try testArgs(@Vector(4, u128), .{
1254 0x4bae22df929f2f7cb9bd84deaad3e7a8,
1255 0x1ed46b2d6e1f3569f56b2ac33d8bc1cb,
1256 0xae93ea459d2ccfd5fb794e6d5c31aabb,
1257 0xb1177136acf099f550b70949ac202ec4,
4039 0xa505ecca2d7b80d447475b9dd1f5e07c,
4040 0xc347f7b77a199786fabb8da91b40925a,
4041 0xbd2f98ea28ad941c21b342cdfbb4d297,
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,
12584059 });
12594060 try testArgs(@Vector(8, u128), .{
1260 0x7cd78db6baed6bfdf8c5265136c4e0fd,
1261 0xa41b8984c6bbde84640068194b7eba98,
1262 0xd33102778f2ae1a48d1e9bf8801bbbf0,
1263 0x0d59f6de003513a60055c86cbce2c200,
1264 0x825579d90012afddfbf04851c0748561,
1265 0xc2647c885e9d6f0ee1f5fac5da8ef7f5,
1266 0xcb4bbc1f81aa8ee68aa4dc140745687b,
1267 0x4ff10f914f74b46c694407f5bf7c7836,
4061 0x7267d2c9d89152d441e28beac39fa0e5,
4062 0x92612c4fa59b5584bd5c68a6ef468616,
4063 0xb5c583d6b304b3843951ae367133504c,
4064 0xf1b17d139b8c683990dcbe42f2ffe671,
4065 0x71f721519c179ee00f737645f456b65f,
4066 0x8ab931bcf9d54fe8f998ea07f7ad8e55,
4067 0xd4b148cd313442ec6445e5c09a3de2ea,
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,
12684080 });
12694081
1270 try testArgs(@Vector(3, i129), .{ -1 << 128, -1, 0 });
1271 try testArgs(@Vector(3, u129), .{ 0, 1, 1 << 128 });
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,
4082 try testArgs(@Vector(1, i129), .{
4083 -0x0f44902992dd90b6b2bdcd3dee26ed81b,
12794084 });
1280 try testArgs(@Vector(2, i192), .{
1281 0x187a65fa29d1981dacf927e6a8e435481cfdcba6b63b781b,
1282 -0x0f53cb01d7662de0d19fa0b250e5bbc6edf7d3dd152f0dc3,
4085 try testArgs(@Vector(2, i129), .{
4086 -0x0305d2bf464b50a05766933859bb32851,
4087 -0x0db8e49f48667923a7316b6b02c24956c,
12834088 });
1284 try testArgs(@Vector(4, i192), .{
1285 -0x3a456cd0eab663b34d5b6ad15933a31623aacb913adb8e41,
1286 -0x03376d57e9c495ac4ea623e1bf427ae22dcef26e4833da33,
1287 -0x28a90cfee819450e3000f3f2694a7dba2c02311996e01073,
1288 0x46c6cae4281780acd6a0322c3f4f8b63c3741da31b20a3cd,
4089 try testArgs(@Vector(3, i129), .{
4090 -0x0ff7d15e1c921f6c09189f8c22a1eebe5,
4091 0x0c6b14a671cd4a0ea34b31dd3762f8e93,
4092 0x011c8b2dd5616cd38811691ed41e44a7f,
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,
12894106 });
12904107
1291 try testArgs(@Vector(3, u192), .{ 0, 1, 1 << 191 });
1292 try testArgs(@Vector(1, u192), .{
1293 0xe7baafcb9781626a77571b0539b9471a60c97d6c02106c8b,
4108 try testArgs(@Vector(1, u129), .{
4109 0x04bf162b7335a7ed6595ef439c3bca959,
4110 });
4111 try testArgs(@Vector(2, u129), .{
4112 0x11f0b8a2dd0106c219bb3178e05494541,
4113 0x12860bc7203d4df432a3cf65e162278d9,
4114 });
4115 try testArgs(@Vector(3, u129), .{
4116 0x0e7240ab63132cb5a050a3a37f0aae72f,
4117 0x1761ee40c60d0e3d8d10b9b085401766d,
4118 0x06ab93ee8933a9900386d6161cebbcde6,
12944119 });
1295 try testArgs(@Vector(2, u192), .{
1296 0xbc9510913ed09e2c2aa50ffab9f1bc7b303a87f36e232a83,
1297 0x1f37bee446d7712d1ad457c47a66812cb926198d052aee65,
4120 try testArgs(@Vector(4, u129), .{
4121 0x14abbd1dabf3b66dc4834bb6ca71cd663,
4122 0x0cec8c3f6edf7f1c4041ba3e9290fc368,
4123 0x065f7a02e2c674f50bf17a027dd99b6d6,
4124 0x14fea575487ebbbb907d4ea477bb41f51,
12984125 });
1299 try testArgs(@Vector(4, u192), .{
1300 0xdca6a7cfc19c69efc34022062a8ca36f2569ab3dce001202,
1301 0xd25a4529e621c9084181fdb6917c6a32eccc58b63601b35d,
1302 0x0a258afd6debbaf8c158f1caa61fed63b31871d13f51b43d,
1303 0x6b40a178674fcb82c623ac322f851623d5e993dac97a219a,
4126 try testArgs(@Vector(5, u129), .{
4127 0x0c7364e53c0e3d1b7adc4302471e944ce,
4128 0x01b877b126e0cac7eac0d8f1f21c186aa,
4129 0x0fb4e479178be9a9363dee23c7c772e8b,
4130 0x0a79c2021801327e5685c8f69afc82c80,
4131 0x0bb084ee07f1f1b0eae7b632b21effb99,
13044132 });
13054133
1306 try testArgs(@Vector(3, i193), .{ -1 << 192, -1, 0 });
1307 try testArgs(@Vector(3, u193), .{ 0, 1, 1 << 192 });
4134 try testArgs(@Vector(1, i255), .{
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 });
1310 try testArgs(@Vector(3, u255), .{ 0, 1, 1 << 254 });
4160 try testArgs(@Vector(1, u255), .{
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 });
13134186 try testArgs(@Vector(1, i256), .{
1314 0x59a12bff854679d9b3c6d1d195333d9f748dd1e2a7ad28f24f611a208bf91ed3,
4187 0x11ee16bea436e0ca62a4b2210bf40485200d01cbd7cdf7dffdeaa211341cc1b9,
13154188 });
13164189 try testArgs(@Vector(2, i256), .{
1317 0x6b266e98bd5e7e66ba90f2e1cb2ff555ac755efdbe0946313660c58b46c589bb,
1318 -0x4ab426d26f53253ae3b2fb412d9649fc8071db22605e528f918b9a3ee9d2a832,
4190 -0x2d656db593551216afa0151ba461ab2b45065679f5906fcaf982650d1ae08700,
4191 -0x1a9eca0762dc0aa39484646be3a3d31413399f03b752877ee1895cebacf79bb3,
4192 });
4193 try testArgs(@Vector(3, i256), .{
4194 0x1ce1dbf5cc4de891d8cb2650fd51532656189f6af66531e17e9898421b8eeb70,
4195 0x79693e75be0632e29a7c9d8fc6b8c6d999d99e5729c001c3d8be215166563374,
4196 0x360042a6f7deacda9311f0e6e720e4fcf569c49957872a7e4e2a9f29bff58efd,
13194197 });
13204198 try testArgs(@Vector(4, i256), .{
1321 -0x3a64f67fddd0859c0f3b063fc12b13b1865447b87d1740de51358421f50553b5,
1322 -0x7c364fc0218f1cab29425b1a4c9cbdbf0c676375bee8079b135ce40de3557c0b,
1323 0x368d25dc3eab1b00decd18679b29b7f4d95314161bd3ee687f2896e8cd525311,
1324 -0x6d9aacd172a363bf2d53ea497c289fd35e62c2484329c208e10a91b4cea88111,
4199 -0x3afaf6fc3c751086bb171ee26d4fa5d5867401468e860df8622cd70c74ecd286,
4200 -0x3286f5d9152243d178e5215e797b3fc6194e0bb3cc7eab1787131b5002bab4b1,
4201 -0x48c21dad136e077f3160b044d45088d6e38e1f6360810ad1d2e5236cf6291f53,
4202 -0x7ffe532698217c24e1aef9da766a880482864bd3edcefa5d691dc3eb987f9eec,
4203 });
4204 try testArgs(@Vector(5, i256), .{
4205 -0x683d8b39ca890a8bb379f971b7ce21ccfb2d02960fbb545f6184ff3b2b1b9e00,
4206 0x5234f0155f933ed2f6142c0482911c3752c18851c5826eab3c7b0367cb0222b0,
4207 -0x106f2a3eb03fedcbd8e09a7e50d4ddb711869d85b0933a1ae4990c60d18b02ee,
4208 0x1841840fa31b745ce19f58a0e26aeaf201ae47b20218ec1ac0f742d0a824fa70,
4209 -0x1beda34721cb08e6d259b090c4b86460113f5d3714e04a9efdbd838230b87e50,
13254210 });
13264211
1327 try testArgs(@Vector(3, u256), .{ 0, 1, 1 << 255 });
13284212 try testArgs(@Vector(1, u256), .{
1329 0x230413bb481fa3a997796acf282010c560d1942e7339fd584a0f15a90c83fbda,
4213 0xe160c3257eedecf8e4e794287d2bdbe05e0199f9fa377bacaab7150a08218c43,
13304214 });
13314215 try testArgs(@Vector(2, u256), .{
1332 0x3ad569f8d91fdbc9da8ec0e933565919f2feb90b996c90c352b461aa0908e62d,
1333 0x0f109696d64647983f1f757042515510729ad1350e862cbf38cb73b5cf99f0f7,
4216 0x2a2890961f9c32fd6862a8a789e13ae578b8e97e85df9bfe2cd1c3633f470bb9,
4217 0x42ff3305839a8fab4f37fcadfce0280df965a34fe306251ece6160dd39e51628,
4218 });
4219 try testArgs(@Vector(3, u256), .{
4220 0x1662b2361088c58a203bcc4248650c2b0c42cdd1fca6f9e075a1e3723ea39ad2,
4221 0x16fecf186c81ad2d5879a8f8fd32c07ef5d3e6864e0fa9d02e07d73d58eff0a3,
4222 0xa7a55547b67ecde8dd03f7821ca174f0c700ccfa4279be827da689db22a67b73,
13344223 });
13354224 try testArgs(@Vector(4, u256), .{
1336 0x1717c6ded4ac6de282d59f75f068da47d5a47a30f2c5053d2d59e715f9d28b97,
1337 0x3087189ce7540e2e0028b80af571ebc6353a00b2917f243a869ed29ecca0adaa,
1338 0x1507c6a9d104684bf503cdb08841cf91adab4644306bd67aafff5326604833ce,
1339 0x857e134ff9179733c871295b25f824bd3eb562977bad30890964fa0cdc15bb07,
4225 0x38425be8fb0d50bd71de47f3a43e79f1c5ff4e218c7e819fc99fc575d105fdcf,
4226 0xb35710b4e5f00e105b10198a43bdc34dbb311580649a5fe6ee95419288002437,
4227 0x6a0ffbd570da143aa47b79cdcffad77021e01c5089fd3b2ddeaeb0e6a742a0e2,
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,
13404262 });
13414263
1342 try testArgs(@Vector(3, i257), .{ -1 << 256, -1, 0 });
1343 try testArgs(@Vector(3, u257), .{ 0, 1, 1 << 256 });
4264 try testArgs(@Vector(1, i511), .{
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 });
1346 try testArgs(@Vector(3, u511), .{ 0, 1, 1 << 510 });
4277 try testArgs(@Vector(1, u511), .{
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 });
13494290 try testArgs(@Vector(1, i512), .{
1350 -0x235b5d838cdf67b9eb6d7eeb518fb63cff402a74c687927feb363b5040556b8d32c55e565cc2fe33cb4dcc37e8fd1c92989522c11b6c186d11400d17e40d35b5,
4291 0x7ac92c65ddd5102b216946290a59ebc58643006e65ad6f2b1c05fed84d660f8160c023d37da70d4c48a3a1220d7c897b57126e15e952c887c7f711ecbdb3f68a,
13514292 });
13524293 try testArgs(@Vector(2, i512), .{
1353 -0x5f5ff44fec38adc4c9c8bc8de00acf01fcc62bc55d07033f4e788d4f3825382e1e39f6bd69dff328eec9a89486ebaaaffd9ab69d28eb7d952be4ef250cff6de1,
1354 -0x403e0fd866e1598ad928ecd234005debd527483375f5e7e79eee3a129868354acb5b74e42de9f297f81062d04ea41adc158e542ab04770dd039d527cffb81845,
4294 -0x5ce5c020744c7861891edc07ce7061c36767d58dcc89e6170895d10aea976b522b07416dc99c1d0df95511ef48ed8228f72cf73d95021f3aeeee36a4b45873c1,
4295 -0x7f1a17797bfc2022c64e650d6f347c826bb639503b8a0d08e025e647a823939edce5cb5ed3f4b287a176ec0f12af4e4137022259b5a2eeac3386997fdbe72094,
4296 });
4297 try testArgs(@Vector(3, i512), .{
4298 0x34fa3aeaf7e293ee5ca8c7fec8eb46fc52ebbee34b9e6348353145f11415f6764533ba41b8cab3227592644f7a44031dbf19280a60ea636117ff92c699e877fa,
4299 -0x2584de3309c35198d821a17ae79c48898309ce22980de644914be32bce6a8d885c01d06b197faaa1fd91880be1e67936b6752d3851d7eef913f44e7a59f75ad9,
4300 -0x75da521d275117328d53d7c4c702ded96cc3ac868d4eefb4656822673dcc0811cc0ee3352fc492d3a6ced47d60efac5acddf08aff4b9e27ef6fbb090a6cea9f5,
13554301 });
13564302
1357 try testArgs(@Vector(3, u512), .{ 0, 1, 1 << 511 });
13584303 try testArgs(@Vector(1, u512), .{
1359 0xa3ff51a609f1370e5eeb96b05169bf7469e465cf76ac5b4ea8ffd166c1ba3cd94f2dedf0d647a1fe424f3a06e6d7940f03e257f28100970b00bd5528c52b9ae6,
4304 0x79a47336a6fba6e6813ccfa098a9dd34c328106806d0df7d76e3f1aa1394487b8defe6edcb48e99375d7b1cbd48ccb1ed0d0944ef63c4a2efea7ba0428ebd763,
13604305 });
13614306 try testArgs(@Vector(2, u512), .{
1362 0xc6d43cd46ae31ab71f9468a895c83bf17516c6b2f1c9b04b9aa113bf7fe1b789eb7d95fcf951f12a9a6f2124589551efdd8c00f528b366a7bfb852faf8f3da53,
1363 0xc9099d2bdf8d1a0d30485ec6db4a24cbc0d89a863de30e18313ee1d66f71dd2d26235caaa703286cf4a2b51e1a12ef96d2d944c66c0bd3f0d72dd4cf0fc8100e,
4307 0x422895dc913417a5dd65b107ba3a025e3bf314009be30c819920105e9aa030d188d9a3ba91701d0affa6ed029e47e7f5190ae59f668c2645f31e41f5919dd57c,
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,
13644340 });
13654341
1366 try testArgs(@Vector(3, i513), .{ -1 << 512, -1, 0 });
1367 try testArgs(@Vector(3, u513), .{ 0, 1, 1 << 512 });
4342 try testArgs(@Vector(1, i1023), .{
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 });
1370 try testArgs(@Vector(3, u1023), .{ 0, 1, 1 << 1022 });
4355 try testArgs(@Vector(1, u1023), .{
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 });
13734368 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,
13754379 });
13764380
1377 try testArgs(@Vector(3, u1024), .{ 0, 1, 1 << 1023 });
13784381 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,
13804392 });
13814393
1382 try testArgs(@Vector(3, i1025), .{ -1 << 1024, -1, 0 });
1383 try testArgs(@Vector(3, u1025), .{ 0, 1, 1 << 1024 });
4394 try testArgs(@Vector(1, i1025), .{
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 });
13844419 }
13854420 fn testFloatVectorTypes() !void {
13864421 try testArgs(@Vector(1, f16), undefined);
......@@ -1819,8 +4854,35 @@ test optionalNotEqualNull {
18194854 try test_optional_not_equal_null.testFloats();
18204855}
18214856
1822inline fn splat(comptime Type: type, lhs: Type) Type {
1823 return @splat(lhs[0]);
4857inline fn reduceAnd(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
4858 return @reduce(.And, rhs);
4859}
4860test reduceAnd {
4861 const test_reduce_and = unary(reduceAnd, .{});
4862 try test_reduce_and.testBoolVectors();
4863 try test_reduce_and.testIntVectors();
4864}
4865
4866inline fn reduceOr(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
4867 return @reduce(.Or, rhs);
4868}
4869test reduceOr {
4870 const test_reduce_or = unary(reduceOr, .{});
4871 try test_reduce_or.testBoolVectors();
4872 try test_reduce_or.testIntVectors();
4873}
4874
4875inline fn reduceXor(comptime Type: type, rhs: Type) @typeInfo(Type).vector.child {
4876 return @reduce(.Xor, rhs);
4877}
4878test reduceXor {
4879 const test_reduce_xor = unary(reduceXor, .{});
4880 try test_reduce_xor.testBoolVectors();
4881 try test_reduce_xor.testIntVectors();
4882}
4883
4884inline fn splat(comptime Type: type, rhs: Type) Type {
4885 return @splat(rhs[0]);
18244886}
18254887test splat {
18264888 const test_splat = unary(splat, .{});
test/cases/compile_errors/@import_zon_bad_type.zig+3-3
......@@ -117,9 +117,9 @@ export fn testMutablePointer() void {
117117// tmp.zig:37:38: note: imported here
118118// neg_inf.zon:1:1: error: expected type '?u8'
119119// tmp.zig:57:28: note: imported here
120// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_501'
120// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_505'
121121// 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_507'
123123// 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_510'
125125// tmp.zig:72:50: note: imported here
test/cases/compile_errors/anytype_param_requires_comptime.zig+1-1
......@@ -15,6 +15,6 @@ pub export fn entry() void {
1515// error
1616//
1717// :7:25: error: unable to resolve comptime value
18// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_475.C' must be comptime-known
18// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_479.C' must be comptime-known
1919// :4:16: note: struct requires comptime because of this field
2020// :4:16: note: types are not available at runtime
test/cases/compile_errors/bogus_method_call_on_slice.zig+1-1
......@@ -16,5 +16,5 @@ pub export fn entry2() void {
1616//
1717// :3:6: error: no field or member function named 'copy' in '[]const u8'
1818// :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})'
19// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_479'
19// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_483'
2020// :12:6: note: struct declared here
test/cases/compile_errors/coerce_anon_struct.zig+1-1
......@@ -6,6 +6,6 @@ export fn foo() void {
66
77// error
88//
9// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_468'
9// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_472'
1010// :3:16: note: struct declared here
1111// :1:11: note: struct declared here
test/cases/compile_errors/redundant_try.zig+2-2
......@@ -44,9 +44,9 @@ comptime {
4444//
4545// :5:23: error: expected error union type, found 'comptime_int'
4646// :10:23: error: expected error union type, found '@TypeOf(.{})'
47// :15:23: error: expected error union type, found 'tmp.test2__struct_505'
47// :15:23: error: expected error union type, found 'tmp.test2__struct_509'
4848// :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_511'
5050// :20:27: note: struct declared here
5151// :25:23: error: expected error union type, found 'struct { comptime *const [5:0]u8 = "hello" }'
5252// :31:13: error: expected error union type, found 'u32'